From f15b67cff182844e3006763f968b44c00fb6658e Mon Sep 17 00:00:00 2001 From: Llewellyn van der Merwe Date: Thu, 26 Oct 2017 18:43:51 +0200 Subject: [PATCH] Added notice of language (tanslations) added or not added with details to compiler Resolved gh-146 compiler error on joined db in dinamic get thanks to @mwweb & @ro-ot Resolved gh-147 by adding the sort of fields back into the save method Resolved gh-144 to ensure that the published tab (fields overwriting and adding) option is available again. Resolved gh-145 by moving the subforms to their own tab in dynamic get view Converted all repeatable fields to subform fields in Joomla component view Moved 9 subforms and other fields to their own table and view (decopuling them fom Joomla component view), that means we added 9 more views and tables to JCB Added all the ajax for buttons and display views to Joomla component view Added tmp scripts all across the new areas with subforms to ensure all repeatable fields are converted. Will be removed in v2.7.0 Added synced copy, change state and delete in Joomla components view in relation to all tables linked to it (same as with admin views) --- README.md | 12 +- admin/README.txt | 12 +- admin/access.xml | 189 ++ admin/assets/css/admin.css | 4 +- admin/assets/css/admin_fields.css | 4 +- admin/assets/css/admin_fields_conditions.css | 2 +- admin/assets/css/admin_view.css | 4 +- admin/assets/css/admin_views.css | 4 +- admin/assets/css/admins_fields.css | 4 +- admin/assets/css/admins_fields_conditions.css | 2 +- admin/assets/css/component_admin_views.css | 27 + admin/assets/css/component_config.css | 27 + .../css/component_custom_admin_menus.css | 27 + .../css/component_custom_admin_views.css | 27 + admin/assets/css/component_dashboard.css | 28 + admin/assets/css/component_files_folders.css | 27 + admin/assets/css/component_mysql_tweaks.css | 28 + admin/assets/css/component_site_views.css | 27 + admin/assets/css/component_updates.css | 29 + admin/assets/css/components_admin_views.css | 27 + admin/assets/css/components_config.css | 27 + .../css/components_custom_admin_menus.css | 27 + .../css/components_custom_admin_views.css | 27 + admin/assets/css/components_dashboard.css | 27 + admin/assets/css/components_files_folders.css | 27 + admin/assets/css/components_mysql_tweaks.css | 27 + admin/assets/css/components_site_views.css | 27 + admin/assets/css/components_updates.css | 27 + admin/assets/css/custom_admin_view.css | 2 +- admin/assets/css/custom_admin_views.css | 2 +- admin/assets/css/dashboard.css | 4 +- admin/assets/css/dynamic_get.css | 4 +- admin/assets/css/dynamic_gets.css | 4 +- admin/assets/css/field.css | 2 +- admin/assets/css/fields.css | 2 +- admin/assets/css/fieldtype.css | 2 +- admin/assets/css/fieldtypes.css | 2 +- admin/assets/css/ftp.css | 2 +- admin/assets/css/ftps.css | 2 +- admin/assets/css/joomla_component.css | 4 +- admin/assets/css/joomla_components.css | 4 +- admin/assets/css/language.css | 2 +- admin/assets/css/language_translation.css | 4 +- admin/assets/css/language_translations.css | 4 +- admin/assets/css/languages.css | 2 +- admin/assets/css/layout.css | 2 +- admin/assets/css/layouts.css | 2 +- admin/assets/css/site_view.css | 2 +- admin/assets/css/site_views.css | 2 +- admin/assets/css/snippet.css | 2 +- admin/assets/css/snippets.css | 2 +- admin/assets/css/template.css | 2 +- admin/assets/css/templates.css | 2 +- admin/assets/js/admin.js | 4 +- admin/componentbuilder.php | 4 +- admin/controller.php | 15 +- admin/controllers/admin_fields.php | 4 +- admin/controllers/admin_fields_conditions.php | 2 +- admin/controllers/admin_view.php | 30 +- admin/controllers/admin_views.php | 4 +- admin/controllers/admins_fields.php | 4 +- .../controllers/admins_fields_conditions.php | 2 +- admin/controllers/ajax.json.php | 10 +- admin/controllers/component_admin_views.php | 326 ++ admin/controllers/component_config.php | 326 ++ .../component_custom_admin_menus.php | 326 ++ .../component_custom_admin_views.php | 326 ++ admin/controllers/component_dashboard.php | 326 ++ admin/controllers/component_files_folders.php | 326 ++ admin/controllers/component_mysql_tweaks.php | 326 ++ admin/controllers/component_site_views.php | 326 ++ admin/controllers/component_updates.php | 326 ++ admin/controllers/componentbuilder.php | 4 +- admin/controllers/components_admin_views.php | 48 + admin/controllers/components_config.php | 48 + .../components_custom_admin_menus.php | 48 + .../components_custom_admin_views.php | 48 + admin/controllers/components_dashboard.php | 48 + .../controllers/components_files_folders.php | 48 + admin/controllers/components_mysql_tweaks.php | 48 + admin/controllers/components_site_views.php | 48 + admin/controllers/components_updates.php | 48 + admin/controllers/custom_admin_view.php | 2 +- admin/controllers/custom_admin_views.php | 2 +- admin/controllers/dynamic_get.php | 4 +- admin/controllers/dynamic_gets.php | 4 +- admin/controllers/field.php | 2 +- admin/controllers/fields.php | 2 +- admin/controllers/fieldtype.php | 2 +- admin/controllers/fieldtypes.php | 2 +- admin/controllers/ftp.php | 2 +- admin/controllers/ftps.php | 2 +- admin/controllers/help.php | 4 +- admin/controllers/import.php | 4 +- .../controllers/import_joomla_components.php | 4 +- admin/controllers/joomla_component.php | 36 +- admin/controllers/joomla_components.php | 4 +- admin/controllers/language.php | 2 +- admin/controllers/language_translation.php | 4 +- admin/controllers/language_translations.php | 4 +- admin/controllers/languages.php | 2 +- admin/controllers/layout.php | 2 +- admin/controllers/layouts.php | 2 +- admin/controllers/site_view.php | 2 +- admin/controllers/site_views.php | 2 +- admin/controllers/snippet.php | 2 +- admin/controllers/snippets.php | 2 +- admin/controllers/template.php | 2 +- admin/controllers/templates.php | 2 +- admin/helpers/compiler.php | 37 +- admin/helpers/compiler/a_Get.php | 27 +- admin/helpers/compiler/c_Fields.php | 2 +- admin/helpers/compiler/e_Interpretation.php | 113 +- admin/helpers/compiler/f_Infusion.php | 28 +- admin/helpers/componentbuilder.php | 4 +- admin/helpers/componentbuilderemail.php | 4 +- admin/helpers/headercheck.php | 4 +- admin/helpers/html/batch_.php | 4 +- admin/helpers/indenter.php | 4 +- admin/helpers/js.php | 4 +- admin/helpers/minify.php | 4 +- .../en-GB/en-GB.com_componentbuilder.ini | 1553 +++++++--- .../en-GB/en-GB.com_componentbuilder.sys.ini | 180 ++ admin/layouts/admin_fields/fields_above.php | 4 +- .../layouts/admin_fields/fields_fullwidth.php | 4 +- admin/layouts/admin_fields/publishing.php | 4 +- admin/layouts/admin_fields/publlshing.php | 4 +- .../conditions_above.php | 4 +- .../conditions_fullwidth.php | 4 +- .../admin_fields_conditions/publishing.php | 4 +- .../admin_fields_conditions/publlshing.php | 4 +- admin/layouts/admin_view/css_fullwidth.php | 4 +- .../admin_view/custom_buttons_fullwidth.php | 4 +- .../admin_view/custom_buttons_left.php | 4 +- .../admin_view/custom_import_fullwidth.php | 4 +- admin/layouts/admin_view/details_above.php | 4 +- admin/layouts/admin_view/details_left.php | 4 +- admin/layouts/admin_view/details_right.php | 4 +- admin/layouts/admin_view/details_under.php | 4 +- .../fields_conditions_fullwidth.php | 4 +- .../admin_view/fields_conditions_left.php | 4 +- .../admin_view/fields_conditions_right.php | 4 +- .../admin_view/javascript_fullwidth.php | 4 +- .../linked_components_fullwidth.php | 6 +- admin/layouts/admin_view/mysql_fullwidth.php | 4 +- admin/layouts/admin_view/mysql_left.php | 4 +- admin/layouts/admin_view/php_fullwidth.php | 4 +- admin/layouts/admin_view/publishing.php | 4 +- admin/layouts/admin_view/publlshing.php | 4 +- .../layouts/admin_view/settings_fullwidth.php | 4 +- admin/layouts/batchselection.php | 4 +- .../layouts/component_admin_views/index.html | 1 + .../component_admin_views/publishing.php | 58 + .../component_admin_views/publlshing.php | 60 + .../views_above.php} | 8 +- .../component_admin_views/views_fullwidth.php | 49 + admin/layouts/component_config/index.html | 1 + admin/layouts/component_config/publishing.php | 58 + admin/layouts/component_config/publlshing.php | 60 + .../layouts/component_config/tweaks_above.php | 41 + .../component_config/tweaks_fullwidth.php | 48 + .../component_custom_admin_menus/index.html | 1 + .../publishing.php | 58 + .../publlshing.php | 60 + .../tweaks_above.php | 41 + .../tweaks_fullwidth.php | 48 + .../component_custom_admin_views/index.html | 1 + .../publishing.php | 58 + .../publlshing.php | 60 + .../views_above.php | 41 + .../views_fullwidth.php | 49 + .../component_dashboard/dashboard_above.php | 41 + .../dashboard_fullwidth.php | 49 + admin/layouts/component_dashboard/index.html | 1 + .../component_dashboard/publishing.php | 58 + .../component_dashboard/publlshing.php | 60 + .../component_files_folders/index.html | 1 + .../component_files_folders/publishing.php | 58 + .../component_files_folders/publlshing.php | 60 + .../settings_above.php | 41 + .../settings_fullwidth.php | 51 + .../layouts/component_mysql_tweaks/index.html | 1 + .../component_mysql_tweaks/publishing.php | 58 + .../component_mysql_tweaks/publlshing.php | 60 + .../component_mysql_tweaks/tweaks_above.php | 41 + .../tweaks_fullwidth.php | 48 + admin/layouts/component_site_views/index.html | 1 + .../component_site_views/publishing.php | 58 + .../component_site_views/publlshing.php | 60 + .../component_site_views/views_above.php | 41 + .../component_site_views/views_fullwidth.php | 49 + admin/layouts/component_updates/index.html | 1 + .../layouts/component_updates/publishing.php | 58 + .../layouts/component_updates/publlshing.php | 60 + .../component_updates/updates_above.php | 41 + .../component_updates/updates_fullwidth.php | 48 + .../custom_buttons_fullwidth.php | 4 +- .../custom_admin_view/custom_buttons_left.php | 4 +- .../custom_script_fullwidth.php | 4 +- .../custom_admin_view/details_above.php | 4 +- .../custom_admin_view/details_fullwidth.php | 4 +- .../custom_admin_view/details_left.php | 4 +- .../custom_admin_view/details_right.php | 4 +- .../custom_admin_view/details_rightside.php | 4 +- .../custom_admin_view/details_under.php | 4 +- .../linked_components_fullwidth.php | 6 +- .../layouts/custom_admin_view/publishing.php | 4 +- .../layouts/custom_admin_view/publlshing.php | 4 +- admin/layouts/custom_code/details_above.php | 4 +- .../layouts/custom_code/details_fullwidth.php | 4 +- admin/layouts/custom_code/details_left.php | 4 +- admin/layouts/custom_code/details_right.php | 4 +- admin/layouts/custom_code/details_under.php | 4 +- admin/layouts/custom_code/publishing.php | 4 +- admin/layouts/custom_code/publlshing.php | 4 +- .../layouts/dynamic_get/abacus_fullwidth.php | 4 +- admin/layouts/dynamic_get/abacus_left.php | 4 +- .../dynamic_get/custom_script_fullwidth.php | 4 +- admin/layouts/dynamic_get/joint_fullwidth.php | 4 +- admin/layouts/dynamic_get/main_above.php | 4 +- admin/layouts/dynamic_get/main_fullwidth.php | 4 +- admin/layouts/dynamic_get/main_left.php | 4 +- admin/layouts/dynamic_get/main_under.php | 4 +- admin/layouts/dynamic_get/publishing.php | 4 +- admin/layouts/dynamic_get/publlshing.php | 4 +- admin/layouts/dynamic_get/tweak_fullwidth.php | 51 + admin/layouts/field/details_fullwidth.php | 4 +- admin/layouts/field/details_left.php | 4 +- admin/layouts/field/details_right.php | 4 +- admin/layouts/field/details_under.php | 4 +- admin/layouts/field/publishing.php | 4 +- admin/layouts/field/publlshing.php | 4 +- admin/layouts/field/scripts_left.php | 4 +- admin/layouts/field/scripts_right.php | 4 +- admin/layouts/fieldtype/details_fullwidth.php | 4 +- admin/layouts/fieldtype/details_left.php | 4 +- admin/layouts/fieldtype/details_right.php | 4 +- admin/layouts/fieldtype/fields_fullwidth.php | 6 +- admin/layouts/fieldtype/publishing.php | 4 +- admin/layouts/fieldtype/publlshing.php | 4 +- admin/layouts/ftp/details_above.php | 4 +- admin/layouts/ftp/details_fullwidth.php | 4 +- .../ftp/linked_components_fullwidth.php | 6 +- admin/layouts/ftp/publishing.php | 4 +- admin/layouts/ftp/publlshing.php | 4 +- admin/layouts/help_document/details_above.php | 4 +- .../help_document/details_fullwidth.php | 4 +- admin/layouts/help_document/details_left.php | 4 +- admin/layouts/help_document/details_right.php | 4 +- admin/layouts/help_document/details_under.php | 4 +- admin/layouts/help_document/publishing.php | 4 +- admin/layouts/help_document/publlshing.php | 4 +- .../admin_views_fullwidth.php | 119 +- .../custom_admin_views_fullwidth.php | 125 +- .../joomla_component/details_above.php | 4 +- .../layouts/joomla_component/details_left.php | 5 +- .../joomla_component/details_right.php | 4 +- .../joomla_component/details_under.php | 4 +- .../dynamic_build_beta_fullwidth.php | 4 +- .../dynamic_integration_fullwidth.php | 4 +- .../libs_helpers_fullwidth.php | 4 +- admin/layouts/joomla_component/metadata.php | 4 +- .../joomla_component/mysql_fullwidth.php | 4 +- .../joomla_component/php_fullwidth.php | 7 +- .../php_left.php} | 11 +- admin/layouts/joomla_component/publishing.php | 4 +- .../layouts/joomla_component/readme_left.php | 4 +- .../layouts/joomla_component/readme_right.php | 4 +- .../joomla_component/settings_fullwidth.php | 52 + .../joomla_component/settings_left.php | 14 +- .../joomla_component/settings_right.php | 17 +- .../joomla_component/site_views_fullwidth.php | 125 +- .../translation_fullwidth.php | 6 +- admin/layouts/language/details_left.php | 4 +- admin/layouts/language/details_right.php | 4 +- admin/layouts/language/publishing.php | 4 +- admin/layouts/language/publlshing.php | 4 +- .../details_fullwidth.php | 7 +- .../language_translation/publishing.php | 4 +- .../language_translation/publlshing.php | 4 +- .../layout/custom_script_fullwidth.php | 4 +- admin/layouts/layout/details_fullwidth.php | 4 +- admin/layouts/layout/details_left.php | 4 +- admin/layouts/layout/details_right.php | 4 +- admin/layouts/layout/details_rightside.php | 4 +- admin/layouts/layout/details_under.php | 4 +- admin/layouts/layout/publishing.php | 4 +- admin/layouts/layout/publlshing.php | 4 +- .../site_view/custom_buttons_fullwidth.php | 4 +- .../layouts/site_view/custom_buttons_left.php | 4 +- .../site_view/custom_buttons_right.php | 4 +- admin/layouts/site_view/details_above.php | 4 +- admin/layouts/site_view/details_fullwidth.php | 4 +- admin/layouts/site_view/details_left.php | 4 +- admin/layouts/site_view/details_right.php | 4 +- admin/layouts/site_view/details_rightside.php | 4 +- admin/layouts/site_view/details_under.php | 4 +- .../site_view/javascript_css_fullwidth.php | 4 +- .../site_view/linked_components_fullwidth.php | 6 +- admin/layouts/site_view/php_fullwidth.php | 4 +- admin/layouts/site_view/publishing.php | 4 +- admin/layouts/site_view/publlshing.php | 4 +- admin/layouts/snippet/details_above.php | 4 +- admin/layouts/snippet/details_left.php | 4 +- admin/layouts/snippet/details_right.php | 4 +- admin/layouts/snippet/publishing.php | 4 +- admin/layouts/snippet/publlshing.php | 4 +- .../template/custom_script_fullwidth.php | 4 +- admin/layouts/template/details_fullwidth.php | 4 +- admin/layouts/template/details_left.php | 4 +- admin/layouts/template/details_right.php | 4 +- admin/layouts/template/details_rightside.php | 4 +- admin/layouts/template/details_under.php | 4 +- admin/layouts/template/publishing.php | 4 +- admin/layouts/template/publlshing.php | 4 +- admin/models/admin_fields.php | 14 +- admin/models/admin_fields_conditions.php | 2 +- admin/models/admin_view.php | 177 +- admin/models/admin_views.php | 4 +- admin/models/admins_fields.php | 4 +- admin/models/admins_fields_conditions.php | 2 +- admin/models/ajax.php | 195 +- admin/models/component_admin_views.php | 913 ++++++ admin/models/component_config.php | 913 ++++++ admin/models/component_custom_admin_menus.php | 913 ++++++ admin/models/component_custom_admin_views.php | 913 ++++++ admin/models/component_dashboard.php | 925 ++++++ admin/models/component_files_folders.php | 935 ++++++ admin/models/component_mysql_tweaks.php | 913 ++++++ admin/models/component_site_views.php | 913 ++++++ admin/models/component_updates.php | 913 ++++++ admin/models/componentbuilder.php | 33 +- admin/models/components_admin_views.php | 256 ++ admin/models/components_config.php | 256 ++ .../models/components_custom_admin_menus.php | 256 ++ .../models/components_custom_admin_views.php | 256 ++ admin/models/components_dashboard.php | 256 ++ admin/models/components_files_folders.php | 256 ++ admin/models/components_mysql_tweaks.php | 256 ++ admin/models/components_site_views.php | 256 ++ admin/models/components_updates.php | 256 ++ admin/models/custom_admin_view.php | 12 +- admin/models/custom_admin_views.php | 2 +- admin/models/dynamic_get.php | 40 +- admin/models/dynamic_gets.php | 4 +- admin/models/field.php | 2 +- admin/models/fields.php | 2 +- admin/models/fields/adminsviews.php | 170 ++ admin/models/fields/adminviewfolderlist.php | 4 +- admin/models/fields/adminviews.php | 6 +- admin/models/fields/articles.php | 4 +- admin/models/fields/component.php | 4 +- admin/models/fields/componentadminmenus.php | 216 ++ admin/models/fields/componentadminviews.php | 216 ++ admin/models/fields/components.php | 4 +- admin/models/fields/customadminviews.php | 7 +- admin/models/fields/customfilelist.php | 4 +- admin/models/fields/customfolderlist.php | 4 +- admin/models/fields/customgets.php | 4 +- admin/models/fields/dbtables.php | 4 +- admin/models/fields/dynamicget.php | 4 +- admin/models/fields/dynamicgets.php | 4 +- admin/models/fields/fields.php | 6 +- admin/models/fields/fieldtypes.php | 4 +- admin/models/fields/ftps.php | 4 +- admin/models/fields/joomlacomponents.php | 171 ++ admin/models/fields/lang.php | 4 +- admin/models/fields/maingets.php | 4 +- admin/models/fields/matchfield.php | 4 +- admin/models/fields/siteviewfolderlist.php | 4 +- admin/models/fields/siteviews.php | 7 +- admin/models/fields/snippets.php | 4 +- admin/models/fields/targetfields.php | 4 +- admin/models/fields/viewtabs.php | 8 +- admin/models/fieldtype.php | 28 +- admin/models/fieldtypes.php | 2 +- admin/models/forms/admin_fields.js | 4 +- admin/models/forms/admin_fields.xml | 4 +- admin/models/forms/admin_fields_conditions.js | 2 +- .../models/forms/admin_fields_conditions.xml | 2 +- admin/models/forms/admin_view.js | 646 ++-- admin/models/forms/admin_view.xml | 12 +- admin/models/forms/component_admin_views.js | 25 + admin/models/forms/component_admin_views.xml | 705 +++++ admin/models/forms/component_config.js | 25 + admin/models/forms/component_config.xml | 184 ++ .../forms/component_custom_admin_menus.js | 25 + .../forms/component_custom_admin_menus.xml | 239 ++ .../forms/component_custom_admin_views.js | 25 + .../forms/component_custom_admin_views.xml | 661 ++++ admin/models/forms/component_dashboard.js | 25 + admin/models/forms/component_dashboard.xml | 198 ++ admin/models/forms/component_files_folders.js | 25 + .../models/forms/component_files_folders.xml | 233 ++ admin/models/forms/component_mysql_tweaks.js | 25 + admin/models/forms/component_mysql_tweaks.xml | 200 ++ admin/models/forms/component_site_views.js | 25 + admin/models/forms/component_site_views.xml | 207 ++ admin/models/forms/component_updates.js | 25 + admin/models/forms/component_updates.xml | 185 ++ admin/models/forms/custom_admin_view.js | 172 +- admin/models/forms/custom_code.js | 78 +- admin/models/forms/dynamic_get.js | 1166 ++++---- admin/models/forms/field.js | 390 +-- admin/models/forms/fieldtype.js | 2 +- admin/models/forms/fieldtype.xml | 2 +- admin/models/forms/ftp.js | 2 +- admin/models/forms/help_document.js | 236 +- admin/models/forms/joomla_component.js | 386 ++- admin/models/forms/joomla_component.xml | 2661 +++-------------- admin/models/forms/language.js | 2 +- admin/models/forms/language_translation.js | 8 +- admin/models/forms/language_translation.xml | 2 +- admin/models/forms/layout.js | 22 +- admin/models/forms/site_view.js | 220 +- admin/models/forms/snippet.js | 2 +- admin/models/forms/template.js | 22 +- admin/models/ftp.php | 18 +- admin/models/ftps.php | 2 +- admin/models/import.php | 4 +- admin/models/import_joomla_components.php | 4 +- admin/models/joomla_component.php | 461 +-- admin/models/joomla_components.php | 20 +- admin/models/language.php | 2 +- admin/models/language_translation.php | 4 +- admin/models/language_translations.php | 4 +- admin/models/languages.php | 2 +- admin/models/layout.php | 2 +- admin/models/layouts.php | 2 +- admin/models/site_view.php | 12 +- admin/models/site_views.php | 2 +- admin/models/snippet.php | 2 +- admin/models/snippets.php | 2 +- admin/models/template.php | 2 +- admin/models/templates.php | 2 +- admin/sql/install.mysql.utf8.sql | 1702 ++++++++++- admin/sql/uninstall.mysql.utf8.sql | 9 + admin/sql/updates/mysql/2.5.8.sql | 235 ++ admin/tables/admin_fields.php | 4 +- admin/tables/admin_fields_conditions.php | 2 +- admin/tables/admin_view.php | 4 +- admin/tables/component_admin_views.php | 351 +++ admin/tables/component_config.php | 351 +++ admin/tables/component_custom_admin_menus.php | 351 +++ admin/tables/component_custom_admin_views.php | 351 +++ admin/tables/component_dashboard.php | 351 +++ admin/tables/component_files_folders.php | 351 +++ admin/tables/component_mysql_tweaks.php | 351 +++ admin/tables/component_site_views.php | 351 +++ admin/tables/component_updates.php | 351 +++ admin/tables/custom_admin_view.php | 2 +- admin/tables/dynamic_get.php | 4 +- admin/tables/field.php | 2 +- admin/tables/fieldtype.php | 2 +- admin/tables/ftp.php | 2 +- admin/tables/joomla_component.php | 4 +- admin/tables/language.php | 2 +- admin/tables/language_translation.php | 4 +- admin/tables/layout.php | 2 +- admin/tables/site_view.php | 2 +- admin/tables/snippet.php | 2 +- admin/tables/template.php | 2 +- admin/views/admin_fields/submitbutton.js | 4 +- admin/views/admin_fields/tmpl/edit.php | 4 +- admin/views/admin_fields/view.html.php | 4 +- .../admin_fields_conditions/submitbutton.js | 2 +- .../admin_fields_conditions/tmpl/edit.php | 2 +- .../admin_fields_conditions/view.html.php | 2 +- admin/views/admin_view/submitbutton.js | 4 +- admin/views/admin_view/tmpl/edit.php | 348 +-- admin/views/admin_view/view.html.php | 6 +- admin/views/admin_views/tmpl/default.php | 4 +- .../admin_views/tmpl/default_batch_body.php | 4 +- .../admin_views/tmpl/default_batch_footer.php | 4 +- admin/views/admin_views/tmpl/default_body.php | 4 +- admin/views/admin_views/tmpl/default_foot.php | 4 +- admin/views/admin_views/tmpl/default_head.php | 4 +- .../admin_views/tmpl/default_toolbar.php | 4 +- admin/views/admin_views/view.html.php | 4 +- admin/views/admins_fields/tmpl/default.php | 4 +- .../admins_fields/tmpl/default_batch_body.php | 4 +- .../tmpl/default_batch_footer.php | 4 +- .../views/admins_fields/tmpl/default_body.php | 4 +- .../views/admins_fields/tmpl/default_foot.php | 4 +- .../views/admins_fields/tmpl/default_head.php | 4 +- .../admins_fields/tmpl/default_toolbar.php | 4 +- admin/views/admins_fields/view.html.php | 4 +- .../admins_fields_conditions/tmpl/default.php | 2 +- .../tmpl/default_batch_body.php | 2 +- .../tmpl/default_batch_footer.php | 2 +- .../tmpl/default_body.php | 2 +- .../tmpl/default_foot.php | 2 +- .../tmpl/default_head.php | 2 +- .../tmpl/default_toolbar.php | 2 +- .../admins_fields_conditions/view.html.php | 2 +- .../component_admin_views/submitbutton.js | 49 + .../views/component_admin_views/tmpl/edit.php | 148 + .../component_admin_views/tmpl/index.html | 1 + .../views/component_admin_views/view.html.php | 199 ++ admin/views/component_config/submitbutton.js | 49 + admin/views/component_config/tmpl/edit.php | 117 + admin/views/component_config/tmpl/index.html | 1 + admin/views/component_config/view.html.php | 199 ++ .../submitbutton.js | 49 + .../tmpl/edit.php | 117 + .../tmpl/index.html | 1 + .../view.html.php | 199 ++ .../submitbutton.js | 49 + .../tmpl/edit.php | 148 + .../tmpl/index.html | 1 + .../view.html.php | 199 ++ .../views/component_dashboard/submitbutton.js | 49 + admin/views/component_dashboard/tmpl/edit.php | 117 + .../views/component_dashboard/tmpl/index.html | 1 + admin/views/component_dashboard/view.html.php | 199 ++ .../component_files_folders/submitbutton.js | 49 + .../component_files_folders/tmpl/edit.php | 117 + .../component_files_folders/tmpl/index.html | 1 + .../component_files_folders/view.html.php | 199 ++ .../component_mysql_tweaks/submitbutton.js | 49 + .../component_mysql_tweaks/tmpl/edit.php | 117 + .../component_mysql_tweaks/tmpl/index.html | 1 + .../component_mysql_tweaks/view.html.php | 199 ++ .../component_site_views/submitbutton.js | 49 + .../views/component_site_views/tmpl/edit.php | 117 + .../component_site_views/tmpl/index.html | 1 + .../views/component_site_views/view.html.php | 199 ++ admin/views/component_updates/submitbutton.js | 49 + admin/views/component_updates/tmpl/edit.php | 117 + admin/views/component_updates/tmpl/index.html | 1 + admin/views/component_updates/view.html.php | 199 ++ admin/views/componentbuilder/tmpl/default.php | 4 +- ...ult_issues_the_closed_issues_on_github.php | 4 +- ...fault_issues_the_open_issues_on_github.php | 4 +- .../componentbuilder/tmpl/default_main.php | 4 +- .../tmpl/default_readme_information.php | 4 +- .../tmpl/default_releases_information.php | 4 +- ...t_vast_development_method_notice_board.php | 4 +- .../componentbuilder/tmpl/default_vdm.php | 4 +- .../tmpl/default_wiki_tutorials.php | 4 +- admin/views/componentbuilder/view.html.php | 4 +- admin/views/components_admin_views/index.html | 1 + .../components_admin_views/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../components_admin_views/tmpl/index.html | 1 + .../components_admin_views/view.html.php | 238 ++ admin/views/components_config/index.html | 1 + .../views/components_config/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../components_config/tmpl/default_body.php | 108 + .../components_config/tmpl/default_foot.php | 32 + .../components_config/tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + admin/views/components_config/tmpl/index.html | 1 + admin/views/components_config/view.html.php | 238 ++ .../components_custom_admin_menus/index.html | 1 + .../tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../tmpl/index.html | 1 + .../view.html.php | 238 ++ .../components_custom_admin_views/index.html | 1 + .../tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../tmpl/index.html | 1 + .../view.html.php | 238 ++ admin/views/components_dashboard/index.html | 1 + .../components_dashboard/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../components_dashboard/tmpl/index.html | 1 + .../views/components_dashboard/view.html.php | 238 ++ .../views/components_files_folders/index.html | 1 + .../components_files_folders/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../components_files_folders/tmpl/index.html | 1 + .../components_files_folders/view.html.php | 238 ++ .../views/components_mysql_tweaks/index.html | 1 + .../components_mysql_tweaks/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../components_mysql_tweaks/tmpl/index.html | 1 + .../components_mysql_tweaks/view.html.php | 238 ++ admin/views/components_site_views/index.html | 1 + .../components_site_views/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../tmpl/default_body.php | 108 + .../tmpl/default_foot.php | 32 + .../tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../components_site_views/tmpl/index.html | 1 + .../views/components_site_views/view.html.php | 238 ++ admin/views/components_updates/index.html | 1 + .../views/components_updates/tmpl/default.php | 99 + .../tmpl/default_batch_body.php | 32 + .../tmpl/default_batch_footer.php | 37 + .../components_updates/tmpl/default_body.php | 108 + .../components_updates/tmpl/default_foot.php | 32 + .../components_updates/tmpl/default_head.php | 61 + .../tmpl/default_toolbar.php | 59 + .../views/components_updates/tmpl/index.html | 1 + admin/views/components_updates/view.html.php | 238 ++ admin/views/custom_admin_view/submitbutton.js | 2 +- admin/views/custom_admin_view/tmpl/edit.php | 82 +- admin/views/custom_admin_view/view.html.php | 4 +- .../views/custom_admin_views/tmpl/default.php | 2 +- .../tmpl/default_batch_body.php | 2 +- .../tmpl/default_batch_footer.php | 2 +- .../custom_admin_views/tmpl/default_body.php | 2 +- .../custom_admin_views/tmpl/default_foot.php | 2 +- .../custom_admin_views/tmpl/default_head.php | 2 +- .../tmpl/default_toolbar.php | 2 +- admin/views/custom_admin_views/view.html.php | 2 +- admin/views/custom_code/tmpl/edit.php | 78 +- admin/views/dynamic_get/submitbutton.js | 4 +- admin/views/dynamic_get/tmpl/edit.php | 323 +- admin/views/dynamic_get/view.html.php | 4 +- admin/views/dynamic_gets/tmpl/default.php | 4 +- .../dynamic_gets/tmpl/default_batch_body.php | 4 +- .../tmpl/default_batch_footer.php | 4 +- .../views/dynamic_gets/tmpl/default_body.php | 4 +- .../views/dynamic_gets/tmpl/default_foot.php | 4 +- .../views/dynamic_gets/tmpl/default_head.php | 4 +- .../dynamic_gets/tmpl/default_toolbar.php | 4 +- admin/views/dynamic_gets/view.html.php | 4 +- admin/views/field/submitbutton.js | 2 +- admin/views/field/tmpl/edit.php | 120 +- admin/views/field/view.html.php | 2 +- admin/views/fields/tmpl/default.php | 2 +- .../views/fields/tmpl/default_batch_body.php | 2 +- .../fields/tmpl/default_batch_footer.php | 2 +- admin/views/fields/tmpl/default_body.php | 2 +- admin/views/fields/tmpl/default_foot.php | 2 +- admin/views/fields/tmpl/default_head.php | 2 +- admin/views/fields/tmpl/default_toolbar.php | 2 +- admin/views/fields/view.html.php | 2 +- admin/views/fieldtype/submitbutton.js | 2 +- admin/views/fieldtype/tmpl/edit.php | 2 +- admin/views/fieldtype/view.html.php | 4 +- admin/views/fieldtypes/tmpl/default.php | 2 +- .../fieldtypes/tmpl/default_batch_body.php | 2 +- .../fieldtypes/tmpl/default_batch_footer.php | 2 +- admin/views/fieldtypes/tmpl/default_body.php | 2 +- admin/views/fieldtypes/tmpl/default_foot.php | 2 +- admin/views/fieldtypes/tmpl/default_head.php | 2 +- .../views/fieldtypes/tmpl/default_toolbar.php | 2 +- admin/views/fieldtypes/view.html.php | 2 +- admin/views/ftp/submitbutton.js | 2 +- admin/views/ftp/tmpl/edit.php | 2 +- admin/views/ftp/view.html.php | 4 +- admin/views/ftps/tmpl/default.php | 2 +- admin/views/ftps/tmpl/default_batch_body.php | 2 +- .../views/ftps/tmpl/default_batch_footer.php | 2 +- admin/views/ftps/tmpl/default_body.php | 2 +- admin/views/ftps/tmpl/default_foot.php | 2 +- admin/views/ftps/tmpl/default_head.php | 2 +- admin/views/ftps/tmpl/default_toolbar.php | 2 +- admin/views/ftps/view.html.php | 2 +- admin/views/help_document/tmpl/edit.php | 54 +- admin/views/import/tmpl/default.php | 4 +- admin/views/import/view.html.php | 4 +- .../import_joomla_components/tmpl/default.php | 4 +- .../import_joomla_components/view.html.php | 4 +- admin/views/joomla_component/submitbutton.js | 4 +- admin/views/joomla_component/tmpl/edit.php | 388 ++- admin/views/joomla_component/view.html.php | 26 +- .../views/joomla_components/tmpl/default.php | 4 +- .../tmpl/default_batch_body.php | 4 +- .../tmpl/default_batch_footer.php | 4 +- .../joomla_components/tmpl/default_body.php | 4 +- .../joomla_components/tmpl/default_foot.php | 4 +- .../joomla_components/tmpl/default_head.php | 4 +- .../tmpl/default_toolbar.php | 4 +- admin/views/joomla_components/view.html.php | 4 +- admin/views/language/submitbutton.js | 2 +- admin/views/language/tmpl/edit.php | 2 +- admin/views/language/view.html.php | 2 +- .../language_translation/submitbutton.js | 4 +- .../views/language_translation/tmpl/edit.php | 5 +- .../views/language_translation/view.html.php | 4 +- .../language_translations/tmpl/default.php | 4 +- .../tmpl/default_batch_body.php | 4 +- .../tmpl/default_batch_footer.php | 4 +- .../tmpl/default_body.php | 4 +- .../tmpl/default_foot.php | 4 +- .../tmpl/default_head.php | 4 +- .../tmpl/default_toolbar.php | 4 +- .../views/language_translations/view.html.php | 4 +- admin/views/languages/tmpl/default.php | 2 +- .../languages/tmpl/default_batch_body.php | 2 +- .../languages/tmpl/default_batch_footer.php | 2 +- admin/views/languages/tmpl/default_body.php | 2 +- admin/views/languages/tmpl/default_foot.php | 2 +- admin/views/languages/tmpl/default_head.php | 2 +- .../views/languages/tmpl/default_toolbar.php | 2 +- admin/views/languages/view.html.php | 2 +- admin/views/layout/submitbutton.js | 2 +- admin/views/layout/tmpl/edit.php | 12 +- admin/views/layout/view.html.php | 2 +- admin/views/layouts/tmpl/default.php | 2 +- .../views/layouts/tmpl/default_batch_body.php | 2 +- .../layouts/tmpl/default_batch_footer.php | 2 +- admin/views/layouts/tmpl/default_body.php | 2 +- admin/views/layouts/tmpl/default_foot.php | 2 +- admin/views/layouts/tmpl/default_head.php | 2 +- admin/views/layouts/tmpl/default_toolbar.php | 2 +- admin/views/layouts/view.html.php | 2 +- admin/views/site_view/submitbutton.js | 2 +- admin/views/site_view/tmpl/edit.php | 102 +- admin/views/site_view/view.html.php | 4 +- admin/views/site_views/tmpl/default.php | 2 +- .../site_views/tmpl/default_batch_body.php | 2 +- .../site_views/tmpl/default_batch_footer.php | 2 +- admin/views/site_views/tmpl/default_body.php | 2 +- admin/views/site_views/tmpl/default_foot.php | 2 +- admin/views/site_views/tmpl/default_head.php | 2 +- .../views/site_views/tmpl/default_toolbar.php | 2 +- admin/views/site_views/view.html.php | 2 +- admin/views/snippet/submitbutton.js | 2 +- admin/views/snippet/tmpl/edit.php | 2 +- admin/views/snippet/view.html.php | 2 +- admin/views/snippets/tmpl/default.php | 2 +- .../snippets/tmpl/default_batch_body.php | 2 +- .../snippets/tmpl/default_batch_footer.php | 2 +- admin/views/snippets/tmpl/default_body.php | 2 +- admin/views/snippets/tmpl/default_foot.php | 2 +- admin/views/snippets/tmpl/default_head.php | 2 +- admin/views/snippets/tmpl/default_toolbar.php | 2 +- admin/views/snippets/view.html.php | 2 +- admin/views/template/submitbutton.js | 2 +- admin/views/template/tmpl/edit.php | 12 +- admin/views/template/view.html.php | 2 +- admin/views/templates/tmpl/default.php | 2 +- .../templates/tmpl/default_batch_body.php | 2 +- .../templates/tmpl/default_batch_footer.php | 2 +- admin/views/templates/tmpl/default_body.php | 2 +- admin/views/templates/tmpl/default_foot.php | 2 +- admin/views/templates/tmpl/default_head.php | 2 +- .../views/templates/tmpl/default_toolbar.php | 2 +- admin/views/templates/view.html.php | 2 +- componentbuilder.xml | 6 +- componentbuilder_update_server.xml | 17 + script.php | 1202 +++++++- site/assets/css/site.css | 4 +- site/assets/js/site.js | 4 +- site/componentbuilder.php | 4 +- site/controller.php | 4 +- site/controllers/api.php | 4 +- site/controllers/help.php | 4 +- site/helpers/category.php | 4 +- site/helpers/categoryfields.php | 4 +- site/helpers/categoryfieldtypes.php | 4 +- site/helpers/componentbuilder.php | 4 +- site/helpers/headercheck.php | 4 +- site/helpers/route.php | 4 +- site/router.php | 4 +- site/views/api/submitbutton.js | 4 +- 786 files changed, 41899 insertions(+), 6752 deletions(-) create mode 100644 admin/assets/css/component_admin_views.css create mode 100644 admin/assets/css/component_config.css create mode 100644 admin/assets/css/component_custom_admin_menus.css create mode 100644 admin/assets/css/component_custom_admin_views.css create mode 100644 admin/assets/css/component_dashboard.css create mode 100644 admin/assets/css/component_files_folders.css create mode 100644 admin/assets/css/component_mysql_tweaks.css create mode 100644 admin/assets/css/component_site_views.css create mode 100644 admin/assets/css/component_updates.css create mode 100644 admin/assets/css/components_admin_views.css create mode 100644 admin/assets/css/components_config.css create mode 100644 admin/assets/css/components_custom_admin_menus.css create mode 100644 admin/assets/css/components_custom_admin_views.css create mode 100644 admin/assets/css/components_dashboard.css create mode 100644 admin/assets/css/components_files_folders.css create mode 100644 admin/assets/css/components_mysql_tweaks.css create mode 100644 admin/assets/css/components_site_views.css create mode 100644 admin/assets/css/components_updates.css create mode 100644 admin/controllers/component_admin_views.php create mode 100644 admin/controllers/component_config.php create mode 100644 admin/controllers/component_custom_admin_menus.php create mode 100644 admin/controllers/component_custom_admin_views.php create mode 100644 admin/controllers/component_dashboard.php create mode 100644 admin/controllers/component_files_folders.php create mode 100644 admin/controllers/component_mysql_tweaks.php create mode 100644 admin/controllers/component_site_views.php create mode 100644 admin/controllers/component_updates.php create mode 100644 admin/controllers/components_admin_views.php create mode 100644 admin/controllers/components_config.php create mode 100644 admin/controllers/components_custom_admin_menus.php create mode 100644 admin/controllers/components_custom_admin_views.php create mode 100644 admin/controllers/components_dashboard.php create mode 100644 admin/controllers/components_files_folders.php create mode 100644 admin/controllers/components_mysql_tweaks.php create mode 100644 admin/controllers/components_site_views.php create mode 100644 admin/controllers/components_updates.php create mode 100644 admin/layouts/component_admin_views/index.html create mode 100644 admin/layouts/component_admin_views/publishing.php create mode 100644 admin/layouts/component_admin_views/publlshing.php rename admin/layouts/{language_translation/details_above.php => component_admin_views/views_above.php} (93%) create mode 100644 admin/layouts/component_admin_views/views_fullwidth.php create mode 100644 admin/layouts/component_config/index.html create mode 100644 admin/layouts/component_config/publishing.php create mode 100644 admin/layouts/component_config/publlshing.php create mode 100644 admin/layouts/component_config/tweaks_above.php create mode 100644 admin/layouts/component_config/tweaks_fullwidth.php create mode 100644 admin/layouts/component_custom_admin_menus/index.html create mode 100644 admin/layouts/component_custom_admin_menus/publishing.php create mode 100644 admin/layouts/component_custom_admin_menus/publlshing.php create mode 100644 admin/layouts/component_custom_admin_menus/tweaks_above.php create mode 100644 admin/layouts/component_custom_admin_menus/tweaks_fullwidth.php create mode 100644 admin/layouts/component_custom_admin_views/index.html create mode 100644 admin/layouts/component_custom_admin_views/publishing.php create mode 100644 admin/layouts/component_custom_admin_views/publlshing.php create mode 100644 admin/layouts/component_custom_admin_views/views_above.php create mode 100644 admin/layouts/component_custom_admin_views/views_fullwidth.php create mode 100644 admin/layouts/component_dashboard/dashboard_above.php create mode 100644 admin/layouts/component_dashboard/dashboard_fullwidth.php create mode 100644 admin/layouts/component_dashboard/index.html create mode 100644 admin/layouts/component_dashboard/publishing.php create mode 100644 admin/layouts/component_dashboard/publlshing.php create mode 100644 admin/layouts/component_files_folders/index.html create mode 100644 admin/layouts/component_files_folders/publishing.php create mode 100644 admin/layouts/component_files_folders/publlshing.php create mode 100644 admin/layouts/component_files_folders/settings_above.php create mode 100644 admin/layouts/component_files_folders/settings_fullwidth.php create mode 100644 admin/layouts/component_mysql_tweaks/index.html create mode 100644 admin/layouts/component_mysql_tweaks/publishing.php create mode 100644 admin/layouts/component_mysql_tweaks/publlshing.php create mode 100644 admin/layouts/component_mysql_tweaks/tweaks_above.php create mode 100644 admin/layouts/component_mysql_tweaks/tweaks_fullwidth.php create mode 100644 admin/layouts/component_site_views/index.html create mode 100644 admin/layouts/component_site_views/publishing.php create mode 100644 admin/layouts/component_site_views/publlshing.php create mode 100644 admin/layouts/component_site_views/views_above.php create mode 100644 admin/layouts/component_site_views/views_fullwidth.php create mode 100644 admin/layouts/component_updates/index.html create mode 100644 admin/layouts/component_updates/publishing.php create mode 100644 admin/layouts/component_updates/publlshing.php create mode 100644 admin/layouts/component_updates/updates_above.php create mode 100644 admin/layouts/component_updates/updates_fullwidth.php create mode 100644 admin/layouts/dynamic_get/tweak_fullwidth.php rename admin/layouts/{dynamic_get/main_right.php => joomla_component/php_left.php} (92%) create mode 100644 admin/layouts/joomla_component/settings_fullwidth.php create mode 100644 admin/models/component_admin_views.php create mode 100644 admin/models/component_config.php create mode 100644 admin/models/component_custom_admin_menus.php create mode 100644 admin/models/component_custom_admin_views.php create mode 100644 admin/models/component_dashboard.php create mode 100644 admin/models/component_files_folders.php create mode 100644 admin/models/component_mysql_tweaks.php create mode 100644 admin/models/component_site_views.php create mode 100644 admin/models/component_updates.php create mode 100644 admin/models/components_admin_views.php create mode 100644 admin/models/components_config.php create mode 100644 admin/models/components_custom_admin_menus.php create mode 100644 admin/models/components_custom_admin_views.php create mode 100644 admin/models/components_dashboard.php create mode 100644 admin/models/components_files_folders.php create mode 100644 admin/models/components_mysql_tweaks.php create mode 100644 admin/models/components_site_views.php create mode 100644 admin/models/components_updates.php create mode 100644 admin/models/fields/adminsviews.php create mode 100644 admin/models/fields/componentadminmenus.php create mode 100644 admin/models/fields/componentadminviews.php create mode 100644 admin/models/fields/joomlacomponents.php create mode 100644 admin/models/forms/component_admin_views.js create mode 100644 admin/models/forms/component_admin_views.xml create mode 100644 admin/models/forms/component_config.js create mode 100644 admin/models/forms/component_config.xml create mode 100644 admin/models/forms/component_custom_admin_menus.js create mode 100644 admin/models/forms/component_custom_admin_menus.xml create mode 100644 admin/models/forms/component_custom_admin_views.js create mode 100644 admin/models/forms/component_custom_admin_views.xml create mode 100644 admin/models/forms/component_dashboard.js create mode 100644 admin/models/forms/component_dashboard.xml create mode 100644 admin/models/forms/component_files_folders.js create mode 100644 admin/models/forms/component_files_folders.xml create mode 100644 admin/models/forms/component_mysql_tweaks.js create mode 100644 admin/models/forms/component_mysql_tweaks.xml create mode 100644 admin/models/forms/component_site_views.js create mode 100644 admin/models/forms/component_site_views.xml create mode 100644 admin/models/forms/component_updates.js create mode 100644 admin/models/forms/component_updates.xml create mode 100644 admin/sql/updates/mysql/2.5.8.sql create mode 100644 admin/tables/component_admin_views.php create mode 100644 admin/tables/component_config.php create mode 100644 admin/tables/component_custom_admin_menus.php create mode 100644 admin/tables/component_custom_admin_views.php create mode 100644 admin/tables/component_dashboard.php create mode 100644 admin/tables/component_files_folders.php create mode 100644 admin/tables/component_mysql_tweaks.php create mode 100644 admin/tables/component_site_views.php create mode 100644 admin/tables/component_updates.php create mode 100644 admin/views/component_admin_views/submitbutton.js create mode 100644 admin/views/component_admin_views/tmpl/edit.php create mode 100644 admin/views/component_admin_views/tmpl/index.html create mode 100644 admin/views/component_admin_views/view.html.php create mode 100644 admin/views/component_config/submitbutton.js create mode 100644 admin/views/component_config/tmpl/edit.php create mode 100644 admin/views/component_config/tmpl/index.html create mode 100644 admin/views/component_config/view.html.php create mode 100644 admin/views/component_custom_admin_menus/submitbutton.js create mode 100644 admin/views/component_custom_admin_menus/tmpl/edit.php create mode 100644 admin/views/component_custom_admin_menus/tmpl/index.html create mode 100644 admin/views/component_custom_admin_menus/view.html.php create mode 100644 admin/views/component_custom_admin_views/submitbutton.js create mode 100644 admin/views/component_custom_admin_views/tmpl/edit.php create mode 100644 admin/views/component_custom_admin_views/tmpl/index.html create mode 100644 admin/views/component_custom_admin_views/view.html.php create mode 100644 admin/views/component_dashboard/submitbutton.js create mode 100644 admin/views/component_dashboard/tmpl/edit.php create mode 100644 admin/views/component_dashboard/tmpl/index.html create mode 100644 admin/views/component_dashboard/view.html.php create mode 100644 admin/views/component_files_folders/submitbutton.js create mode 100644 admin/views/component_files_folders/tmpl/edit.php create mode 100644 admin/views/component_files_folders/tmpl/index.html create mode 100644 admin/views/component_files_folders/view.html.php create mode 100644 admin/views/component_mysql_tweaks/submitbutton.js create mode 100644 admin/views/component_mysql_tweaks/tmpl/edit.php create mode 100644 admin/views/component_mysql_tweaks/tmpl/index.html create mode 100644 admin/views/component_mysql_tweaks/view.html.php create mode 100644 admin/views/component_site_views/submitbutton.js create mode 100644 admin/views/component_site_views/tmpl/edit.php create mode 100644 admin/views/component_site_views/tmpl/index.html create mode 100644 admin/views/component_site_views/view.html.php create mode 100644 admin/views/component_updates/submitbutton.js create mode 100644 admin/views/component_updates/tmpl/edit.php create mode 100644 admin/views/component_updates/tmpl/index.html create mode 100644 admin/views/component_updates/view.html.php create mode 100644 admin/views/components_admin_views/index.html create mode 100644 admin/views/components_admin_views/tmpl/default.php create mode 100644 admin/views/components_admin_views/tmpl/default_batch_body.php create mode 100644 admin/views/components_admin_views/tmpl/default_batch_footer.php create mode 100644 admin/views/components_admin_views/tmpl/default_body.php create mode 100644 admin/views/components_admin_views/tmpl/default_foot.php create mode 100644 admin/views/components_admin_views/tmpl/default_head.php create mode 100644 admin/views/components_admin_views/tmpl/default_toolbar.php create mode 100644 admin/views/components_admin_views/tmpl/index.html create mode 100644 admin/views/components_admin_views/view.html.php create mode 100644 admin/views/components_config/index.html create mode 100644 admin/views/components_config/tmpl/default.php create mode 100644 admin/views/components_config/tmpl/default_batch_body.php create mode 100644 admin/views/components_config/tmpl/default_batch_footer.php create mode 100644 admin/views/components_config/tmpl/default_body.php create mode 100644 admin/views/components_config/tmpl/default_foot.php create mode 100644 admin/views/components_config/tmpl/default_head.php create mode 100644 admin/views/components_config/tmpl/default_toolbar.php create mode 100644 admin/views/components_config/tmpl/index.html create mode 100644 admin/views/components_config/view.html.php create mode 100644 admin/views/components_custom_admin_menus/index.html create mode 100644 admin/views/components_custom_admin_menus/tmpl/default.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/default_batch_body.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/default_batch_footer.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/default_body.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/default_foot.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/default_head.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/default_toolbar.php create mode 100644 admin/views/components_custom_admin_menus/tmpl/index.html create mode 100644 admin/views/components_custom_admin_menus/view.html.php create mode 100644 admin/views/components_custom_admin_views/index.html create mode 100644 admin/views/components_custom_admin_views/tmpl/default.php create mode 100644 admin/views/components_custom_admin_views/tmpl/default_batch_body.php create mode 100644 admin/views/components_custom_admin_views/tmpl/default_batch_footer.php create mode 100644 admin/views/components_custom_admin_views/tmpl/default_body.php create mode 100644 admin/views/components_custom_admin_views/tmpl/default_foot.php create mode 100644 admin/views/components_custom_admin_views/tmpl/default_head.php create mode 100644 admin/views/components_custom_admin_views/tmpl/default_toolbar.php create mode 100644 admin/views/components_custom_admin_views/tmpl/index.html create mode 100644 admin/views/components_custom_admin_views/view.html.php create mode 100644 admin/views/components_dashboard/index.html create mode 100644 admin/views/components_dashboard/tmpl/default.php create mode 100644 admin/views/components_dashboard/tmpl/default_batch_body.php create mode 100644 admin/views/components_dashboard/tmpl/default_batch_footer.php create mode 100644 admin/views/components_dashboard/tmpl/default_body.php create mode 100644 admin/views/components_dashboard/tmpl/default_foot.php create mode 100644 admin/views/components_dashboard/tmpl/default_head.php create mode 100644 admin/views/components_dashboard/tmpl/default_toolbar.php create mode 100644 admin/views/components_dashboard/tmpl/index.html create mode 100644 admin/views/components_dashboard/view.html.php create mode 100644 admin/views/components_files_folders/index.html create mode 100644 admin/views/components_files_folders/tmpl/default.php create mode 100644 admin/views/components_files_folders/tmpl/default_batch_body.php create mode 100644 admin/views/components_files_folders/tmpl/default_batch_footer.php create mode 100644 admin/views/components_files_folders/tmpl/default_body.php create mode 100644 admin/views/components_files_folders/tmpl/default_foot.php create mode 100644 admin/views/components_files_folders/tmpl/default_head.php create mode 100644 admin/views/components_files_folders/tmpl/default_toolbar.php create mode 100644 admin/views/components_files_folders/tmpl/index.html create mode 100644 admin/views/components_files_folders/view.html.php create mode 100644 admin/views/components_mysql_tweaks/index.html create mode 100644 admin/views/components_mysql_tweaks/tmpl/default.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/default_batch_body.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/default_batch_footer.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/default_body.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/default_foot.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/default_head.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/default_toolbar.php create mode 100644 admin/views/components_mysql_tweaks/tmpl/index.html create mode 100644 admin/views/components_mysql_tweaks/view.html.php create mode 100644 admin/views/components_site_views/index.html create mode 100644 admin/views/components_site_views/tmpl/default.php create mode 100644 admin/views/components_site_views/tmpl/default_batch_body.php create mode 100644 admin/views/components_site_views/tmpl/default_batch_footer.php create mode 100644 admin/views/components_site_views/tmpl/default_body.php create mode 100644 admin/views/components_site_views/tmpl/default_foot.php create mode 100644 admin/views/components_site_views/tmpl/default_head.php create mode 100644 admin/views/components_site_views/tmpl/default_toolbar.php create mode 100644 admin/views/components_site_views/tmpl/index.html create mode 100644 admin/views/components_site_views/view.html.php create mode 100644 admin/views/components_updates/index.html create mode 100644 admin/views/components_updates/tmpl/default.php create mode 100644 admin/views/components_updates/tmpl/default_batch_body.php create mode 100644 admin/views/components_updates/tmpl/default_batch_footer.php create mode 100644 admin/views/components_updates/tmpl/default_body.php create mode 100644 admin/views/components_updates/tmpl/default_foot.php create mode 100644 admin/views/components_updates/tmpl/default_head.php create mode 100644 admin/views/components_updates/tmpl/default_toolbar.php create mode 100644 admin/views/components_updates/tmpl/index.html create mode 100644 admin/views/components_updates/view.html.php diff --git a/README.md b/README.md index e38adb72e..d40000d37 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.5.8) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.5.9) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://youtu.be/1KBBtQUxMTc) @@ -110,13 +110,13 @@ Component Builder is mapped as a component in itself on my local development env + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](http://vdm.bz/component-builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 21st October, 2017 -+ *Version*: 2.5.8 ++ *Last Build*: 26th October, 2017 ++ *Version*: 2.5.9 + *Copyright*: Copyright (C) 2015. All Rights Reserved + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html -+ *Line count*: **125906** -+ *File count*: **742** -+ *Folder count*: **129** ++ *Line count*: **160841** ++ *File count*: **1000** ++ *Folder count*: **165** > This **component** was build with a Joomla [Automated Component Builder](http://vdm.bz/component-builder). > Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io) diff --git a/admin/README.txt b/admin/README.txt index e38adb72e..d40000d37 100644 --- a/admin/README.txt +++ b/admin/README.txt @@ -9,7 +9,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will safe you lots of time and money. A real must have! -You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.5.8) with **ALL** its features and **ALL** concepts totally open-source and free! +You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.5.9) with **ALL** its features and **ALL** concepts totally open-source and free! > Watch Quick Build of a Hello World component in [JCB on Youtube](https://youtu.be/1KBBtQUxMTc) @@ -110,13 +110,13 @@ Component Builder is mapped as a component in itself on my local development env + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Name*: [Component Builder](http://vdm.bz/component-builder) + *First Build*: 30th April, 2015 -+ *Last Build*: 21st October, 2017 -+ *Version*: 2.5.8 ++ *Last Build*: 26th October, 2017 ++ *Version*: 2.5.9 + *Copyright*: Copyright (C) 2015. All Rights Reserved + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html -+ *Line count*: **125906** -+ *File count*: **742** -+ *Folder count*: **129** ++ *Line count*: **160841** ++ *File count*: **1000** ++ *Folder count*: **165** > This **component** was build with a Joomla [Automated Component Builder](http://vdm.bz/component-builder). > Developed by [Llewellyn van der Merwe](mailto:joomla@vdm.io) diff --git a/admin/access.xml b/admin/access.xml index 20bd779a2..f816a8d36 100644 --- a/admin/access.xml +++ b/admin/access.xml @@ -54,6 +54,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -393,6 +483,105 @@ +
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
+
+ + + + + + + + + +
diff --git a/admin/assets/css/admin.css b/admin/assets/css/admin.css index 104649c14..7e98592f3 100644 --- a/admin/assets/css/admin.css +++ b/admin/assets/css/admin.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin.css diff --git a/admin/assets/css/admin_fields.css b/admin/assets/css/admin_fields.css index 6d27b7d74..a88cd9562 100644 --- a/admin/assets/css/admin_fields.css +++ b/admin/assets/css/admin_fields.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields.css diff --git a/admin/assets/css/admin_fields_conditions.css b/admin/assets/css/admin_fields_conditions.css index 480e4cd30..6bd419df5 100644 --- a/admin/assets/css/admin_fields_conditions.css +++ b/admin/assets/css/admin_fields_conditions.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields_conditions.css diff --git a/admin/assets/css/admin_view.css b/admin/assets/css/admin_view.css index e40eeb8d2..d933a38a2 100644 --- a/admin/assets/css/admin_view.css +++ b/admin/assets/css/admin_view.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 202 of this MVC - @build 21st October, 2017 + @version @update number 228 of this MVC + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_view.css diff --git a/admin/assets/css/admin_views.css b/admin/assets/css/admin_views.css index 71536eff9..b099ee6b5 100644 --- a/admin/assets/css/admin_views.css +++ b/admin/assets/css/admin_views.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 202 of this MVC - @build 21st October, 2017 + @version @update number 228 of this MVC + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_views.css diff --git a/admin/assets/css/admins_fields.css b/admin/assets/css/admins_fields.css index 6509e2410..c831d8060 100644 --- a/admin/assets/css/admins_fields.css +++ b/admin/assets/css/admins_fields.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admins_fields.css diff --git a/admin/assets/css/admins_fields_conditions.css b/admin/assets/css/admins_fields_conditions.css index 1c56a1ca3..266c6a14d 100644 --- a/admin/assets/css/admins_fields_conditions.css +++ b/admin/assets/css/admins_fields_conditions.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admins_fields_conditions.css diff --git a/admin/assets/css/component_admin_views.css b/admin/assets/css/component_admin_views.css new file mode 100644 index 000000000..4a5fbb098 --- /dev/null +++ b/admin/assets/css/component_admin_views.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage component_admin_views.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/component_config.css b/admin/assets/css/component_config.css new file mode 100644 index 000000000..0dc507409 --- /dev/null +++ b/admin/assets/css/component_config.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 3 of this MVC + @build 26th October, 2017 + @created 23rd October, 2017 + @package Component Builder + @subpackage component_config.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/component_custom_admin_menus.css b/admin/assets/css/component_custom_admin_menus.css new file mode 100644 index 000000000..c1cf8cc0a --- /dev/null +++ b/admin/assets/css/component_custom_admin_menus.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 23rd October, 2017 + @package Component Builder + @subpackage component_custom_admin_menus.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/component_custom_admin_views.css b/admin/assets/css/component_custom_admin_views.css new file mode 100644 index 000000000..fff12c3e5 --- /dev/null +++ b/admin/assets/css/component_custom_admin_views.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage component_custom_admin_views.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/component_dashboard.css b/admin/assets/css/component_dashboard.css new file mode 100644 index 000000000..a9a31f4cf --- /dev/null +++ b/admin/assets/css/component_dashboard.css @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 26th October, 2017 + @package Component Builder + @subpackage component_dashboard.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + +.tab_html { width: 1027px; height: 338px; } diff --git a/admin/assets/css/component_files_folders.css b/admin/assets/css/component_files_folders.css new file mode 100644 index 000000000..2c2d6c0a7 --- /dev/null +++ b/admin/assets/css/component_files_folders.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 26th October, 2017 + @package Component Builder + @subpackage component_files_folders.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/component_mysql_tweaks.css b/admin/assets/css/component_mysql_tweaks.css new file mode 100644 index 000000000..49185ad80 --- /dev/null +++ b/admin/assets/css/component_mysql_tweaks.css @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage component_mysql_tweaks.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + +.ids_selection {min-width: 100%;} diff --git a/admin/assets/css/component_site_views.css b/admin/assets/css/component_site_views.css new file mode 100644 index 000000000..5f6b21e71 --- /dev/null +++ b/admin/assets/css/component_site_views.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 3 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage component_site_views.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/component_updates.css b/admin/assets/css/component_updates.css new file mode 100644 index 000000000..07633cdcd --- /dev/null +++ b/admin/assets/css/component_updates.css @@ -0,0 +1,29 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 7 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage component_updates.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + +.mysql_update { width: 100%; height: 392px; } +.version_url { min-width: 100%; } diff --git a/admin/assets/css/components_admin_views.css b/admin/assets/css/components_admin_views.css new file mode 100644 index 000000000..f0dda169f --- /dev/null +++ b/admin/assets/css/components_admin_views.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage components_admin_views.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_config.css b/admin/assets/css/components_config.css new file mode 100644 index 000000000..159a7b1bf --- /dev/null +++ b/admin/assets/css/components_config.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 3 of this MVC + @build 26th October, 2017 + @created 23rd October, 2017 + @package Component Builder + @subpackage components_config.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_custom_admin_menus.css b/admin/assets/css/components_custom_admin_menus.css new file mode 100644 index 000000000..c41778472 --- /dev/null +++ b/admin/assets/css/components_custom_admin_menus.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 23rd October, 2017 + @package Component Builder + @subpackage components_custom_admin_menus.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_custom_admin_views.css b/admin/assets/css/components_custom_admin_views.css new file mode 100644 index 000000000..1f3f57157 --- /dev/null +++ b/admin/assets/css/components_custom_admin_views.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage components_custom_admin_views.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_dashboard.css b/admin/assets/css/components_dashboard.css new file mode 100644 index 000000000..f12a1981f --- /dev/null +++ b/admin/assets/css/components_dashboard.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 26th October, 2017 + @package Component Builder + @subpackage components_dashboard.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_files_folders.css b/admin/assets/css/components_files_folders.css new file mode 100644 index 000000000..1afb76936 --- /dev/null +++ b/admin/assets/css/components_files_folders.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 26th October, 2017 + @package Component Builder + @subpackage components_files_folders.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_mysql_tweaks.css b/admin/assets/css/components_mysql_tweaks.css new file mode 100644 index 000000000..164ed3ad0 --- /dev/null +++ b/admin/assets/css/components_mysql_tweaks.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage components_mysql_tweaks.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_site_views.css b/admin/assets/css/components_site_views.css new file mode 100644 index 000000000..3716f8364 --- /dev/null +++ b/admin/assets/css/components_site_views.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 3 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage components_site_views.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/components_updates.css b/admin/assets/css/components_updates.css new file mode 100644 index 000000000..0083f767f --- /dev/null +++ b/admin/assets/css/components_updates.css @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 7 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage components_updates.css + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +/* CSS Document */ + + diff --git a/admin/assets/css/custom_admin_view.css b/admin/assets/css/custom_admin_view.css index 22ffc7e4d..8dbfe4280 100644 --- a/admin/assets/css/custom_admin_view.css +++ b/admin/assets/css/custom_admin_view.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage custom_admin_view.css diff --git a/admin/assets/css/custom_admin_views.css b/admin/assets/css/custom_admin_views.css index c82eee70b..91605c3a9 100644 --- a/admin/assets/css/custom_admin_views.css +++ b/admin/assets/css/custom_admin_views.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage custom_admin_views.css diff --git a/admin/assets/css/dashboard.css b/admin/assets/css/dashboard.css index 8bfc594a6..b9d503559 100644 --- a/admin/assets/css/dashboard.css +++ b/admin/assets/css/dashboard.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage dashboard.css diff --git a/admin/assets/css/dynamic_get.css b/admin/assets/css/dynamic_get.css index 46879470f..db4a0fd5b 100644 --- a/admin/assets/css/dynamic_get.css +++ b/admin/assets/css/dynamic_get.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 98 of this MVC - @build 20th October, 2017 + @version @update number 101 of this MVC + @build 26th October, 2017 @created 21st May, 2015 @package Component Builder @subpackage dynamic_get.css diff --git a/admin/assets/css/dynamic_gets.css b/admin/assets/css/dynamic_gets.css index aa575fae5..11e95538d 100644 --- a/admin/assets/css/dynamic_gets.css +++ b/admin/assets/css/dynamic_gets.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 98 of this MVC - @build 20th October, 2017 + @version @update number 101 of this MVC + @build 26th October, 2017 @created 21st May, 2015 @package Component Builder @subpackage dynamic_gets.css diff --git a/admin/assets/css/field.css b/admin/assets/css/field.css index 475a1a58d..55f4790ad 100644 --- a/admin/assets/css/field.css +++ b/admin/assets/css/field.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 40 of this MVC - @build 18th October, 2017 + @build 25th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage field.css diff --git a/admin/assets/css/fields.css b/admin/assets/css/fields.css index a4bd0d41b..9115af5f2 100644 --- a/admin/assets/css/fields.css +++ b/admin/assets/css/fields.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 40 of this MVC - @build 18th October, 2017 + @build 25th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields.css diff --git a/admin/assets/css/fieldtype.css b/admin/assets/css/fieldtype.css index 7d37a18ee..c96560eec 100644 --- a/admin/assets/css/fieldtype.css +++ b/admin/assets/css/fieldtype.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 13th October, 2017 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtype.css diff --git a/admin/assets/css/fieldtypes.css b/admin/assets/css/fieldtypes.css index 53685eb51..8a33b3750 100644 --- a/admin/assets/css/fieldtypes.css +++ b/admin/assets/css/fieldtypes.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 13th October, 2017 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtypes.css diff --git a/admin/assets/css/ftp.css b/admin/assets/css/ftp.css index 9584a45fd..cdcf8914a 100644 --- a/admin/assets/css/ftp.css +++ b/admin/assets/css/ftp.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 11 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 23rd August, 2017 @package Component Builder @subpackage ftp.css diff --git a/admin/assets/css/ftps.css b/admin/assets/css/ftps.css index 0578cdc23..22b0b38f9 100644 --- a/admin/assets/css/ftps.css +++ b/admin/assets/css/ftps.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 11 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 23rd August, 2017 @package Component Builder @subpackage ftps.css diff --git a/admin/assets/css/joomla_component.css b/admin/assets/css/joomla_component.css index 3ffeda6e0..a6e94cec8 100644 --- a/admin/assets/css/joomla_component.css +++ b/admin/assets/css/joomla_component.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage joomla_component.css diff --git a/admin/assets/css/joomla_components.css b/admin/assets/css/joomla_components.css index a2f003053..ac71c2860 100644 --- a/admin/assets/css/joomla_components.css +++ b/admin/assets/css/joomla_components.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage joomla_components.css diff --git a/admin/assets/css/language.css b/admin/assets/css/language.css index 95309ab6b..fe8d7f50c 100644 --- a/admin/assets/css/language.css +++ b/admin/assets/css/language.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage language.css diff --git a/admin/assets/css/language_translation.css b/admin/assets/css/language_translation.css index 8e547802b..2983ad01d 100644 --- a/admin/assets/css/language_translation.css +++ b/admin/assets/css/language_translation.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 45 of this MVC - @build 14th October, 2017 + @version @update number 46 of this MVC + @build 26th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage language_translation.css diff --git a/admin/assets/css/language_translations.css b/admin/assets/css/language_translations.css index 51d06adfc..072dcb3b6 100644 --- a/admin/assets/css/language_translations.css +++ b/admin/assets/css/language_translations.css @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 45 of this MVC - @build 14th October, 2017 + @version @update number 46 of this MVC + @build 26th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage language_translations.css diff --git a/admin/assets/css/languages.css b/admin/assets/css/languages.css index 581d6aa11..51f1d9cbc 100644 --- a/admin/assets/css/languages.css +++ b/admin/assets/css/languages.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage languages.css diff --git a/admin/assets/css/layout.css b/admin/assets/css/layout.css index 832fc56af..868a35e07 100644 --- a/admin/assets/css/layout.css +++ b/admin/assets/css/layout.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 81 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 18th May, 2015 @package Component Builder @subpackage layout.css diff --git a/admin/assets/css/layouts.css b/admin/assets/css/layouts.css index a9f11151f..487a3e75a 100644 --- a/admin/assets/css/layouts.css +++ b/admin/assets/css/layouts.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 81 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 18th May, 2015 @package Component Builder @subpackage layouts.css diff --git a/admin/assets/css/site_view.css b/admin/assets/css/site_view.css index c4130729a..64aa3387e 100644 --- a/admin/assets/css/site_view.css +++ b/admin/assets/css/site_view.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 63 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 29th May, 2015 @package Component Builder @subpackage site_view.css diff --git a/admin/assets/css/site_views.css b/admin/assets/css/site_views.css index 8a73448ff..938d6830d 100644 --- a/admin/assets/css/site_views.css +++ b/admin/assets/css/site_views.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 63 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 29th May, 2015 @package Component Builder @subpackage site_views.css diff --git a/admin/assets/css/snippet.css b/admin/assets/css/snippet.css index 706486413..b1925f406 100644 --- a/admin/assets/css/snippet.css +++ b/admin/assets/css/snippet.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 17 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 19th May, 2015 @package Component Builder @subpackage snippet.css diff --git a/admin/assets/css/snippets.css b/admin/assets/css/snippets.css index 2b1011ccf..cf096cbc0 100644 --- a/admin/assets/css/snippets.css +++ b/admin/assets/css/snippets.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 17 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 19th May, 2015 @package Component Builder @subpackage snippets.css diff --git a/admin/assets/css/template.css b/admin/assets/css/template.css index 048377ab5..fd0452c9d 100644 --- a/admin/assets/css/template.css +++ b/admin/assets/css/template.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 45 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 26th May, 2015 @package Component Builder @subpackage template.css diff --git a/admin/assets/css/templates.css b/admin/assets/css/templates.css index d3425725b..146b2b373 100644 --- a/admin/assets/css/templates.css +++ b/admin/assets/css/templates.css @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 45 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 26th May, 2015 @package Component Builder @subpackage templates.css diff --git a/admin/assets/js/admin.js b/admin/assets/js/admin.js index 2531d54e8..2a8611f4e 100644 --- a/admin/assets/js/admin.js +++ b/admin/assets/js/admin.js @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin.js diff --git a/admin/componentbuilder.php b/admin/componentbuilder.php index e50de833f..37a426a6b 100644 --- a/admin/componentbuilder.php +++ b/admin/componentbuilder.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage componentbuilder.php diff --git a/admin/controller.php b/admin/controller.php index 3d50ff6ce..973bd75d3 100644 --- a/admin/controller.php +++ b/admin/controller.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage controller.php @@ -104,7 +104,16 @@ class ComponentbuilderController extends JControllerLegacy 'ftp' => 'ftps', 'help_document' => 'help_documents', 'admin_fields' => 'admins_fields', - 'admin_fields_conditions' => 'admins_fields_conditions' + 'admin_fields_conditions' => 'admins_fields_conditions', + 'component_admin_views' => 'components_admin_views', + 'component_site_views' => 'components_site_views', + 'component_custom_admin_views' => 'components_custom_admin_views', + 'component_updates' => 'components_updates', + 'component_mysql_tweaks' => 'components_mysql_tweaks', + 'component_custom_admin_menus' => 'components_custom_admin_menus', + 'component_config' => 'components_config', + 'component_dashboard' => 'components_dashboard', + 'component_files_folders' => 'components_files_folders' ); // check if this is a list view if (in_array($view,$views)) diff --git a/admin/controllers/admin_fields.php b/admin/controllers/admin_fields.php index d5bc469b6..5f3aab018 100644 --- a/admin/controllers/admin_fields.php +++ b/admin/controllers/admin_fields.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields.php diff --git a/admin/controllers/admin_fields_conditions.php b/admin/controllers/admin_fields_conditions.php index 8d4156209..11b59bf81 100644 --- a/admin/controllers/admin_fields_conditions.php +++ b/admin/controllers/admin_fields_conditions.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields_conditions.php diff --git a/admin/controllers/admin_view.php b/admin/controllers/admin_view.php index 0f152d019..4f9a2f732 100644 --- a/admin/controllers/admin_view.php +++ b/admin/controllers/admin_view.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 202 of this MVC - @build 21st October, 2017 + @version @update number 228 of this MVC + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_view.php @@ -321,25 +321,27 @@ class ComponentbuilderControllerAdmin_view extends JControllerForm protected function postSaveHook(JModelLegacy $model, $validData = array()) { // get the state object (Joomla\CMS\Object\CMSObject) - $state = $model->get('state'); - // if we save2copy we need to also copy admin_fields & admin_fields_conditions if found! + $state = $model->get('state'); + // if we save2copy we need to also copy linked tables found! if ($state->task === 'save2copy' && $state->{'admin_view.new'}) { // get new ID $newID = $state->{'admin_view.id'}; // get old ID $oldID = $this->input->get('id', 0, 'INT'); - // get the linked ID - if ($field = ComponentbuilderHelper::getVar('admin_fields', $oldID, 'admin_view', 'id')) + // linked tables to update + $_tablesArray = array( + 'admin_fields', + 'admin_fields_conditions' + ); + foreach($_tablesArray as $_updateTable) { - // copy fields to new admin view - ComponentbuilderHelper::copyItem(/*id->*/ $field, /*table->*/ 'admin_fields', /*change->*/ array('admin_view' => $newID)); - } - // get the linked ID - if ($condition = ComponentbuilderHelper::getVar('admin_fields_conditions', $oldID, 'admin_view', 'id')) - { - // copy conditions to new admin view - ComponentbuilderHelper::copyItem(/*id->*/ $condition, /*table->*/ 'admin_fields_conditions', /*change->*/ array('admin_view' => $newID)); + // get the linked ID + if ($_value = ComponentbuilderHelper::getVar($_updateTable, $oldID, 'admin_view', 'id')) + { + // copy fields to new admin view + ComponentbuilderHelper::copyItem(/*id->*/ $_value, /*table->*/ $_updateTable, /*change->*/ array('admin_view' => $newID)); + } } } diff --git a/admin/controllers/admin_views.php b/admin/controllers/admin_views.php index 15bed18d8..849fc1c88 100644 --- a/admin/controllers/admin_views.php +++ b/admin/controllers/admin_views.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 202 of this MVC - @build 21st October, 2017 + @version @update number 228 of this MVC + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_views.php diff --git a/admin/controllers/admins_fields.php b/admin/controllers/admins_fields.php index d50e85990..270d4373a 100644 --- a/admin/controllers/admins_fields.php +++ b/admin/controllers/admins_fields.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admins_fields.php diff --git a/admin/controllers/admins_fields_conditions.php b/admin/controllers/admins_fields_conditions.php index eff76ef36..10a91a519 100644 --- a/admin/controllers/admins_fields_conditions.php +++ b/admin/controllers/admins_fields_conditions.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admins_fields_conditions.php diff --git a/admin/controllers/ajax.json.php b/admin/controllers/ajax.json.php index a09495898..57d45d529 100644 --- a/admin/controllers/ajax.json.php +++ b/admin/controllers/ajax.json.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage ajax.json.php @@ -51,7 +51,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy $this->registerTask('getImportScripts', 'ajax'); $this->registerTask('getButton', 'ajax'); $this->registerTask('getButtonID', 'ajax'); - $this->registerTask('getFieldsDisplay', 'ajax'); + $this->registerTask('getAjaxDisplay', 'ajax'); $this->registerTask('templateDetails', 'ajax'); $this->registerTask('getLayoutDetails', 'ajax'); $this->registerTask('dbTableColumns', 'ajax'); @@ -418,14 +418,14 @@ class ComponentbuilderControllerAjax extends JControllerLegacy } } break; - case 'getFieldsDisplay': + case 'getAjaxDisplay': try { $returnRaw = $jinput->get('raw', false, 'BOOLEAN'); $typeValue = $jinput->get('type', NULL, 'WORD'); if($typeValue && $user->id != 0) { - $result = $this->getModel('ajax')->getFieldsDisplay($typeValue); + $result = $this->getModel('ajax')->getAjaxDisplay($typeValue); } else { diff --git a/admin/controllers/component_admin_views.php b/admin/controllers/component_admin_views.php new file mode 100644 index 000000000..48ced02de --- /dev/null +++ b/admin/controllers/component_admin_views.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_admin_views Controller + */ +class ComponentbuilderControllerComponent_admin_views extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_admin_views'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_admin_views.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_admin_views.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_admin_views.access', 'com_componentbuilder.component_admin_views.' . (int) $recordId) && $user->authorise('component_admin_views.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_admin_views.edit', 'com_componentbuilder.component_admin_views.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_admin_views.edit.own', 'com_componentbuilder.component_admin_views.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_admin_views.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_admin_views.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_admin_views', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_admin_views' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_config.php b/admin/controllers/component_config.php new file mode 100644 index 000000000..c11e1b140 --- /dev/null +++ b/admin/controllers/component_config.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_config Controller + */ +class ComponentbuilderControllerComponent_config extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_config'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_config.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_config.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_config.access', 'com_componentbuilder.component_config.' . (int) $recordId) && $user->authorise('component_config.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_config.edit', 'com_componentbuilder.component_config.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_config.edit.own', 'com_componentbuilder.component_config.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_config.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_config.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_config', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_config' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_custom_admin_menus.php b/admin/controllers/component_custom_admin_menus.php new file mode 100644 index 000000000..119283419 --- /dev/null +++ b/admin/controllers/component_custom_admin_menus.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_custom_admin_menus Controller + */ +class ComponentbuilderControllerComponent_custom_admin_menus extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_custom_admin_menus'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_custom_admin_menus.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_custom_admin_menus.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_custom_admin_menus.access', 'com_componentbuilder.component_custom_admin_menus.' . (int) $recordId) && $user->authorise('component_custom_admin_menus.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_custom_admin_menus.edit', 'com_componentbuilder.component_custom_admin_menus.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_custom_admin_menus.edit.own', 'com_componentbuilder.component_custom_admin_menus.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_custom_admin_menus.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_custom_admin_menus.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_custom_admin_menus', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_custom_admin_menus' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_custom_admin_views.php b/admin/controllers/component_custom_admin_views.php new file mode 100644 index 000000000..134e625dc --- /dev/null +++ b/admin/controllers/component_custom_admin_views.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_custom_admin_views Controller + */ +class ComponentbuilderControllerComponent_custom_admin_views extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_custom_admin_views'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_custom_admin_views.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_custom_admin_views.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_custom_admin_views.access', 'com_componentbuilder.component_custom_admin_views.' . (int) $recordId) && $user->authorise('component_custom_admin_views.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_custom_admin_views.edit', 'com_componentbuilder.component_custom_admin_views.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_custom_admin_views.edit.own', 'com_componentbuilder.component_custom_admin_views.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_custom_admin_views.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_custom_admin_views.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_custom_admin_views', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_custom_admin_views' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_dashboard.php b/admin/controllers/component_dashboard.php new file mode 100644 index 000000000..e801db038 --- /dev/null +++ b/admin/controllers/component_dashboard.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_dashboard Controller + */ +class ComponentbuilderControllerComponent_dashboard extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_dashboard'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_dashboard.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_dashboard.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_dashboard.access', 'com_componentbuilder.component_dashboard.' . (int) $recordId) && $user->authorise('component_dashboard.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_dashboard.edit', 'com_componentbuilder.component_dashboard.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_dashboard.edit.own', 'com_componentbuilder.component_dashboard.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_dashboard.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_dashboard.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_dashboard', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_dashboard' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_files_folders.php b/admin/controllers/component_files_folders.php new file mode 100644 index 000000000..2b4c47304 --- /dev/null +++ b/admin/controllers/component_files_folders.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_files_folders Controller + */ +class ComponentbuilderControllerComponent_files_folders extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_files_folders'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_files_folders.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_files_folders.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_files_folders.access', 'com_componentbuilder.component_files_folders.' . (int) $recordId) && $user->authorise('component_files_folders.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_files_folders.edit', 'com_componentbuilder.component_files_folders.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_files_folders.edit.own', 'com_componentbuilder.component_files_folders.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_files_folders.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_files_folders.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_files_folders', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_files_folders' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_mysql_tweaks.php b/admin/controllers/component_mysql_tweaks.php new file mode 100644 index 000000000..800cbdd01 --- /dev/null +++ b/admin/controllers/component_mysql_tweaks.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_mysql_tweaks Controller + */ +class ComponentbuilderControllerComponent_mysql_tweaks extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_mysql_tweaks'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_mysql_tweaks.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_mysql_tweaks.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_mysql_tweaks.access', 'com_componentbuilder.component_mysql_tweaks.' . (int) $recordId) && $user->authorise('component_mysql_tweaks.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_mysql_tweaks.edit', 'com_componentbuilder.component_mysql_tweaks.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_mysql_tweaks.edit.own', 'com_componentbuilder.component_mysql_tweaks.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_mysql_tweaks.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_mysql_tweaks.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_mysql_tweaks', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_mysql_tweaks' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_site_views.php b/admin/controllers/component_site_views.php new file mode 100644 index 000000000..c2c886a65 --- /dev/null +++ b/admin/controllers/component_site_views.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_site_views Controller + */ +class ComponentbuilderControllerComponent_site_views extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_site_views'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_site_views.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_site_views.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_site_views.access', 'com_componentbuilder.component_site_views.' . (int) $recordId) && $user->authorise('component_site_views.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_site_views.edit', 'com_componentbuilder.component_site_views.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_site_views.edit.own', 'com_componentbuilder.component_site_views.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_site_views.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_site_views.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_site_views', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_site_views' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/component_updates.php b/admin/controllers/component_updates.php new file mode 100644 index 000000000..7f6ce219d --- /dev/null +++ b/admin/controllers/component_updates.php @@ -0,0 +1,326 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controllerform library +jimport('joomla.application.component.controllerform'); + +/** + * Component_updates Controller + */ +class ComponentbuilderControllerComponent_updates extends JControllerForm +{ + /** + * Current or most recently performed task. + * + * @var string + * @since 12.2 + * @note Replaces _task. + */ + protected $task; + + public function __construct($config = array()) + { + $this->view_list = 'Components_updates'; // safeguard for setting the return view listing to the main view. + parent::__construct($config); + } + + /** + * Method override to check if you can add a new record. + * + * @param array $data An array of input data. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowAdd($data = array()) + { + // Access check. + $access = JFactory::getUser()->authorise('component_updates.access', 'com_componentbuilder'); + if (!$access) + { + return false; + } + // In the absense of better information, revert to the component permissions. + return JFactory::getUser()->authorise('component_updates.create', $this->option); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 1.6 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // get user object. + $user = JFactory::getUser(); + // get record id. + $recordId = (int) isset($data[$key]) ? $data[$key] : 0; + + + // Access check. + $access = ($user->authorise('component_updates.access', 'com_componentbuilder.component_updates.' . (int) $recordId) && $user->authorise('component_updates.access', 'com_componentbuilder')); + if (!$access) + { + return false; + } + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_updates.edit', 'com_componentbuilder.component_updates.' . (int) $recordId); + if (!$permission) + { + if ($user->authorise('component_updates.edit.own', 'com_componentbuilder.component_updates.' . $recordId)) + { + // Now test the owner is the user. + $ownerId = (int) isset($data['created_by']) ? $data['created_by'] : 0; + if (empty($ownerId)) + { + // Need to do a lookup from the model. + $record = $this->getModel()->getItem($recordId); + + if (empty($record)) + { + return false; + } + $ownerId = $record->created_by; + } + + // If the owner matches 'me' then allow. + if ($ownerId == $user->id) + { + if ($user->authorise('component_updates.edit.own', 'com_componentbuilder')) + { + return true; + } + } + } + return false; + } + } + // Since there is no permission, revert to the component permissions. + return $user->authorise('component_updates.edit', $this->option); + } + + /** + * Gets the URL arguments to append to an item redirect. + * + * @param integer $recordId The primary key id for the item. + * @param string $urlVar The name of the URL variable for the id. + * + * @return string The arguments to append to the redirect URL. + * + * @since 12.2 + */ + protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id') + { + $tmpl = $this->input->get('tmpl'); + $layout = $this->input->get('layout', 'edit', 'string'); + + $ref = $this->input->get('ref', 0, 'string'); + $refid = $this->input->get('refid', 0, 'int'); + + // Setup redirect info. + + $append = ''; + + if ($refid) + { + $append .= '&ref='.(string)$ref.'&refid='.(int)$refid; + } + elseif ($ref) + { + $append .= '&ref='.(string)$ref; + } + + if ($tmpl) + { + $append .= '&tmpl=' . $tmpl; + } + + if ($layout) + { + $append .= '&layout=' . $layout; + } + + if ($recordId) + { + $append .= '&' . $urlVar . '=' . $recordId; + } + + return $append; + } + + /** + * Method to run batch operations. + * + * @param object $model The model. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 2.5 + */ + public function batch($model = null) + { + JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN')); + + // Set the model + $model = $this->getModel('Component_updates', '', array()); + + // Preset the redirect + $this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=components_updates' . $this->getRedirectToListAppend(), false)); + + return parent::batch($model); + } + + /** + * Method to cancel an edit. + * + * @param string $key The name of the primary key of the URL variable. + * + * @return boolean True if access level checks pass, false otherwise. + * + * @since 12.2 + */ + public function cancel($key = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + $cancel = parent::cancel($key); + + if ($cancel) + { + if ($this->refid) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + } + else + { + // Redirect to the items screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . '&view=' . $this->view_list, false + ) + ); + } + return $cancel; + } + + /** + * Method to save a record. + * + * @param string $key The name of the primary key of the URL variable. + * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions). + * + * @return boolean True if successful, false otherwise. + * + * @since 12.2 + */ + public function save($key = null, $urlVar = null) + { + // get the referal details + $this->ref = $this->input->get('ref', 0, 'word'); + $this->refid = $this->input->get('refid', 0, 'int'); + + if ($this->ref || $this->refid) + { + // to make sure the item is checkedin on redirect + $this->task = 'save'; + } + + $saved = parent::save($key, $urlVar); + + if ($this->refid && $saved) + { + $redirect = '&view='.(string)$this->ref.'&layout=edit&id='.(int)$this->refid; + + // Redirect to the item screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + elseif ($this->ref && $saved) + { + $redirect = '&view='.(string)$this->ref; + + // Redirect to the list screen. + $this->setRedirect( + JRoute::_( + 'index.php?option=' . $this->option . $redirect, false + ) + ); + } + return $saved; + } + + /** + * Function that allows child controller access to model data + * after the data has been saved. + * + * @param JModel &$model The data model object. + * @param array $validData The validated data. + * + * @return void + * + * @since 11.1 + */ + protected function postSaveHook(JModelLegacy $model, $validData = array()) + { + return; + } + +} diff --git a/admin/controllers/componentbuilder.php b/admin/controllers/componentbuilder.php index 4206432f2..eec8c3b1a 100644 --- a/admin/controllers/componentbuilder.php +++ b/admin/controllers/componentbuilder.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage componentbuilder.php diff --git a/admin/controllers/components_admin_views.php b/admin/controllers/components_admin_views.php new file mode 100644 index 000000000..293ded748 --- /dev/null +++ b/admin/controllers/components_admin_views.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_admin_views Controller + */ +class ComponentbuilderControllerComponents_admin_views extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_admin_views', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_config.php b/admin/controllers/components_config.php new file mode 100644 index 000000000..89eeaacac --- /dev/null +++ b/admin/controllers/components_config.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_config Controller + */ +class ComponentbuilderControllerComponents_config extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_CONFIG'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_config', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_custom_admin_menus.php b/admin/controllers/components_custom_admin_menus.php new file mode 100644 index 000000000..75367bdbd --- /dev/null +++ b/admin/controllers/components_custom_admin_menus.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_custom_admin_menus Controller + */ +class ComponentbuilderControllerComponents_custom_admin_menus extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_custom_admin_menus', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_custom_admin_views.php b/admin/controllers/components_custom_admin_views.php new file mode 100644 index 000000000..f09fc7671 --- /dev/null +++ b/admin/controllers/components_custom_admin_views.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_custom_admin_views Controller + */ +class ComponentbuilderControllerComponents_custom_admin_views extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_custom_admin_views', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_dashboard.php b/admin/controllers/components_dashboard.php new file mode 100644 index 000000000..fdcb552a1 --- /dev/null +++ b/admin/controllers/components_dashboard.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_dashboard Controller + */ +class ComponentbuilderControllerComponents_dashboard extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_dashboard', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_files_folders.php b/admin/controllers/components_files_folders.php new file mode 100644 index 000000000..4c3b5d05c --- /dev/null +++ b/admin/controllers/components_files_folders.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_files_folders Controller + */ +class ComponentbuilderControllerComponents_files_folders extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_files_folders', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_mysql_tweaks.php b/admin/controllers/components_mysql_tweaks.php new file mode 100644 index 000000000..e3f9addaa --- /dev/null +++ b/admin/controllers/components_mysql_tweaks.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_mysql_tweaks Controller + */ +class ComponentbuilderControllerComponents_mysql_tweaks extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_mysql_tweaks', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_site_views.php b/admin/controllers/components_site_views.php new file mode 100644 index 000000000..0412ad402 --- /dev/null +++ b/admin/controllers/components_site_views.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_site_views Controller + */ +class ComponentbuilderControllerComponents_site_views extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_site_views', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/components_updates.php b/admin/controllers/components_updates.php new file mode 100644 index 000000000..9dbf05755 --- /dev/null +++ b/admin/controllers/components_updates.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla controlleradmin library +jimport('joomla.application.component.controlleradmin'); + +/** + * Components_updates Controller + */ +class ComponentbuilderControllerComponents_updates extends JControllerAdmin +{ + protected $text_prefix = 'COM_COMPONENTBUILDER_COMPONENTS_UPDATES'; + /** + * Proxy for getModel. + * @since 2.5 + */ + public function getModel($name = 'Component_updates', $prefix = 'ComponentbuilderModel', $config = array()) + { + $model = parent::getModel($name, $prefix, array('ignore_request' => true)); + + return $model; + } +} diff --git a/admin/controllers/custom_admin_view.php b/admin/controllers/custom_admin_view.php index c7bd3893a..0a9be7035 100644 --- a/admin/controllers/custom_admin_view.php +++ b/admin/controllers/custom_admin_view.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage custom_admin_view.php diff --git a/admin/controllers/custom_admin_views.php b/admin/controllers/custom_admin_views.php index e164ff3bd..a3c9aebb3 100644 --- a/admin/controllers/custom_admin_views.php +++ b/admin/controllers/custom_admin_views.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage custom_admin_views.php diff --git a/admin/controllers/dynamic_get.php b/admin/controllers/dynamic_get.php index 6d799bfbd..55a6bfe45 100644 --- a/admin/controllers/dynamic_get.php +++ b/admin/controllers/dynamic_get.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 98 of this MVC - @build 20th October, 2017 + @version @update number 101 of this MVC + @build 26th October, 2017 @created 21st May, 2015 @package Component Builder @subpackage dynamic_get.php diff --git a/admin/controllers/dynamic_gets.php b/admin/controllers/dynamic_gets.php index 81c77b8e8..fb8cde3fe 100644 --- a/admin/controllers/dynamic_gets.php +++ b/admin/controllers/dynamic_gets.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 98 of this MVC - @build 20th October, 2017 + @version @update number 101 of this MVC + @build 26th October, 2017 @created 21st May, 2015 @package Component Builder @subpackage dynamic_gets.php diff --git a/admin/controllers/field.php b/admin/controllers/field.php index b3d4c57cd..2b37f2a89 100644 --- a/admin/controllers/field.php +++ b/admin/controllers/field.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 40 of this MVC - @build 18th October, 2017 + @build 25th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage field.php diff --git a/admin/controllers/fields.php b/admin/controllers/fields.php index cf0526115..d1ac1aca3 100644 --- a/admin/controllers/fields.php +++ b/admin/controllers/fields.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 40 of this MVC - @build 18th October, 2017 + @build 25th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields.php diff --git a/admin/controllers/fieldtype.php b/admin/controllers/fieldtype.php index 151ffbe0d..c284f516f 100644 --- a/admin/controllers/fieldtype.php +++ b/admin/controllers/fieldtype.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 13th October, 2017 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtype.php diff --git a/admin/controllers/fieldtypes.php b/admin/controllers/fieldtypes.php index 82b2b25f5..67541e111 100644 --- a/admin/controllers/fieldtypes.php +++ b/admin/controllers/fieldtypes.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 13th October, 2017 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtypes.php diff --git a/admin/controllers/ftp.php b/admin/controllers/ftp.php index eb1a1b4a0..036813fe4 100644 --- a/admin/controllers/ftp.php +++ b/admin/controllers/ftp.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 11 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 23rd August, 2017 @package Component Builder @subpackage ftp.php diff --git a/admin/controllers/ftps.php b/admin/controllers/ftps.php index 398d1b67b..f1da29e43 100644 --- a/admin/controllers/ftps.php +++ b/admin/controllers/ftps.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 11 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 23rd August, 2017 @package Component Builder @subpackage ftps.php diff --git a/admin/controllers/help.php b/admin/controllers/help.php index a099bd17f..e163ee45c 100644 --- a/admin/controllers/help.php +++ b/admin/controllers/help.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage help.php diff --git a/admin/controllers/import.php b/admin/controllers/import.php index a04b05cb7..ea7c16247 100644 --- a/admin/controllers/import.php +++ b/admin/controllers/import.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage import.php diff --git a/admin/controllers/import_joomla_components.php b/admin/controllers/import_joomla_components.php index 15ef99900..cae8d78e0 100644 --- a/admin/controllers/import_joomla_components.php +++ b/admin/controllers/import_joomla_components.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage import_joomla_components.php diff --git a/admin/controllers/joomla_component.php b/admin/controllers/joomla_component.php index e3fbb2369..351b43d25 100644 --- a/admin/controllers/joomla_component.php +++ b/admin/controllers/joomla_component.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage joomla_component.php @@ -320,6 +320,38 @@ class ComponentbuilderControllerJoomla_component extends JControllerForm */ protected function postSaveHook(JModelLegacy $model, $validData = array()) { + // get the state object (Joomla\CMS\Object\CMSObject) + $state = $model->get('state'); + // if we save2copy we need to also copy linked tables found! + if ($state->task === 'save2copy' && $state->{'joomla_component.new'}) + { + // get new ID + $newID = $state->{'joomla_component.id'}; + // get old ID + $oldID = $this->input->get('id', 0, 'INT'); + // linked tables to update + $_tablesArray = array( + 'component_admin_views', + 'component_site_views', + 'component_custom_admin_views', + 'component_updates', + 'component_mysql_tweaks', + 'component_custom_admin_menus', + 'component_config', + 'component_dashboard', + 'component_files_folders' + ); + foreach($_tablesArray as $_updateTable) + { + // get the linked ID + if ($_value = ComponentbuilderHelper::getVar($_updateTable, $oldID, 'joomla_component', 'id')) + { + // copy fields to new linked table + ComponentbuilderHelper::copyItem(/*id->*/ $_value, /*table->*/ $_updateTable, /*change->*/ array('joomla_component' => $newID)); + } + } + } + return; } diff --git a/admin/controllers/joomla_components.php b/admin/controllers/joomla_components.php index a379ac037..2769ceffc 100644 --- a/admin/controllers/joomla_components.php +++ b/admin/controllers/joomla_components.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage joomla_components.php diff --git a/admin/controllers/language.php b/admin/controllers/language.php index aef23b27d..9b81f5543 100644 --- a/admin/controllers/language.php +++ b/admin/controllers/language.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage language.php diff --git a/admin/controllers/language_translation.php b/admin/controllers/language_translation.php index fa7d30e3a..6a9e2fe5a 100644 --- a/admin/controllers/language_translation.php +++ b/admin/controllers/language_translation.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 45 of this MVC - @build 14th October, 2017 + @version @update number 46 of this MVC + @build 26th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage language_translation.php diff --git a/admin/controllers/language_translations.php b/admin/controllers/language_translations.php index a2a011e17..934027940 100644 --- a/admin/controllers/language_translations.php +++ b/admin/controllers/language_translations.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 45 of this MVC - @build 14th October, 2017 + @version @update number 46 of this MVC + @build 26th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage language_translations.php diff --git a/admin/controllers/languages.php b/admin/controllers/languages.php index 62ec59cd5..5b5e818ce 100644 --- a/admin/controllers/languages.php +++ b/admin/controllers/languages.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage languages.php diff --git a/admin/controllers/layout.php b/admin/controllers/layout.php index f6f23da26..f962419dc 100644 --- a/admin/controllers/layout.php +++ b/admin/controllers/layout.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 81 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 18th May, 2015 @package Component Builder @subpackage layout.php diff --git a/admin/controllers/layouts.php b/admin/controllers/layouts.php index 663c05330..fd96dff83 100644 --- a/admin/controllers/layouts.php +++ b/admin/controllers/layouts.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 81 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 18th May, 2015 @package Component Builder @subpackage layouts.php diff --git a/admin/controllers/site_view.php b/admin/controllers/site_view.php index 28de35c78..384d4f3e8 100644 --- a/admin/controllers/site_view.php +++ b/admin/controllers/site_view.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 63 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 29th May, 2015 @package Component Builder @subpackage site_view.php diff --git a/admin/controllers/site_views.php b/admin/controllers/site_views.php index 4e7bee7b9..be84f947c 100644 --- a/admin/controllers/site_views.php +++ b/admin/controllers/site_views.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 63 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 29th May, 2015 @package Component Builder @subpackage site_views.php diff --git a/admin/controllers/snippet.php b/admin/controllers/snippet.php index 92e15f203..22f9ba504 100644 --- a/admin/controllers/snippet.php +++ b/admin/controllers/snippet.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 17 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 19th May, 2015 @package Component Builder @subpackage snippet.php diff --git a/admin/controllers/snippets.php b/admin/controllers/snippets.php index fdc3b30d1..cbae1ba3e 100644 --- a/admin/controllers/snippets.php +++ b/admin/controllers/snippets.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 17 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 19th May, 2015 @package Component Builder @subpackage snippets.php diff --git a/admin/controllers/template.php b/admin/controllers/template.php index 9084095b1..ec4179b39 100644 --- a/admin/controllers/template.php +++ b/admin/controllers/template.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 45 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 26th May, 2015 @package Component Builder @subpackage template.php diff --git a/admin/controllers/templates.php b/admin/controllers/templates.php index 323f17a45..17796c5ac 100644 --- a/admin/controllers/templates.php +++ b/admin/controllers/templates.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 45 of this MVC - @build 27th September, 2017 + @build 25th October, 2017 @created 26th May, 2015 @package Component Builder @subpackage templates.php diff --git a/admin/helpers/compiler.php b/admin/helpers/compiler.php index e121ce617..5a21b8822 100644 --- a/admin/helpers/compiler.php +++ b/admin/helpers/compiler.php @@ -105,6 +105,35 @@ class Compiler extends Infusion } // set the lang data now $this->setLangFileData(); + // set the language notice if it was set + if (ComponentbuilderHelper::checkArray($this->langNot) || ComponentbuilderHelper::checkArray($this->langSet)) + { + if (ComponentbuilderHelper::checkArray($this->langNot)) + { + foreach ($this->langNot as $tag => $percentage) + { + $this->app->enqueueMessage(JText::sprintf('The %s language has %s% translated, you will need to translate %s% of the language strings before it will be added.', + $tag, $percentage, $this->percentageLanguageAdd), 'Warning'); + } + $this->app->enqueueMessage(JText::sprintf('You can change this percentage of translated strings required in the global options of JCB.
Please watch this tutorial for more help surrounding the JCB translations manager.', + '"https://youtu.be/zzAcVkn_cWU?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE" target="_blank" title="JCB Tutorial surrounding Translation Manager"'), 'Notice'); + } + // set why the strings were added + $whyAddedLang = JText::sprintf('because more then %s% of the strings have been translated.', $this->percentageLanguageAdd); + if ($this->debugLinenr) + { + $whyAddedLang = JText::_('because the debugging mode is on. (debug line numbers)'); + } + // show languages that were added + if (ComponentbuilderHelper::checkArray($this->langSet)) + { + foreach ($this->langSet as $tag => $percentage) + { + $this->app->enqueueMessage(JText::sprintf('The %s language has %s% translated. Was addeded %s', + $tag, $percentage, $whyAddedLang), 'Notice'); + } + } + } // move the update server into place $this->setUpdateServer(); // set the global counters @@ -522,8 +551,6 @@ class Compiler extends Infusion protected function addCustomCode() { - // load error messages incase code can not be added - $app = JFactory::getApplication(); // reset all these $this->clearFromPlaceHolders('view'); $this->clearFromPlaceHolders('arg'); @@ -636,20 +663,20 @@ class Compiler extends Infusion { // Load escaped code since the target endhash has changed $this->loadEscapedCode($file, $target, $lineBites); - $app->enqueueMessage(JText::sprintf('Custom code could not be added to %s please review the file at line %s. This could be due to a change to lines below the custom code.', $target['path'], $target['from_line']), 'warning'); + $this->app->enqueueMessage(JText::sprintf('Custom code could not be added to %s please review the file at line %s. This could be due to a change to lines below the custom code.', $target['path'], $target['from_line']), 'warning'); } } else { // Load escaped code since the target hash has changed $this->loadEscapedCode($file, $target, $lineBites); - $app->enqueueMessage(JText::sprintf('Custom code could not be added to %s please review the file at line %s. This could be due to a change to lines above the custom code.', $target['path'], $target['from_line']), 'warning'); + $this->app->enqueueMessage(JText::sprintf('Custom code could not be added to %s please review the file at line %s. This could be due to a change to lines above the custom code.', $target['path'], $target['from_line']), 'warning'); } } else { // Give developer a notice that file is not found. - $app->enqueueMessage(JText::sprintf('File %s could not be found, so the custom code for this file could not be addded.', $target['path']), 'warning'); + $this->app->enqueueMessage(JText::sprintf('File %s could not be found, so the custom code for this file could not be addded.', $target['path']), 'warning'); } } } diff --git a/admin/helpers/compiler/a_Get.php b/admin/helpers/compiler/a_Get.php index 64e040c4f..c9fb1a420 100644 --- a/admin/helpers/compiler/a_Get.php +++ b/admin/helpers/compiler/a_Get.php @@ -31,6 +31,13 @@ defined('_JEXEC') or die('Restricted access'); */ class Get { + /** + * The app + * + * @var object + */ + public $app; + /** * The Params * @@ -498,6 +505,8 @@ class Get { if (isset($config) && count($config)) { + // load application + $this->app = JFactory::getApplication(); // Set the params $this->params = JComponentHelper::getParams('com_componentbuilder'); // load the compiler path @@ -1254,10 +1263,22 @@ class Get $nr = 1; foreach ($view->addtabs as $tab) { - $view->tabs[$nr] = $tab['name']; + $view->tabs[$nr] = trim($tab['name']); $nr++; } } + // if Details tab is not set, then set it here + if (!isset($view->tabs[1])) + { + $view->tabs[1] = 'details'; + } + // always make sure that publishing is lowercase + if (($removeKey = array_search('publishing', array_map('strtolower', $view->tabs))) !== false) + { + $view->tabs[$removeKey] = 'publishing'; + } + // make sure to set the publishing tab (just incase we need it) + $view->tabs[15] = 'publishing'; unset($view->addtabs); // add permissions $view->addpermissions = json_decode($view->addpermissions,true); @@ -2150,7 +2171,7 @@ class Get $results = $this->db->loadObjectList(); $typeArray = array(1 => 'LEFT', 2 => 'LEFT OUTER', 3 => 'INNER', 4 => 'RIGHT', 5 => 'RIGHT OUTER'); $operatorArray = array(1 => '=', 2 => '!=', 3 => '<>', 4 => '>', 5 => '<', 6 => '>=', 7 => '<=', 8 => '!<', 9 => '!>', 10 => 'IN', 11 => 'NOT IN'); - foreach ($results as $nr => &$result) + foreach ($results as $_nr => &$result) { // add calculations if set if($result->addcalculation == 1 && ComponentbuilderHelper::checkString($result->php_calculation)) @@ -2307,7 +2328,7 @@ class Get $join_field = array(); // array(join_field_as, join_field) $join_field = array_map('trim', explode('.',$option1['join_field'])); $option1['selection'] = - $this->setDataSelection($result->key, $view_code, $value, $option1['db_table'], $option1['as'], $option1['row_type'], 'db'); + $this->setDataSelection($result->key, $view_code, $option1['selection'], $option1['db_table'], $option1['as'], $option1['row_type'], 'db'); $option1['key'] = $result->key; // load to the getters if ($option1['row_type'] == 1) diff --git a/admin/helpers/compiler/c_Fields.php b/admin/helpers/compiler/c_Fields.php index a1dee2332..5cc554096 100644 --- a/admin/helpers/compiler/c_Fields.php +++ b/admin/helpers/compiler/c_Fields.php @@ -1206,7 +1206,7 @@ class Fields extends Structure $this->movedPublishingFields[$viewName][$name] = $name; } } - elseif ($tabName === 'publishing') + elseif ($tabName === 'publishing' || $tabName === 'Publishing' ) { if (!in_array($name, $this->defaultFields)) { diff --git a/admin/helpers/compiler/e_Interpretation.php b/admin/helpers/compiler/e_Interpretation.php index 4bed05d35..c2826524d 100644 --- a/admin/helpers/compiler/e_Interpretation.php +++ b/admin/helpers/compiler/e_Interpretation.php @@ -6119,8 +6119,8 @@ class Interpretation extends Fields } // start tab set $bucket = array(); - $leftside = ''; - $rightside = ''; + $leftside = ''; + $rightside = ''; $footer = ''; $header = ''; $mainwidth = 12; @@ -6398,21 +6398,52 @@ class Interpretation extends Fields { $this->langContent[$this->lang][$tabLangName] = 'Publishing'; } - // TODO add new publishing fields <-- nice to have, but no time now to do this - // $this->newPublishingFields[$viewName_single] // the default publishing items - $items = array(); - foreach ($this->defaultFields as $defaultField) + $items = array('left' => array(), 'right' => array()); + // Setup the default (custom) fields + // only load (1 => 'left', 2 => 'right') + $fieldsAddedRight = false; + if (isset($this->newPublishingFields[$viewName_single])) { - if (!isset($this->movedPublishingFields[$viewName_single][$defaultField])) + foreach($this->newPublishingFields[$viewName_single] as $df_alignment => $df_items) { - if ($defaultField != 'access') + foreach($df_items as $df_order => $df_name) { - $items[] = $defaultField; + if ($df_alignment == 2 || $df_alignment == 1) + { + $items[$alignmentNames[$df_alignment]][$df_order] = $df_name; + } + else + { + $this->app->enqueueMessage(JText::sprintf('Your %s field could not be added, since the %s alignment position is not available in the %s (publishing) tab. Please only target Left or right in the publishing tab.', $df_name, $alignmentNames[$df_alignment], $viewName_single), 'warning'); + } } - elseif ($defaultField === 'access' && isset($this->accessBuilder[$viewName_single]) && ComponentbuilderHelper::checkString($this->accessBuilder[$viewName_single])) + } + // set switch to trigger notice if custom fields added to right + if (ComponentbuilderHelper::checkArray($items['right'])) + { + $fieldsAddedRight = true; + } + } + // load all defaults + $loadDefaultFields = array( + 'left' => array('created', 'created_by', 'modified', 'modified_by'), + 'right' => array('published', 'ordering', 'access', 'version', 'hits', 'id') + ); + foreach ($loadDefaultFields as $d_alignment => $defaultFields) + { + foreach($defaultFields as $defaultField) + { + if (!isset($this->movedPublishingFields[$viewName_single][$defaultField])) { - $items[] = $defaultField; + if ($defaultField != 'access') + { + $items[$d_alignment][] = $defaultField; + } + elseif ($defaultField === 'access' && isset($this->accessBuilder[$viewName_single]) && ComponentbuilderHelper::checkString($this->accessBuilder[$viewName_single])) + { + $items[$d_alignment][] = $defaultField; + } } } } @@ -6423,10 +6454,32 @@ class Interpretation extends Fields $tabCodeNameLeft = 'publishing'; $tabCodeNameRight = 'metadata'; // the default publishing tiems - if (ComponentbuilderHelper::checkArray($items)) + if (ComponentbuilderHelper::checkArray($items['left']) || ComponentbuilderHelper::checkArray($items['right'])) { - // load all items - $items_one = "'". implode("',".PHP_EOL."\t'", $items)."'"; + $items_one = ''; + // load the items into one side + if (ComponentbuilderHelper::checkArray($items['left'])) + { + $items_one .= "'". implode("',".PHP_EOL."\t'", $items['left'])."'"; + } + if (ComponentbuilderHelper::checkArray($items['right'])) + { + // there is already fields just add these + if (strlen($items_one) > 3) + { + $items_one .= ",".PHP_EOL."\t'". implode("',".PHP_EOL."\t'", $items['right'])."'"; + } + // no fields has been added yet + else + { + $items_one .= "'". implode("',".PHP_EOL."\t'", $items['right'])."'"; + } + } + // only triger the info notice if there were custom fields targeted to the right alignment position. + if ($fieldsAddedRight) + { + $this->app->enqueueMessage(JText::sprintf('Your field/s added to the right alignment position in the %s (publishing) tab was added to the left. Since we have metadata fields on the right. Fields can only be loaded to the right of the publishing tab if there is no metadata fields.', $viewName_single), 'Notice'); + } // set the publishing layout $this->setLayout($viewName_single, $tabCodeNameLeft, $items_one, 'layoutpublished'); $items_one = true; @@ -6445,40 +6498,22 @@ class Interpretation extends Fields $tabCodeNameLeft = 'publishing'; $tabCodeNameRight = 'publlshing'; // the default publishing tiems - if (ComponentbuilderHelper::checkArray($items)) + if (ComponentbuilderHelper::checkArray($items['left']) || ComponentbuilderHelper::checkArray($items['right'])) { - - $items_one = array('created', 'created_by', 'modified', 'modified_by'); - $items_two = array('published', 'ordering', 'access', 'version', 'hits', 'id'); - // check all items - foreach ($items_one as $key_one => $item_one) - { - if (!in_array($item_one, $items)) - { - unset($items_one[$key_one]); - } - } - foreach ($items_two as $key_two => $item_two) - { - if (!in_array($item_two, $items)) - { - unset($items_two[$key_two]); - } - } - // load all items that remain - if (ComponentbuilderHelper::checkArray($items_one)) + // load left items that remain + if (ComponentbuilderHelper::checkArray($items['left'])) { // load all items - $items_one = "'". implode("',".PHP_EOL."\t'", $items_one)."'"; + $items_one = "'". implode("',".PHP_EOL."\t'", $items['left'])."'"; // set the publishing layout $this->setLayout($viewName_single, $tabCodeNameLeft, $items_one, 'layoutpublished'); $items_one = true; } - // load all items that remain - if (ComponentbuilderHelper::checkArray($items_two)) + // load right items that remain + if (ComponentbuilderHelper::checkArray($items['right'])) { // load all items - $items_two = "'". implode("',".PHP_EOL."\t'", $items_two)."'"; + $items_two = "'". implode("',".PHP_EOL."\t'", $items['right'])."'"; // set the publishing layout $this->setLayout($viewName_single, $tabCodeNameRight, $items_two, 'layoutpublished'); $items_two = true; diff --git a/admin/helpers/compiler/f_Infusion.php b/admin/helpers/compiler/f_Infusion.php index 4929fded8..c7f5330fa 100644 --- a/admin/helpers/compiler/f_Infusion.php +++ b/admin/helpers/compiler/f_Infusion.php @@ -36,6 +36,8 @@ class Infusion extends Interpretation public $importCustomScripts = array(); public $langFiles = array(); public $removeSiteFolder = false; + public $langNot = array(); + public $langSet = array(); /** * Constructor @@ -1199,18 +1201,28 @@ class Infusion extends Interpretation { foreach ($areas as $area => $languageStrings) { - // force load if debug lines are added - if (!$this->debugLinenr) + // only log messages for none en-GB translations + if ('en-GB' !== $tag) { - // check if we sould install this translation - $dif = bcdiv(count($languageStrings), $mainLangLoader[$area]); - $percentage = bcmul($dif, 100); - if ($percentage < $this->percentageLanguageAdd) + $langStringNr = count($languageStrings); + $langStringSum = bcmul($langStringNr, 100); + $percentage = bcdiv($langStringSum, $mainLangLoader[$area]); + $stringNAme = ($langStringNr == 1) ? '(string ' . $tag . ' translated)' : '(strings ' . $tag . ' translated)'; + // force load if debug lines are added + if (!$this->debugLinenr) { - // dont add - continue; + // check if we sould install this translation + if ($percentage < $this->percentageLanguageAdd) + { + // dont add + $this->langNot[$area . ' ' . $tag] = '' . $mainLangLoader[$area] . '(total en-GB strings) only ' . $langStringNr . '' . $stringNAme . ' = ' . $percentage; + continue; + } } + // show if it was added as well + $this->langSet[$area . ' ' . $tag] = '' . $mainLangLoader[$area] . '(total en-GB strings) and ' . $langStringNr . '' . $stringNAme . ' = ' . $percentage; } + // set naming convention $p = 'admin'; $t = ''; if (strpos($area, 'site') !== false) diff --git a/admin/helpers/componentbuilder.php b/admin/helpers/componentbuilder.php index 9105177cc..38d21ad47 100644 --- a/admin/helpers/componentbuilder.php +++ b/admin/helpers/componentbuilder.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage componentbuilder.php diff --git a/admin/helpers/componentbuilderemail.php b/admin/helpers/componentbuilderemail.php index 043a7b8d7..da3e22415 100644 --- a/admin/helpers/componentbuilderemail.php +++ b/admin/helpers/componentbuilderemail.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage componentbuilderemail.php diff --git a/admin/helpers/headercheck.php b/admin/helpers/headercheck.php index acbe44a9f..422d22a4e 100644 --- a/admin/helpers/headercheck.php +++ b/admin/helpers/headercheck.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage headercheck.php diff --git a/admin/helpers/html/batch_.php b/admin/helpers/html/batch_.php index 1bbf32b6f..09b09159f 100644 --- a/admin/helpers/html/batch_.php +++ b/admin/helpers/html/batch_.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage batch_.php diff --git a/admin/helpers/indenter.php b/admin/helpers/indenter.php index 8014f3565..2812a9195 100644 --- a/admin/helpers/indenter.php +++ b/admin/helpers/indenter.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage indenter.php diff --git a/admin/helpers/js.php b/admin/helpers/js.php index 7cbf229d9..820758f75 100644 --- a/admin/helpers/js.php +++ b/admin/helpers/js.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage js.php diff --git a/admin/helpers/minify.php b/admin/helpers/minify.php index 2e23e645b..735dfd8f5 100644 --- a/admin/helpers/minify.php +++ b/admin/helpers/minify.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage minify.php diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.ini b/admin/language/en-GB/en-GB.com_componentbuilder.ini index 504b6648a..e11dc88a2 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.ini @@ -183,8 +183,8 @@ COM_COMPONENTBUILDER_ADMIN_FIELDS_MODIFIED_DATE_DESC="The date this Admin Fields COM_COMPONENTBUILDER_ADMIN_FIELDS_MODIFIED_DATE_LABEL="Modified Date" COM_COMPONENTBUILDER_ADMIN_FIELDS_NEW="A New Admin Fields" COM_COMPONENTBUILDER_ADMIN_FIELDS_NONE="None" -COM_COMPONENTBUILDER_ADMIN_FIELDS_NOTE_ON_VIEWS_DESCRIPTION="id, asset_id, state, access, ordering, created_by, date_created, modified_by, date_modified, checked_out, checked_out_time, version, hits, metakey, metadesc, metadata (you don't need to add them again)" -COM_COMPONENTBUILDER_ADMIN_FIELDS_NOTE_ON_VIEWS_LABEL="The following fields are added by default to all views" +COM_COMPONENTBUILDER_ADMIN_FIELDS_NOTE_ON_VIEWS_DESCRIPTION="id, asset_id, state, access, ordering, created_by, date_created, modified_by, date_modified, checked_out, checked_out_time, version, hits, metakey, metadesc, metadata (you don't need to add them again)
For more help please watch this tutorial." +COM_COMPONENTBUILDER_ADMIN_FIELDS_NOTE_ON_VIEWS_LABEL="The following fields are added by default to all views." COM_COMPONENTBUILDER_ADMIN_FIELDS_ORDERING_LABEL="Ordering" COM_COMPONENTBUILDER_ADMIN_FIELDS_ORDER_EDIT_DESCRIPTION="Order in relation to tab & alignment of admin and site." COM_COMPONENTBUILDER_ADMIN_FIELDS_ORDER_EDIT_LABEL="Order in Edit" @@ -889,7 +889,1177 @@ COM_COMPONENTBUILDER_COMPILER_SUBMENU="Compiler Submenu" COM_COMPONENTBUILDER_COMPILER_SUBMENU_DESC="Allows the users in this group to update the submenu of the Compiler" COM_COMPONENTBUILDER_COMPILE_COMPONENT="Compile Component" COM_COMPONENTBUILDER_COMPONENTS="Components" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS="Components Admin Views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_ACCESS="Components Admin Views Access" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_ACCESS_DESC="Allows the users in this group to access access components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_OPTIONS="Batch process the selected Components Admin Views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_TIP="All changes will be applied to all selected Components Admin Views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_USE="Components Admin Views Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_CREATE="Components Admin Views Create" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_DELETE="Components Admin Views Delete" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_DELETE_DESC="Allows the users in this group to delete delete components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT="Components Admin Views Edit" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_BY="Components Admin Views Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_DATE="Components Admin Views Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_DESC="Allows the users in this group to edit the component admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_OWN="Components Admin Views Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components admin views created by them" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_STATE="Components Admin Views Edit State" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_VERSION="Components Admin Views Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_ARCHIVED="%s Components Admin Views archived." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_ARCHIVED_1="%s Component Admin Views archived." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_CHECKED_IN_0="No Component Admin Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_CHECKED_IN_1="%d Component Admin Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_CHECKED_IN_MORE="%d Components Admin Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_DELETED="%s Components Admin Views deleted." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_DELETED_1="%s Component Admin Views deleted." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_FEATURED="%s Components Admin Views featured." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_FEATURED_1="%s Component Admin Views featured." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_PUBLISHED="%s Components Admin Views published." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_PUBLISHED_1="%s Component Admin Views published." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_TRASHED="%s Components Admin Views trashed." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_TRASHED_1="%s Component Admin Views trashed." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_UNFEATURED="%s Components Admin Views unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_UNFEATURED_1="%s Component Admin Views unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_UNPUBLISHED="%s Components Admin Views unpublished." +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_N_ITEMS_UNPUBLISHED_1="%s Component Admin Views unpublished." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG="Components Config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_ACCESS="Components Config Access" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_ACCESS_DESC="Allows the users in this group to access access components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_OPTIONS="Batch process the selected Components Config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_TIP="All changes will be applied to all selected Components Config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_USE="Components Config Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_CREATE="Components Config Create" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_CREATE_DESC="Allows the users in this group to create create components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_DELETE="Components Config Delete" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_DELETE_DESC="Allows the users in this group to delete delete components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT="Components Config Edit" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_BY="Components Config Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_DATE="Components Config Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_DESC="Allows the users in this group to edit the component config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_OWN="Components Config Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_OWN_DESC="Allows the users in this group to edit edit own components config created by them" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_STATE="Components Config Edit State" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_STATE_DESC="Allows the users in this group to update the state of the component config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_VERSION="Components Config Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_ARCHIVED="%s Components Config archived." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_ARCHIVED_1="%s Component Config archived." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_CHECKED_IN_0="No Component Config successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_CHECKED_IN_1="%d Component Config successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_CHECKED_IN_MORE="%d Components Config successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_DELETED="%s Components Config deleted." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_DELETED_1="%s Component Config deleted." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_FEATURED="%s Components Config featured." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_FEATURED_1="%s Component Config featured." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_PUBLISHED="%s Components Config published." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_PUBLISHED_1="%s Component Config published." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_TRASHED="%s Components Config trashed." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_TRASHED_1="%s Component Config trashed." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_UNFEATURED="%s Components Config unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_UNFEATURED_1="%s Component Config unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_UNPUBLISHED="%s Components Config unpublished." +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_N_ITEMS_UNPUBLISHED_1="%s Component Config unpublished." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS="Components Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_ACCESS="Components Custom Admin Menus Access" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_ACCESS_DESC="Allows the users in this group to access access components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_OPTIONS="Batch process the selected Components Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_TIP="All changes will be applied to all selected Components Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_USE="Components Custom Admin Menus Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_CREATE="Components Custom Admin Menus Create" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_CREATE_DESC="Allows the users in this group to create create components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_DELETE="Components Custom Admin Menus Delete" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_DELETE_DESC="Allows the users in this group to delete delete components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT="Components Custom Admin Menus Edit" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_BY="Components Custom Admin Menus Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_DATE="Components Custom Admin Menus Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_DESC="Allows the users in this group to edit the component custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_OWN="Components Custom Admin Menus Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components custom admin menus created by them" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_STATE="Components Custom Admin Menus Edit State" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_VERSION="Components Custom Admin Menus Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_ARCHIVED="%s Components Custom Admin Menus archived." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_ARCHIVED_1="%s Component Custom Admin Menus archived." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_CHECKED_IN_0="No Component Custom Admin Menus successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_CHECKED_IN_1="%d Component Custom Admin Menus successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_CHECKED_IN_MORE="%d Components Custom Admin Menus successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_DELETED="%s Components Custom Admin Menus deleted." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_DELETED_1="%s Component Custom Admin Menus deleted." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_FEATURED="%s Components Custom Admin Menus featured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_FEATURED_1="%s Component Custom Admin Menus featured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_PUBLISHED="%s Components Custom Admin Menus published." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_PUBLISHED_1="%s Component Custom Admin Menus published." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_TRASHED="%s Components Custom Admin Menus trashed." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_TRASHED_1="%s Component Custom Admin Menus trashed." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_UNFEATURED="%s Components Custom Admin Menus unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_UNFEATURED_1="%s Component Custom Admin Menus unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_UNPUBLISHED="%s Components Custom Admin Menus unpublished." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_N_ITEMS_UNPUBLISHED_1="%s Component Custom Admin Menus unpublished." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS="Components Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_ACCESS="Components Custom Admin Views Access" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_ACCESS_DESC="Allows the users in this group to access access components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_OPTIONS="Batch process the selected Components Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_TIP="All changes will be applied to all selected Components Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_USE="Components Custom Admin Views Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_CREATE="Components Custom Admin Views Create" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_DELETE="Components Custom Admin Views Delete" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_DELETE_DESC="Allows the users in this group to delete delete components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT="Components Custom Admin Views Edit" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_BY="Components Custom Admin Views Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_DATE="Components Custom Admin Views Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_DESC="Allows the users in this group to edit the component custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_OWN="Components Custom Admin Views Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components custom admin views created by them" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_STATE="Components Custom Admin Views Edit State" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_VERSION="Components Custom Admin Views Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_ARCHIVED="%s Components Custom Admin Views archived." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_ARCHIVED_1="%s Component Custom Admin Views archived." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_CHECKED_IN_0="No Component Custom Admin Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_CHECKED_IN_1="%d Component Custom Admin Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_CHECKED_IN_MORE="%d Components Custom Admin Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_DELETED="%s Components Custom Admin Views deleted." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_DELETED_1="%s Component Custom Admin Views deleted." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_FEATURED="%s Components Custom Admin Views featured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_FEATURED_1="%s Component Custom Admin Views featured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_PUBLISHED="%s Components Custom Admin Views published." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_PUBLISHED_1="%s Component Custom Admin Views published." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_TRASHED="%s Components Custom Admin Views trashed." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_TRASHED_1="%s Component Custom Admin Views trashed." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_UNFEATURED="%s Components Custom Admin Views unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_UNFEATURED_1="%s Component Custom Admin Views unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_UNPUBLISHED="%s Components Custom Admin Views unpublished." +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_N_ITEMS_UNPUBLISHED_1="%s Component Custom Admin Views unpublished." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD="Components Dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_ACCESS="Components Dashboard Access" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_ACCESS_DESC="Allows the users in this group to access access components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_OPTIONS="Batch process the selected Components Dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_TIP="All changes will be applied to all selected Components Dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_USE="Components Dashboard Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_CREATE="Components Dashboard Create" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_CREATE_DESC="Allows the users in this group to create create components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_DELETE="Components Dashboard Delete" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_DELETE_DESC="Allows the users in this group to delete delete components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT="Components Dashboard Edit" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_BY="Components Dashboard Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_DATE="Components Dashboard Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_DESC="Allows the users in this group to edit the component dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_OWN="Components Dashboard Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_OWN_DESC="Allows the users in this group to edit edit own components dashboard created by them" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_STATE="Components Dashboard Edit State" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_STATE_DESC="Allows the users in this group to update the state of the component dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_VERSION="Components Dashboard Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_ARCHIVED="%s Components Dashboard archived." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_ARCHIVED_1="%s Component Dashboard archived." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_CHECKED_IN_0="No Component Dashboard successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_CHECKED_IN_1="%d Component Dashboard successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_CHECKED_IN_MORE="%d Components Dashboard successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_DELETED="%s Components Dashboard deleted." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_DELETED_1="%s Component Dashboard deleted." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_FEATURED="%s Components Dashboard featured." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_FEATURED_1="%s Component Dashboard featured." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_PUBLISHED="%s Components Dashboard published." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_PUBLISHED_1="%s Component Dashboard published." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_TRASHED="%s Components Dashboard trashed." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_TRASHED_1="%s Component Dashboard trashed." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_UNFEATURED="%s Components Dashboard unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_UNFEATURED_1="%s Component Dashboard unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_UNPUBLISHED="%s Components Dashboard unpublished." +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_N_ITEMS_UNPUBLISHED_1="%s Component Dashboard unpublished." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS="Components Files & Folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_ACCESS="Components Files Folders Access" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_ACCESS_DESC="Allows the users in this group to access access components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_OPTIONS="Batch process the selected Components Files & Folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_TIP="All changes will be applied to all selected Components Files & Folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_USE="Components Files Folders Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_CREATE="Components Files Folders Create" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_CREATE_DESC="Allows the users in this group to create create components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_DELETE="Components Files Folders Delete" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_DELETE_DESC="Allows the users in this group to delete delete components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT="Components Files Folders Edit" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_BY="Components Files Folders Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_DATE="Components Files Folders Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_DESC="Allows the users in this group to edit the component files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_OWN="Components Files Folders Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components files folders created by them" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE="Components Files Folders Edit State" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION="Components Files Folders Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_ARCHIVED="%s Components Files & Folders archived." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_ARCHIVED_1="%s Component Files & Folders archived." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_CHECKED_IN_0="No Component Files & Folders successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_CHECKED_IN_1="%d Component Files & Folders successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_CHECKED_IN_MORE="%d Components Files & Folders successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_DELETED="%s Components Files & Folders deleted." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_DELETED_1="%s Component Files & Folders deleted." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_FEATURED="%s Components Files & Folders featured." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_FEATURED_1="%s Component Files & Folders featured." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_PUBLISHED="%s Components Files & Folders published." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_PUBLISHED_1="%s Component Files & Folders published." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_TRASHED="%s Components Files & Folders trashed." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_TRASHED_1="%s Component Files & Folders trashed." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNFEATURED="%s Components Files & Folders unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNFEATURED_1="%s Component Files & Folders unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNPUBLISHED="%s Components Files & Folders unpublished." +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_N_ITEMS_UNPUBLISHED_1="%s Component Files & Folders unpublished." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS="Components mysql Tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS="Components Mysql Tweaks Access" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS_DESC="Allows the users in this group to access access components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_OPTIONS="Batch process the selected Components mysql Tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_TIP="All changes will be applied to all selected Components mysql Tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE="Components Mysql Tweaks Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_CREATE="Components Mysql Tweaks Create" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_CREATE_DESC="Allows the users in this group to create create components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_DELETE="Components Mysql Tweaks Delete" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_DELETE_DESC="Allows the users in this group to delete delete components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT="Components Mysql Tweaks Edit" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_BY="Components Mysql Tweaks Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_DATE="Components Mysql Tweaks Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_DESC="Allows the users in this group to edit the component mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_OWN="Components Mysql Tweaks Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components mysql tweaks created by them" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_STATE="Components Mysql Tweaks Edit State" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_VERSION="Components Mysql Tweaks Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_ARCHIVED="%s Components mysql Tweaks archived." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_ARCHIVED_1="%s Component mysql Tweaks archived." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_CHECKED_IN_0="No Component mysql Tweaks successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_CHECKED_IN_1="%d Component mysql Tweaks successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_CHECKED_IN_MORE="%d Components mysql Tweaks successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_DELETED="%s Components mysql Tweaks deleted." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_DELETED_1="%s Component mysql Tweaks deleted." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_FEATURED="%s Components mysql Tweaks featured." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_FEATURED_1="%s Component mysql Tweaks featured." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_PUBLISHED="%s Components mysql Tweaks published." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_PUBLISHED_1="%s Component mysql Tweaks published." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_TRASHED="%s Components mysql Tweaks trashed." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_TRASHED_1="%s Component mysql Tweaks trashed." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_UNFEATURED="%s Components mysql Tweaks unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_UNFEATURED_1="%s Component mysql Tweaks unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_UNPUBLISHED="%s Components mysql Tweaks unpublished." +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_N_ITEMS_UNPUBLISHED_1="%s Component mysql Tweaks unpublished." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS="Components Site Views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_ACCESS="Components Site Views Access" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_ACCESS_DESC="Allows the users in this group to access access components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_OPTIONS="Batch process the selected Components Site Views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_TIP="All changes will be applied to all selected Components Site Views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_USE="Components Site Views Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_CREATE="Components Site Views Create" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_CREATE_DESC="Allows the users in this group to create create components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_DELETE="Components Site Views Delete" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_DELETE_DESC="Allows the users in this group to delete delete components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT="Components Site Views Edit" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_BY="Components Site Views Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_DATE="Components Site Views Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_DESC="Allows the users in this group to edit the component site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_OWN="Components Site Views Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components site views created by them" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_STATE="Components Site Views Edit State" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_VERSION="Components Site Views Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_ARCHIVED="%s Components Site Views archived." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_ARCHIVED_1="%s Component Site Views archived." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_CHECKED_IN_0="No Component Site Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_CHECKED_IN_1="%d Component Site Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_CHECKED_IN_MORE="%d Components Site Views successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_DELETED="%s Components Site Views deleted." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_DELETED_1="%s Component Site Views deleted." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_FEATURED="%s Components Site Views featured." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_FEATURED_1="%s Component Site Views featured." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_PUBLISHED="%s Components Site Views published." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_PUBLISHED_1="%s Component Site Views published." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_TRASHED="%s Components Site Views trashed." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_TRASHED_1="%s Component Site Views trashed." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_UNFEATURED="%s Components Site Views unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_UNFEATURED_1="%s Component Site Views unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_UNPUBLISHED="%s Components Site Views unpublished." +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_N_ITEMS_UNPUBLISHED_1="%s Component Site Views unpublished." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES="Components Updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_ACCESS="Components Updates Access" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_ACCESS_DESC="Allows the users in this group to access access components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_OPTIONS="Batch process the selected Components Updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_TIP="All changes will be applied to all selected Components Updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_USE="Components Updates Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_CREATE="Components Updates Create" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_CREATE_DESC="Allows the users in this group to create create components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_DELETE="Components Updates Delete" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_DELETE_DESC="Allows the users in this group to delete delete components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT="Components Updates Edit" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_BY="Components Updates Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_DATE="Components Updates Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_DESC="Allows the users in this group to edit the component updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN="Components Updates Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN_DESC="Allows the users in this group to edit edit own components updates created by them" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE="Components Updates Edit State" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the component updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION="Components Updates Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_ARCHIVED="%s Components Updates archived." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_ARCHIVED_1="%s Component Updates archived." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_CHECKED_IN_0="No Component Updates successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_CHECKED_IN_1="%d Component Updates successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_CHECKED_IN_MORE="%d Components Updates successfully checked in." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_DELETED="%s Components Updates deleted." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_DELETED_1="%s Component Updates deleted." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_FEATURED="%s Components Updates featured." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_FEATURED_1="%s Component Updates featured." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_PUBLISHED="%s Components Updates published." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_PUBLISHED_1="%s Component Updates published." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_TRASHED="%s Components Updates trashed." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_TRASHED_1="%s Component Updates trashed." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_UNFEATURED="%s Components Updates unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_UNFEATURED_1="%s Component Updates unfeatured." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_UNPUBLISHED="%s Components Updates unpublished." +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_N_ITEMS_UNPUBLISHED_1="%s Component Updates unpublished." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS="Component Admin Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ACCESS_DESCRIPTION="Select if this view
should use access." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ACCESS_LABEL="Add Access" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS="Addadmin Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_DESCRIPTION="Setup the admin views for this component." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDADMIN_VIEWS_LABEL="Admin Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADDRESS="Address" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADMINVIEW="Adminview" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADMINVIEW_DESCRIPTION="Select an admin view" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ADMINVIEW_LABEL="View" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARCHIVE="Archive" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_DOWN="Arrow Down" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_DOWN_FOUR="Arrow Down 4" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_DOWN_THREE="Arrow Down 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_DOWN_TWO="Arrow Down 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_FIRST="Arrow First" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_LAST="Arrow Last" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_LEFT="Arrow Left" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_LEFT_FOUR="Arrow Left 4" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_LEFT_THREE="Arrow Left 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_LEFT_TWO="Arrow Left 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_RIGHT="Arrow Right" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_RIGHT_FOUR="Arrow Right 4" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_RIGHT_THREE="Arrow Right 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_RIGHT_TWO="Arrow Right 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_UP="Arrow Up" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_UP_FOUR="Arrow Up 4" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_UP_THREE="Arrow Up 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ARROW_UP_TWO="Arrow Up 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ATTACHMENT="Attachment" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BACKWARD_CIRCLE="Backward Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BAN_CIRCLE="Ban Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BARS="Bars" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BASKET="Basket" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BOOK="Book" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BOOKMARK="Bookmark" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BOOKMARK_TWO="Bookmark 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BOX_ADD="Box Add" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BOX_REMOVE="Box Remove" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BRIEFCASE="Briefcase" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BRUSH="Brush" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_BUBBLE_QUOTE="Bubble Quote" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CALENDAR="Calendar" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CALENDAR_THREE="Calendar 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CALENDAR_TWO="Calendar 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CAMERA="Camera" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CAMERA_TWO_VIDEO="Camera 2 / Video" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CANCEL_CIRCLE="Cancel Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CART="Cart" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHART="Chart" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKBOX="Checkbox" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKBOX_PARTIAL="Checkbox Partial" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKBOX_UNCHECKED="Checkbox Unchecked" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKIN_DESCRIPTION="Select if the items of this view should automatically be checked in." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKIN_LABEL="Auto Check-in" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKMARK_CIRCLE="Checkmark Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CHECKMARK_TWO="Checkmark 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CIRCLE="Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CLOCK="Clock" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_COG="Cog" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_COGS="Cogs" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_COMMENT="Comment" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_COMMENTS_TWO="Comments 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_COMPASS="Compass" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CONTRACT="Contract" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CONTRACT_TWO="Contract 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CREATED_BY_DESC="The user that created this Component Admin Views." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CREATED_DATE_DESC="The date this Component Admin Views was created." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CREDIT="Credit" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CREDIT_TWO="Credit 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_CUBE="Cube" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DASHBOARD="Dashboard" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DASHBOARD_ADD_DESCRIPTION="Select if the view should show on the dashboard." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DASHBOARD_ADD_LABEL="Dashboard (add record)" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DASHBOARD_LIST_DESCRIPTION="Select if the view should show on the dashboard." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DASHBOARD_LIST_LABEL="Dashboard (list of records)" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DATABASE="Database" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DELETE="Delete" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_DOWNLOAD="Download" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EDIT="Editing the Component Admin Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EDIT_CREATE_SITE_VIEW_DESCRIPTION="add site edit & create view for this admin view" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EDIT_CREATE_SITE_VIEW_LABEL="Edit/Create Site View" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ENTER="Enter" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ENVELOPE="Envelope" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ENVELOPE_OPENED="Envelope Opened" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EQUALIZER="Equalizer" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ERROR_UNIQUE_ALIAS="Another Component Admin Views has the same alias." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EXIT="Exit" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EXPAND="Expand" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EXPAND_TWO="Expand 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EXPIRED="Expired" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EYE_CLOSE="Eye Close" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EYE_OPEN="Eye Open" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FEATURED="Featured" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FEED="Feed" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILE="File" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILE_ADD="File Add" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILE_CHECK="File Check" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILE_MINUS="File Minus" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILE_REMOVE="File Remove" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILE_TWO="File 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FILTER="Filter" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FIRST="First" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FLAG="Flag" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FLAG_THREE="Flag 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FLASH="Flash" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_CLOSE="Folder Close" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_MINUS="Folder Minus" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_OPEN="Folder Open" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_PLUS="Folder Plus" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_PLUS_TWO="Folder Plus 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_REMOVE="Folder Remove" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FOLDER_THREE="Folder 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FORWARD_CIRCLE="Forward Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_FORWARD_TWO="Forward 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_GENERIC="Generic" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_GRID="Grid" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_GRID_TWO="Grid 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HEALTH="Health" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HEART="Heart" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HEART_TWO="Heart 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HISTORY_DESCRIPTION="Select if the items of this view should keep a history of item changes." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HISTORY_LABEL="Keep History" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HOME="Home" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_HOME_TWO="Home 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ICOMOON_DESCRIPTION="Joomla Standard Icomoon Fonts" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ICOMOON_LABEL="Icon" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_IMAGE="Image" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_IMAGES="Images" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_INFO="Info" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_INFO_CIRCLE="Info Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_JOOMLA="Joomla" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_KEY="Key" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LAMP="Lamp" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LAST="Last" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LINK="Link" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LIST="List" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LIST_TWO="List 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LOCATION="Location" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LOCK="Lock" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_LOOP="Loop" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MAINMENU_DESCRIPTION="Select if the view should show in the main menu." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MAINMENU_LABEL="Main Menu" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MENU="Menu" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MENU_THREE="Menu 3" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MENU_TWO="Menu 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_METADATA_DESCRIPTION="Select if this view should have metadata." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_METADATA_LABEL="Has Metadata" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MINUS="Minus" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MINUS_SIGN="Minus Sign" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MOBILE="Mobile" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MODIFIED_BY_DESC="The last user that modified this Component Admin Views." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MODIFIED_DATE_DESC="The date this Component Admin Views was modified." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MOVE="Move" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_MUSIC="Music" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEW="A New Component Admin Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEW_TAB="New Tab" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEW_TAB_TWO="New Tab 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEXT="Next" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NOTE_ON_ADMIN_VIEWS_DESCRIPTION="Do not add the same view twice it will not work. Please watch this tutorial for more help." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NOTE_ON_ADMIN_VIEWS_LABEL="Setting Admin Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NOTIFICATION="Notification" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NOTIFICATION_CIRCLE="Notification Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ORDER_DESCRIPTION="Overide the default order" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ORDER_LABEL="Order" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PALETTE="Palette" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PARAGRAPH_CENTER="Paragraph Center" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PARAGRAPH_JUSTIFY="Paragraph Justify" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PARAGRAPH_LEFT="Paragraph Left" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PARAGRAPH_RIGHT="Paragraph Right" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PAUSE="Pause" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PAUSE_CIRCLE="Pause Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PENCIL="Pencil" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PENCIL_TWO="Pencil 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PHONE="Phone" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PHONE_TWO="Phone 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PIE="Pie" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PIN="Pin" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PLAY="Play" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PLAY_CIRCLE="Play Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PLUS="Plus" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PLUS_CIRCLE="Plus Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PORT_DESCRIPTION="add import/export option to this admin view." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PORT_LABEL="Export/Import Data" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_POWER_CORD="Power Cord" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PREVIOUS="Previous" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PRINT="Print" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PUBLISH="Publish" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PURGE="Purge" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_PUZZLE="Puzzle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_QUESTION="Question" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_QUESTION_TWO="Question 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_QUOTES_LEFT="Quotes Left" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_QUOTES_RIGHT="Quotes Right" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_RADIO_UNCHECKED="Radio Unchecked" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_REPLY="Reply" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SAVE_COPY="Save Copy" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SAVE_NEW="Save New" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Admin Views to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SCISSORS="Scissors" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SCREEN="Screen" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SCREWDRIVER="Screwdriver" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SEARCH="Search" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SHARE="Share" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SHARE_ALT="Share Alt" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SHIELD="Shield" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SHUFFLE="Shuffle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SIGNUP="Signup" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SMILEY="Smiley" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SMILEY_NEUTRAL="Smiley Neutral" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SMILEY_NEUTRAL_TWO="Smiley Neutral 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SMILEY_SAD="Smiley Sad" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SMILEY_SAD_TWO="Smiley Sad 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SMILEY_TWO="Smiley 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SQUARE="Square" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_STACK="Stack" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_STAR_TWO="Star 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_STOP="Stop" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_STOP_CIRCLE="Stop Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SUBMENU_DESCRIPTION="Select if the view should show in the submenu." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SUBMENU_LABEL="Submenu" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SUPPORT="Support" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_SWITCH="Switch" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TABLET="Tablet" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TAG="Tag" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TAGS="Tags" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TAGS_TWO="Tags 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TAG_TWO="Tag 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_THUMBS_DOWN="Thumbs Down" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_THUMBS_UP="Thumbs Up" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TREE="Tree" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_TREE_TWO="Tree 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNARCHIVE="Unarchive" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNBLOCK="Unblock" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNDO="Undo" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNDO_TWO="Undo 2" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNFEATURED="Unfeatured" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNLOCK="Unlock" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UNPUBLISH="Unpublish" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_UPLOAD="Upload" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_USER="User" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_USERS="Users" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_VCARD="Vcard" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_VERSION_DESC="A count of the number of times this Component Admin Views has been revised." +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_VIEWS="Views" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_WAND="Wand" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_WARNING="Warning" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_WARNING_CIRCLE="Warning Circle" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_WIFI="Wifi" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_WRENCH="Wrench" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_YOUTUBE="Youtube" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ZOOM_IN="Zoom In" +COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_ZOOM_OUT="Zoom Out" +COM_COMPONENTBUILDER_COMPONENT_CONFIG="Component Config" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_ADDCONFIG="Addconfig" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_ADDCONFIG_DESCRIPTION="Setup config fields." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_ADDCONFIG_LABEL="Config" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CREATED_BY_DESC="The user that created this Component Config." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CREATED_DATE_DESC="The date this Component Config was created." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CUSTOM_VALUE_DESCRIPTION="Enter custom value in needed" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CUSTOM_VALUE_HINT="Custom Value Here" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_CUSTOM_VALUE_LABEL="Custom Value" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_EDIT="Editing the Component Config" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_ERROR_UNIQUE_ALIAS="Another Component Config has the same alias." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_FIELD="Field" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_FIELD_DESCRIPTION="Select a field" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_FIELD_LABEL="Field" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_MODIFIED_BY_DESC="The last user that modified this Component Config." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_MODIFIED_DATE_DESC="The date this Component Config was modified." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_NEW="A New Component Config" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Config to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_TABNAME_DESCRIPTION="The name of the tab this field belongs to." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_TABNAME_HINT="Global" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_TABNAME_LABEL="Tab Name" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_TWEAKS="Tweaks" +COM_COMPONENTBUILDER_COMPONENT_CONFIG_VERSION_DESC="A count of the number of times this Component Config has been revised." +COM_COMPONENTBUILDER_COMPONENT_CONFIG_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS="Component Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ADDCUSTOMMENUS="Addcustommenus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ADDCUSTOMMENUS_LABEL="Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_BEFORE="Before" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_BEFORE_DESCRIPTION="Select before what admin view this one should be placed" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_BEFORE_LABEL="Order Before" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_CREATED_BY_DESC="The user that created this Component Custom Admin Menus." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_CREATED_DATE_DESC="The date this Component Custom Admin Menus was created." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_DASHBOARD_LIST_DESCRIPTION="Select if the view should show on the dashboard." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_DASHBOARD_LIST_LABEL="Dashboard (list of records)" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_EDIT="Editing the Component Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ERROR_UNIQUE_ALIAS="Another Component Custom Admin Menus has the same alias." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ICON_DESCRIPTION="Add the icon to the image folder and select it here (128 x 128px)" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ICON_LABEL="Icon" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_LINK_DESCRIPTION="Enter menu link" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_LINK_HINT="Menu Link Here" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_LINK_LABEL="Link" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_MAINMENU_DESCRIPTION="Select if the view should show in the main menu." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_MAINMENU_LABEL="Main Menu" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_MODIFIED_BY_DESC="The last user that modified this Component Custom Admin Menus." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_MODIFIED_DATE_DESC="The date this Component Custom Admin Menus was modified." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NAME_CODE_DESCRIPTION="Add Name in Code Here" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NAME_CODE_HINT="codename" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NAME_CODE_LABEL="Name in Code" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NAME_DESCRIPTION="Enter Name Here" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NAME_HINT="Name Here" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NAME_LABEL="Name" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NEW="A New Component Custom Admin Menus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Custom Admin Menus to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_SUBMENU_DESCRIPTION="Select if the view should show in the submenu." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_SUBMENU_LABEL="Submenu" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_TWEAKS="Tweaks" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_VERSION_DESC="A count of the number of times this Component Custom Admin Menus has been revised." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS="Component Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ACCESS_DESCRIPTION="Select if this view
should use access." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ACCESS_LABEL="Add Access" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS="Addcustom Admin Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDCUSTOM_ADMIN_VIEWS_LABEL="Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADDRESS="Address" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADMINVIEWS="Adminviews" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADMINVIEWS_DESCRIPTION="Add a link to any list admin view" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ADMINVIEWS_LABEL="Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARCHIVE="Archive" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_DOWN="Arrow Down" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_DOWN_FOUR="Arrow Down 4" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_DOWN_THREE="Arrow Down 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_DOWN_TWO="Arrow Down 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_FIRST="Arrow First" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_LAST="Arrow Last" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_LEFT="Arrow Left" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_LEFT_FOUR="Arrow Left 4" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_LEFT_THREE="Arrow Left 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_LEFT_TWO="Arrow Left 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_RIGHT="Arrow Right" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_RIGHT_FOUR="Arrow Right 4" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_RIGHT_THREE="Arrow Right 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_RIGHT_TWO="Arrow Right 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_UP="Arrow Up" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_UP_FOUR="Arrow Up 4" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_UP_THREE="Arrow Up 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ARROW_UP_TWO="Arrow Up 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ATTACHMENT="Attachment" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BACKWARD_CIRCLE="Backward Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BAN_CIRCLE="Ban Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BARS="Bars" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BASKET="Basket" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BEFORE="Before" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BEFORE_DESCRIPTION="Select before what admin view this one should be placed" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BEFORE_LABEL="Order Before" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BOOK="Book" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BOOKMARK="Bookmark" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BOOKMARK_TWO="Bookmark 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BOX_ADD="Box Add" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BOX_REMOVE="Box Remove" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BRIEFCASE="Briefcase" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BRUSH="Brush" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_BUBBLE_QUOTE="Bubble Quote" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CALENDAR="Calendar" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CALENDAR_THREE="Calendar 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CALENDAR_TWO="Calendar 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CAMERA="Camera" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CAMERA_TWO_VIDEO="Camera 2 / Video" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CANCEL_CIRCLE="Cancel Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CART="Cart" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CHART="Chart" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CHECKBOX="Checkbox" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CHECKBOX_PARTIAL="Checkbox Partial" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CHECKBOX_UNCHECKED="Checkbox Unchecked" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CHECKMARK_CIRCLE="Checkmark Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CHECKMARK_TWO="Checkmark 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CIRCLE="Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CLOCK="Clock" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_COG="Cog" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_COGS="Cogs" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_COMMENT="Comment" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_COMMENTS_TWO="Comments 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_COMPASS="Compass" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CONTRACT="Contract" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CONTRACT_TWO="Contract 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CREATED_BY_DESC="The user that created this Component Custom Admin Views." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CREATED_DATE_DESC="The date this Component Custom Admin Views was created." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CREDIT="Credit" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CREDIT_TWO="Credit 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CUBE="Cube" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CUSTOMADMINVIEW="Customadminview" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CUSTOMADMINVIEW_DESCRIPTION="Select a custom admin view" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_CUSTOMADMINVIEW_LABEL="View" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_DASHBOARD="Dashboard" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_DESCRIPTION="Select if the view should show on the dashboard." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_DASHBOARD_LIST_LABEL="Dashboard (list of records)" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_DATABASE="Database" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_DELETE="Delete" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_DOWNLOAD="Download" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EDIT="Editing the Component Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ENTER="Enter" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ENVELOPE="Envelope" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ENVELOPE_OPENED="Envelope Opened" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EQUALIZER="Equalizer" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ERROR_UNIQUE_ALIAS="Another Component Custom Admin Views has the same alias." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EXIT="Exit" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EXPAND="Expand" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EXPAND_TWO="Expand 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EXPIRED="Expired" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EYE_CLOSE="Eye Close" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EYE_OPEN="Eye Open" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FEATURED="Featured" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FEED="Feed" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILE="File" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILE_ADD="File Add" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILE_CHECK="File Check" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILE_MINUS="File Minus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILE_REMOVE="File Remove" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILE_TWO="File 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FILTER="Filter" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FIRST="First" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FLAG="Flag" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FLAG_THREE="Flag 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FLASH="Flash" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_CLOSE="Folder Close" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_MINUS="Folder Minus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_OPEN="Folder Open" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_PLUS="Folder Plus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_PLUS_TWO="Folder Plus 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_REMOVE="Folder Remove" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FOLDER_THREE="Folder 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FORWARD_CIRCLE="Forward Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_FORWARD_TWO="Forward 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_GENERIC="Generic" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_GRID="Grid" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_GRID_TWO="Grid 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_HEALTH="Health" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_HEART="Heart" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_HEART_TWO="Heart 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_HOME="Home" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_HOME_TWO="Home 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ICOMOON_DESCRIPTION="Joomla Standard Icomoon Fonts" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ICOMOON_LABEL="Icon" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_IMAGE="Image" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_IMAGES="Images" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_INFO="Info" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_INFO_CIRCLE="Info Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_JOOMLA="Joomla" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_KEY="Key" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LAMP="Lamp" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LAST="Last" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LINK="Link" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LIST="List" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LIST_TWO="List 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LOCATION="Location" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LOCK="Lock" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_LOOP="Loop" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MAINMENU_DESCRIPTION="Select if the view should show in the main menu." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MAINMENU_LABEL="Main Menu" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MENU="Menu" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MENU_THREE="Menu 3" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MENU_TWO="Menu 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_METADATA_DESCRIPTION="Select if this view should have metadata." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_METADATA_LABEL="Has Metadata" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MINUS="Minus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MINUS_SIGN="Minus Sign" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MOBILE="Mobile" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MODIFIED_BY_DESC="The last user that modified this Component Custom Admin Views." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MODIFIED_DATE_DESC="The date this Component Custom Admin Views was modified." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MOVE="Move" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_MUSIC="Music" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEW="A New Component Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEW_TAB="New Tab" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEW_TAB_TWO="New Tab 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEXT="Next" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NOTE_ON_CUSTOM_ADMIN_VIEWS_DESCRIPTION="Do not add the same view twice it will not work. Please watch this tutorial for more help." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NOTE_ON_CUSTOM_ADMIN_VIEWS_LABEL="Setting Custom Admin Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NOTIFICATION="Notification" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NOTIFICATION_CIRCLE="Notification Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PALETTE="Palette" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PARAGRAPH_CENTER="Paragraph Center" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PARAGRAPH_JUSTIFY="Paragraph Justify" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PARAGRAPH_LEFT="Paragraph Left" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PARAGRAPH_RIGHT="Paragraph Right" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PAUSE="Pause" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PAUSE_CIRCLE="Pause Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PENCIL="Pencil" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PENCIL_TWO="Pencil 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PHONE="Phone" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PHONE_TWO="Phone 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PIE="Pie" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PIN="Pin" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PLAY="Play" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PLAY_CIRCLE="Play Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PLUS="Plus" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PLUS_CIRCLE="Plus Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_POWER_CORD="Power Cord" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PREVIOUS="Previous" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PRINT="Print" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PUBLISH="Publish" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PURGE="Purge" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_PUZZLE="Puzzle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_QUESTION="Question" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_QUESTION_TWO="Question 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_QUOTES_LEFT="Quotes Left" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_QUOTES_RIGHT="Quotes Right" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_RADIO_UNCHECKED="Radio Unchecked" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_REPLY="Reply" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SAVE_COPY="Save Copy" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SAVE_NEW="Save New" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Custom Admin Views to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SCISSORS="Scissors" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SCREEN="Screen" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SCREWDRIVER="Screwdriver" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SEARCH="Search" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SHARE="Share" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SHARE_ALT="Share Alt" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SHIELD="Shield" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SHUFFLE="Shuffle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SIGNUP="Signup" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SMILEY="Smiley" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SMILEY_NEUTRAL="Smiley Neutral" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SMILEY_NEUTRAL_TWO="Smiley Neutral 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SMILEY_SAD="Smiley Sad" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SMILEY_SAD_TWO="Smiley Sad 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SMILEY_TWO="Smiley 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SQUARE="Square" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_STACK="Stack" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_STAR_TWO="Star 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_STOP="Stop" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_STOP_CIRCLE="Stop Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SUBMENU_DESCRIPTION="Select if the view should show in the submenu." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SUBMENU_LABEL="Submenu" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SUPPORT="Support" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_SWITCH="Switch" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TABLET="Tablet" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TAG="Tag" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TAGS="Tags" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TAGS_TWO="Tags 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TAG_TWO="Tag 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_THUMBS_DOWN="Thumbs Down" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_THUMBS_UP="Thumbs Up" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TREE="Tree" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_TREE_TWO="Tree 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNARCHIVE="Unarchive" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNBLOCK="Unblock" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNDO="Undo" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNDO_TWO="Undo 2" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNFEATURED="Unfeatured" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNLOCK="Unlock" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UNPUBLISH="Unpublish" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_UPLOAD="Upload" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_USER="User" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_USERS="Users" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_VCARD="Vcard" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_VERSION_DESC="A count of the number of times this Component Custom Admin Views has been revised." +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_VIEWS="Views" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_WAND="Wand" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_WARNING="Warning" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_WARNING_CIRCLE="Warning Circle" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_WIFI="Wifi" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_WRENCH="Wrench" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_YOUTUBE="Youtube" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ZOOM_IN="Zoom In" +COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_ZOOM_OUT="Zoom Out" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD="Component Dashboard" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_CREATED_BY_DESC="The user that created this Component Dashboard." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_CREATED_DATE_DESC="The date this Component Dashboard was created." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_DASHBOARD="Dashboard" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_DASHBOARD_TAB="Dashboard Tab" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_DASHBOARD_TAB_LABEL="Dashboard Tabs" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_EDIT="Editing the Component Dashboard" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_ERROR_UNIQUE_ALIAS="Another Component Dashboard has the same alias." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_HEADER_DESCRIPTION="Enter Header Here" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_HEADER_HINT="Header Here" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_HEADER_LABEL="Header" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_HTML_HINT="// Add the tab HTML here. To access php values methodname->value; ?>" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_HTML_LABEL="HTML" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_MODIFIED_BY_DESC="The last user that modified this Component Dashboard." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_MODIFIED_DATE_DESC="The date this Component Dashboard was modified." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_NAME_DESCRIPTION="Enter Name Here" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_NAME_HINT="Name Here" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_NAME_LABEL="Name" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_NEW="A New Component Dashboard" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_PHP_DASHBOARD_METHODS="Php Dashboard Methods" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_PHP_DASHBOARD_METHODS_DESCRIPTION="PHP methods to place in the dashboard model." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_PHP_DASHBOARD_METHODS_HINT="// add custom PHP methods to dashboard model. Use the [public function getMethodname()] to insure the data is set to the view, note the convention [public function get...()] replace the .... with the unique method name." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_PHP_DASHBOARD_METHODS_LABEL="PHP Dashboard Methods" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Dashboard to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_VERSION_DESC="A count of the number of times this Component Dashboard has been revised." +COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS="Component Files & Folders" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ADDFILES="Addfiles" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ADDFILES_DESCRIPTION="Add custom files to this component." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ADDFILES_LABEL="Files" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ADDFOLDERS="Addfolders" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ADDFOLDERS_DESCRIPTION="Add custom folder to this component." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ADDFOLDERS_LABEL="Folder" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_CREATED_BY_DESC="The user that created this Component Files & Folders." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_CREATED_DATE_DESC="The date this Component Files & Folders was created." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_EDIT="Editing the Component Files & Folders" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ERROR_UNIQUE_ALIAS="Another Component Files & Folders has the same alias." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_FILE="File" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_FILE_DESCRIPTION="Add the files to custom folder" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_FILE_LABEL="File" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_FOLDER="Folder" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_FOLDER_DESCRIPTION="Add the folder to custom folder" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_FOLDER_LABEL="Folder" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_MODIFIED_BY_DESC="The last user that modified this Component Files & Folders." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_MODIFIED_DATE_DESC="The date this Component Files & Folders was modified." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NEW="A New Component Files & Folders" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NOTE_ADD_FILES_DESCRIPTION="You can add custom files to the component, simply add the files to the administrator/components/com_componentbuilder/custom folder and then select them here." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NOTE_ADD_FILES_LABEL="Adding Custom Files" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NOTE_ADD_FOLDERS_DESCRIPTION="You can add custom folders to the component, simply add the folders to the administrator/components/com_componentbuilder/custom folder and then select them here." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NOTE_ADD_FOLDERS_LABEL="Adding Custom Folders" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NOTNEW_DESCRIPTION="Should file be updated." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NOTNEW_LABEL="Update" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_PATH_DESCRIPTION="Path in relation to the folder structure in the install package, unzip the compiled file to see the structure. " +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_PATH_HINT="Target Path Here" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_PATH_LABEL="Target Path" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_RENAME_LABEL="Rename" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Files & Folders to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_SETTINGS="Settings" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_VERSION_DESC="A count of the number of times this Component Files & Folders has been revised." +COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_VERSION_LABEL="Revision" COM_COMPONENTBUILDER_COMPONENT_GLOBAL_SETTINGS="Component Global Settings" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS="Component mysql Tweaks" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADD_SQL_DESCRIPTION="if set in view" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADD_SQL_LABEL="Add MySQL" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADD_SQL_OPTIONS_DESCRIPTION="if being added" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADD_SQL_OPTIONS_LABEL="Options" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADMINVIEW="Adminview" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADMINVIEW_DESCRIPTION="Select an admin view" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ADMINVIEW_LABEL="View" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ALL="All" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_CREATED_BY_DESC="The user that created this Component mysql Tweaks." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_CREATED_DATE_DESC="The date this Component mysql Tweaks was created." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_EDIT="Editing the Component mysql Tweaks" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ERROR_UNIQUE_ALIAS="Another Component mysql Tweaks has the same alias." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_IDS_DESCRIPTION="if id option selected" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_IDS_HINT="// 1 => 500 or 1,2,3,4 or 1 => 4,20,40 => 90" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_IDS_LABEL="ID's" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ID_BASED="ID Based" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_MODIFIED_BY_DESC="The last user that modified this Component mysql Tweaks." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_MODIFIED_DATE_DESC="The date this Component mysql Tweaks was modified." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_NEW="A New Component mysql Tweaks" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_NO_DONT_ADD_ANY="No don't add any" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component mysql Tweaks to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_SELECT_AN_OPTION="Select an option" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_SQL_TWEAK="Sql Tweak" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_SQL_TWEAK_DESCRIPTION="Tweak the view MySql dump settings." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_SQL_TWEAK_LABEL="MySql (tweak)" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_TWEAKS="Tweaks" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_VERSION_DESC="A count of the number of times this Component mysql Tweaks has been revised." +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_YES_INCLUDE_BASED_ON_OPTIONS="Yes include based on options" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS="Component Site Views" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ACCESS_DESCRIPTION="Select if this view
should use access." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ACCESS_LABEL="Add Access" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS="Addsite Views" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_DESCRIPTION="Setup the site views for this component." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ADDSITE_VIEWS_LABEL="Site Views" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_CREATED_BY_DESC="The user that created this Component Site Views." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_CREATED_DATE_DESC="The date this Component Site Views was created." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_DEFAULT_VIEW_DESCRIPTION="Select only one." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_DEFAULT_VIEW_LABEL="Default View" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_EDIT="Editing the Component Site Views" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ERROR_UNIQUE_ALIAS="Another Component Site Views has the same alias." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_MENU_DESCRIPTION="Select if the view should show have a menu link." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_MENU_LABEL="Add Menu" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_METADATA_DESCRIPTION="Select if this view should have metadata." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_METADATA_LABEL="Has Metadata" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_MODIFIED_BY_DESC="The last user that modified this Component Site Views." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_MODIFIED_DATE_DESC="The date this Component Site Views was modified." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_NEW="A New Component Site Views" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_NOTE_ON_SITE_VIEWS_DESCRIPTION="Do not add the same view twice it will not work. Please watch this tutorial for more help." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_NOTE_ON_SITE_VIEWS_LABEL="Setting Site Views" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_PUBLIC_ACCESS_DESCRIPTION="if view uses Access,
should default be public." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_PUBLIC_ACCESS_LABEL="Public Access" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Site Views to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_SITEVIEW="Siteview" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_SITEVIEW_DESCRIPTION="Select a site view" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_SITEVIEW_LABEL="View" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_VERSION_DESC="A count of the number of times this Component Site Views has been revised." +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_VERSION_LABEL="Revision" +COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_VIEWS="Views" +COM_COMPONENTBUILDER_COMPONENT_UPDATES="Component Updates" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_CREATED_BY_DESC="The user that created this Component Updates." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_CREATED_BY_LABEL="Created By" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_CREATED_DATE_DESC="The date this Component Updates was created." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_CREATED_DATE_LABEL="Created Date" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_EDIT="Editing the Component Updates" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_ERROR_UNIQUE_ALIAS="Another Component Updates has the same alias." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_ID="Id" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_JOOMLA_COMPONENT="Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_JOOMLA_COMPONENT_DESCRIPTION="Select a Joomla Component" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_JOOMLA_COMPONENT_LABEL="Component" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MODIFIED_BY_DESC="The last user that modified this Component Updates." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MODIFIED_BY_LABEL="Modified By" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MODIFIED_DATE_DESC="The date this Component Updates was modified." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MODIFIED_DATE_LABEL="Modified Date" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MYSQL_DESCRIPTION="Update Dump" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MYSQL_HINT="// MySQL for update or blank for none" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_MYSQL_LABEL="MySQL" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_NEW="A New Component Updates" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_ORDERING_LABEL="Ordering" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_PERMISSION="Permissions" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_PUBLISHING="Publishing" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Component Updates to customise the alias." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_STATUS="Status" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_UPDATES="Updates" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_URL_DESCRIPTION="Enter Download Link" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_URL_HINT="http://www.example.com/file.zip" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_URL_LABEL="Version URL" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_DESC="A count of the number of times this Component Updates has been revised." +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_DESCRIPTION="1.0.0" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_HINT="1.0.0" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_LABEL="SQL Update Version" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_UPDATE="Version Update" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_UPDATE_DESCRIPTION="Add Version Updates Here!" +COM_COMPONENTBUILDER_COMPONENT_UPDATES_VERSION_UPDATE_LABEL="Version Updates" COM_COMPONENTBUILDER_CONFIG_ALMOST_FLAT_LOAD="Almost Flat" COM_COMPONENTBUILDER_CONFIG_API_DESCRIPTION="This User will be used to log the API call." COM_COMPONENTBUILDER_CONFIG_API_LABEL="API User" @@ -2072,6 +3242,7 @@ COM_COMPONENTBUILDER_DYNAMIC_GET_TABLE_KEY_LABEL="Table Key" COM_COMPONENTBUILDER_DYNAMIC_GET_TAGS="Tags" COM_COMPONENTBUILDER_DYNAMIC_GET_THIS="This" COM_COMPONENTBUILDER_DYNAMIC_GET_TT="tt" +COM_COMPONENTBUILDER_DYNAMIC_GET_TWEAK="Tweak" COM_COMPONENTBUILDER_DYNAMIC_GET_TYPE_LABEL="Type" COM_COMPONENTBUILDER_DYNAMIC_GET_U="u" COM_COMPONENTBUILDER_DYNAMIC_GET_USER="User" @@ -2741,43 +3912,13 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_N_ITEMS_UNPUBLISHED="%s Joomla Components COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_N_ITEMS_UNPUBLISHED_1="%s Joomla Component unpublished." COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU="Joomla Components Submenu" COM_COMPONENTBUILDER_JOOMLA_COMPONENTS_SUBMENU_DESC="Allows the users in this group to update the submenu of the joomla component" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ACCESS_DESCRIPTION="Select if this view
should use access." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ACCESS_LABEL="Add Access" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDADMIN_VIEWS="Addadmin Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDADMIN_VIEWS_DESCRIPTION="Setup the admin views for this component." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDADMIN_VIEWS_LABEL="Admin Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDADMIN_VIEWS_SELECT="Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONFIG="Addconfig" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONFIG_DESCRIPTION="Setup config fields." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONFIG_LABEL="Config" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONFIG_SELECT="Add" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONTRIBUTORS="Addcontributors" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONTRIBUTORS_DESCRIPTION="Setup contributors for the component." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONTRIBUTORS_LABEL="Contributors" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCONTRIBUTORS_SELECT="Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCUSTOMMENUS="Addcustommenus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCUSTOMMENUS_LABEL="Custom Admin Menus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCUSTOMMENUS_SELECT="Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCUSTOM_ADMIN_VIEWS="Addcustom Admin Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCUSTOM_ADMIN_VIEWS_LABEL="Custom Admin Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDCUSTOM_ADMIN_VIEWS_SELECT="Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFILES="Addfiles" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFILES_DESCRIPTION="Add custom files to this component." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFILES_LABEL="Files" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFILES_SELECT="Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOLDERS="Addfolders" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOLDERS_DESCRIPTION="Add custom folder to this component." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOLDERS_LABEL="Folder" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOLDERS_SELECT="Add" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOOTABLE="Addfootable" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDFOOTABLE_LABEL="Add FooTable" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDREADME="Addreadme" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDREADME_LABEL="Add README" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDRESS="Address" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDSITE_VIEWS="Addsite Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDSITE_VIEWS_DESCRIPTION="Setup the site views for this component." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDSITE_VIEWS_LABEL="Site Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDSITE_VIEWS_SELECT="Add" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDUIKIT="Adduikit" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADDUIKIT_LABEL="Add Uikit" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_ADMIN_EVENT="Add Admin Event" @@ -2792,8 +3933,6 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_JAVASCRIPT_LABEL="Add Javascript" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_LICENSE="Add License" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_LICENSE_DESCRIPTION="Add the option to use a license in the component." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_LICENSE_LABEL="Add License (whmcs)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_DASHBOARD_METHODS="Add Php Dashboard Methods" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_DASHBOARD_METHODS_LABEL="Add PHP (dashboard Methods)" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_HELPER_ADMIN="Add Php Helper Admin" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_HELPER_ADMIN_LABEL="Add PHP (helper_admin Class)" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_PHP_HELPER_BOTH="Add Php Helper Both" @@ -2818,41 +3957,11 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SALES_SERVER_LABEL="Add Sales Server" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SITE_EVENT="Add Site Event" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SITE_EVENT_LABEL="Add Global Site Event" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL="Add Sql" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_DESCRIPTION="if set in view" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_LABEL="Add MySQL (to view table)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_OPTIONS_DESCRIPTION="if being added" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_SQL_OPTIONS_LABEL="Options" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_UPDATE_SERVER="Add Update Server" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADD_UPDATE_SERVER_LABEL="Add Update Server" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMINVIEW="Adminview" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMINVIEWS="Adminviews" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMINVIEWS_DESCRIPTION="Add a link to any list admin view" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMINVIEWS_LABEL="Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMINVIEW_DESCRIPTION="Select an admin view" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMINVIEW_LABEL="View" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADMIN_VIEWS="Admin Views" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ADVANCED_ENCRYPTION_ONLY_TO_LOCK_DATA="Advanced encryption (only to lock data)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ALL="All" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARCHIVE="Archive" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_DOWN="Arrow Down" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_DOWN_FOUR="Arrow Down 4" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_DOWN_THREE="Arrow Down 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_DOWN_TWO="Arrow Down 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_FIRST="Arrow First" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_LAST="Arrow Last" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_LEFT="Arrow Left" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_LEFT_FOUR="Arrow Left 4" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_LEFT_THREE="Arrow Left 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_LEFT_TWO="Arrow Left 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_RIGHT="Arrow Right" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_RIGHT_FOUR="Arrow Right 4" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_RIGHT_THREE="Arrow Right 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_RIGHT_TWO="Arrow Right 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_UP="Arrow Up" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_UP_FOUR="Arrow Up 4" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_UP_THREE="Arrow Up 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ARROW_UP_TWO="Arrow Up 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ATTACHMENT="Attachment" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR="Author" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_DESCRIPTION="The Author's Name & Surname." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_HINT="Author Name & Surname Here" @@ -2860,25 +3969,10 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_AUTHOR_LABEL="Author" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BACK="Back" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BACKUP_BUTTON_ACCESS="Joomla Component Backup Button Access" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BACKUP_BUTTON_ACCESS_DESC=" Allows the users in this group to access the backup button." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BACKWARD_CIRCLE="Backward Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BAN_CIRCLE="Ban Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BARS="Bars" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BASKET="Basket" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BEFORE="Before" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BEFORE_DESCRIPTION="Select before what admin view this one should be placed" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BEFORE_LABEL="Order Before" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM="Bom" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_DESCRIPTION="Select the file that should be used for licensing all files (files found in: administrator/components/com_componentbuilder/compiler)" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOM_LABEL="Licensing Template" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOOK="Book" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOOKMARK="Bookmark" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOOKMARK_TWO="Bookmark 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOTH="Both" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOX_ADD="Box Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BOX_REMOVE="Box Remove" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BRIEFCASE="Briefcase" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BRUSH="Brush" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUBBLE_QUOTE="Bubble Quote" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP="Buildcomp" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL="Buildcompsql" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_DESCRIPTION="Add your MySQL here!" @@ -2887,38 +3981,14 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMPSQL_LABEL="MySQL" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP_DESCRIPTION="To build the component fields and back-end views dynamically using a mySQL table file." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDCOMP_LABEL="Build Backend-views Dynamically" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_BUILDER_BACKUP_KEY="Joomla Component Builder - Backup Key" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CALENDAR="Calendar" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CALENDAR_THREE="Calendar 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CALENDAR_TWO="Calendar 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CAMERA="Camera" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CAMERA_TWO_VIDEO="Camera 2 / Video" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CANCEL_CIRCLE="Cancel Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CART="Cart" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHART="Chart" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKBOX="Checkbox" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKBOX_PARTIAL="Checkbox Partial" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKBOX_UNCHECKED="Checkbox Unchecked" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKIN_DESCRIPTION="Select if the items of this view should automatically be checked in." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKIN_LABEL="Auto Check-in" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKMARK_CIRCLE="Checkmark Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CHECKMARK_TWO="Checkmark 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CIRCLE="Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CLOCK="Clock" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COG="Cog" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COGS="Cogs" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMMENT="Comment" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMMENTS_TWO="Comments 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME="Companyname" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_DESCRIPTION="Enter Company Name Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_HINT="Company Name Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPANYNAME_LABEL="Company Name" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPASS="Compass" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION="Component Version" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_DESCRIPTION="Add Version Number Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_HINT="1.0.0" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COMPONENT_VERSION_LABEL="Version" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CONTRACT="Contract" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CONTRACT_TWO="Contract 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT="Copyright" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_DESCRIPTION="Add Copyright Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_COPYRIGHT_HINT="Add Copyright Here" @@ -2929,47 +3999,23 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DATE_DESC="The date this Joomla Co COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATED_DATE_LABEL="Created Date" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATUSERHELPER="Creatuserhelper" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREATUSERHELPER_LABEL="Add Create User Helper Method" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREDIT="Credit" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CREDIT_TWO="Credit 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS="Css" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_DESCRIPTION="Add your CSS here! [Do not add the style tags]" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_HINT="// CSS for the entire back-end" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CSS_LABEL="CSS" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUBE="Cube" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOMADMINVIEW="Customadminview" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOMADMINVIEW_DESCRIPTION="Select a custom admin view" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOMADMINVIEW_LABEL="View" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_ADMIN_VIEWS="Custom Admin Views" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_USED_IN_CUSTOM_CODE="Custom (used in custom code)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_VALUE_DESCRIPTION="Enter custom value in needed" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_VALUE_HINT="Custom Value Here" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_CUSTOM_VALUE_LABEL="Custom Value" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD="Dashboard" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_ADD_DESCRIPTION="Select if the view should show on the dashboard." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_ADD_LABEL="Dashboard (add record)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_LIST_DESCRIPTION="Select if the view should show on the dashboard." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_LIST_LABEL="Dashboard (list of records)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_TAB="Dashboard Tab" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_TAB_LABEL="Dashboard Tabs" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DASHBOARD_TAB_SELECT="Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DATABASE="Database" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR="Debug Linenr" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_DESCRIPTION="Add corresponding line numbers to the dynamic comments, so to see where in the compiler the lines of code was build. This will help if you need to get more technical with an issue on github." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEBUG_LINENR_LABEL="Debug (line numbers)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEFAULT_VIEW_DESCRIPTION="Select only one." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DEFAULT_VIEW_LABEL="Default View" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DELETE="Delete" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DESCRIPTION="Description" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DESCRIPTION_DESCRIPTION="Add Description Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DESCRIPTION_HINT="Add Description Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DESCRIPTION_LABEL="Description" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DETAILS="Details" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DOWNLOAD="Download" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_BUILD_BETA="Dynamic Build (beta)" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_DYNAMIC_INTEGRATION="Dynamic Integration" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT="Editing the Joomla Component" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT_CREATE_SITE_VIEW_DESCRIPTION="add site edit & create view for this admin view" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EDIT_CREATE_SITE_VIEW_LABEL="Edit/Create Site View" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL="Email" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_DESCRIPTION="Enter Email" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_HINT="demo@example.com" @@ -2977,15 +4023,7 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_LABEL="Email" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS="Emptycontributors" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS_DESCRIPTION="Set if a list of empty contributor fields should be added." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMPTYCONTRIBUTORS_LABEL="Empty Contributor Fields" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ENTER="Enter" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ENVELOPE="Envelope" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ENVELOPE_OPENED="Envelope Opened" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EQUALIZER="Equalizer" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ERROR_UNIQUE_ALIAS="Another Joomla Component has the same alias." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXIT="Exit" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPAND="Expand" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPAND_TWO="Expand 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPIRED="Expired" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK="Export Buy Link" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_DESCRIPTION="Enter link where your JCB package key can be bought." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_BUY_LINK_HINT="http://www.example.com/buy-keys" @@ -3000,82 +4038,20 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK="Export Package Link" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK_DESCRIPTION="Enter link where you latest JCB package can be found" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK_HINT="http://www.example.com/buy-package" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EXPORT_PACKAGE_LINK_LABEL="Package Link
(to get updated package)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EYE_CLOSE="Eye Close" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EYE_OPEN="Eye Open" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FEATURED="Featured" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FEED="Feed" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FIELD="Field" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FIELD_DESCRIPTION="Select a field" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FIELD_LABEL="Field" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE="File" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_ADD="File Add" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_CHECK="File Check" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_DESCRIPTION="Add the files to custom folder" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_LABEL="File" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_MINUS="File Minus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_REMOVE="File Remove" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILE_TWO="File 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FILTER="Filter" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FIRST="First" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FLAG="Flag" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FLAG_THREE="Flag 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FLASH="Flash" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER="Folder" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_CLOSE="Folder Close" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_DESCRIPTION="Add the folder to custom folder" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_LABEL="Folder" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_MINUS="Folder Minus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_OPEN="Folder Open" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_PLUS="Folder Plus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_PLUS_TWO="Folder Plus 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_REMOVE="Folder Remove" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FOLDER_THREE="Folder 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FORWARD_CIRCLE="Forward Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FORWARD_TWO="Forward 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FRONT="Front" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_FTP="FTP" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GENERIC="Generic" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GRID="Grid" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_GRID_TWO="Grid 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HEADER_DESCRIPTION="Enter Header Here" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HEADER_HINT="Header Here" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HEADER_LABEL="Header" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HEALTH="Health" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HEART="Heart" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HEART_TWO="Heart 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HISTORY_DESCRIPTION="Select if the items of this view should keep a history of item changes." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HISTORY_LABEL="Keep History" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HOME="Home" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HOME_TWO="Home 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HTML_HINT="// Add the tab HTML here. To access php values methodname->value; ?>" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_HTML_LABEL="HTML" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ICOMOON_DESCRIPTION="Joomla Standard Icomoon Fonts" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ICOMOON_LABEL="Icon" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ICON_DESCRIPTION="Add the icon to the image folder and select it here (128 x 128px)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ICON_LABEL="Icon" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ID="Id" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IDS_DESCRIPTION="if id option selected" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IDS_HINT="// 1 => 500 or 1,2,3,4 or 1 => 4,20,40 => 90" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IDS_LABEL="ID's" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ID_BASED="ID Based" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE="Image" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGES="Images" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_DESCRIPTION="The component image (product box) for the dashboard and install page, must be 300px X 300px." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMAGE_LABEL="Component Image" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMPORT_COMPONENTS_BUTTON_ACCESS="Joomla Component Import Components Button Access" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_IMPORT_COMPONENTS_BUTTON_ACCESS_DESC=" Allows the users in this group to access the import components button." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INFO="Info" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_INFO_CIRCLE="Info Circle" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT="Javascript" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_DESCRIPTION="Add your JavaScript here! [Do not add the script tags]" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_HINT="// JavaScript for the entire back-end" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JAVASCRIPT_LABEL="Javascript" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_DESCRIPTION="The settings below are used when you export this component as a JCB Package, for more info on how this works please review the following tutorial (https://youtu.be/lkE0ZiSWufg)." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JCB_EXPORT_PACKAGE_NOTE_LABEL="JCB Package Export Settings" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_JOOMLA="Joomla" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_KEY="Key" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LAMP="Lamp" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LAST="Last" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LIBS_HELPERS="Libs & Helpers" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE="License" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_DESCRIPTION="Add License Here" @@ -3084,41 +4060,15 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_LABEL="License" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_TYPE="License Type" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_TYPE_DESCRIPTION="How should the license be implemented." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LICENSE_TYPE_LABEL="Implementation" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LINK="Link" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LINK_DESCRIPTION="Enter menu link" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LINK_HINT="Menu Link Here" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LINK_LABEL="Link" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LIST="List" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LIST_TWO="List 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LOCATION="Location" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LOCK="Lock" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LOCK_DOWN_USE_USED_TO_VERIFY_OWNERSHIP="Lock Down Use (used to verify ownership)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_LOOP="Loop" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MAINMENU_DESCRIPTION="Select if the view should show in the main menu." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MAINMENU_LABEL="Main Menu" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MENU="Menu" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MENU_DESCRIPTION="Select if the view should show have a menu link." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MENU_LABEL="Add Menu" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MENU_THREE="Menu 3" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MENU_TWO="Menu 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_METADATA_DESCRIPTION="Select if this view should have metadata." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_METADATA_LABEL="Has Metadata" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MINUS="Minus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MINUS_SIGN="Minus Sign" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MOBILE="Mobile" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_BY_DESC="The last user that modified this Joomla Component." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_BY_LABEL="Modified By" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_DATE_DESC="The date this Joomla Component was modified." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MODIFIED_DATE_LABEL="Modified Date" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MOVE="Move" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MUSIC="Music" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE="Mvc Versiondate" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE_DESCRIPTION="Use the modified date, and version number of the view/fields instead of the global version in related files." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MVC_VERSIONDATE_LABEL="Use View Version & Date" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MYSQL="MySQL" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MYSQL_DESCRIPTION="Update Dump" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MYSQL_HINT="// MySQL for update or blank for none" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_MYSQL_LABEL="MySQL" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME="Name" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME_CODE="Name Code" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME_CODE_DESCRIPTION="Add Name in Code Here" @@ -3128,27 +4078,33 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME_DESCRIPTION="Enter Name Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME_HINT="Name Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NAME_LABEL="Name" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NEW="A New Joomla Component" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NEW_TAB="New Tab" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NEW_TAB_TWO="New Tab 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NEXT="Next" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NO="No" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NONE="None" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CONFIG_DESCRIPTION="You can add custom config fields to the component here. The normal Global config is already being added so only add custom fields that you would like to use in custom scripts." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CONFIG_DESCRIPTION="You can add custom config fields to the component here. The normal Global config is already being added so only add custom fields that you would like to use in custom scripts." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CONFIG_LABEL="Adding Custom Config Fields" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CUSTOM_MENUS_DESCRIPTION="You can add custom menus to the component here. The normal Menus are already being added so only add custom Menus that you would like to use for custom scripts." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CUSTOM_MENUS_DESCRIPTION="You can add custom menus to the component here. The normal Menus are already being added so only add custom Menus that you would like to use for custom scripts." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_CUSTOM_MENUS_LABEL="Adding Custom Menus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_FILES_DESCRIPTION="You can add custom files to the component, simply add the files to the administrator/components/com_componentbuilder/custom folder and then select them here." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_FILES_LABEL="Adding Custom Files" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_FOLDERS_DESCRIPTION="You can add custom folders to the component, simply add the folders to the administrator/components/com_componentbuilder/custom folder and then select them here." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ADD_FOLDERS_LABEL="Adding Custom Folders" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_DESCRIPTION="

You can add more tabs to the component dashboard.

" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BOTTON_COMPONENT_DASHBOARD_LABEL="Customize the Component Dashboard" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_DESCRIPTION="You can dynamically build the components back-end views and fields by adding a mySql table dump, that has all the tables, or some more tables with its columns and data types. A very basic and generic set of fields and tables will be created, and added to the existing fields and tables of this component." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_BUILDCOMP_DYNAMIC_MYSQL_LABEL="Dynamic Builder (mySql) Option" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_DESCRIPTION="In each admin view you can add data from a MySQL Table (this is done in the admin view MySQL tab). Here you can limit that data in relation to this component. This feature is useful when an admin view with demo data is used in more then one component, and you would like to exclude some demo data without creating a new admin view." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_COMPONENT_FILES_FOLDERS_DESCRIPTION="You can add custom files and folders to the component, simply add the files to the administrator/components/com_componentbuilder/custom folder and then select them here." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_COMPONENT_FILES_FOLDERS_LABEL="Adding Custom Files & Folder" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DISPLAY_COMPONENT_ADMIN_VIEWS_DESCRIPTION="

Linked Admin Views

Display of the admin views will load here!
" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DISPLAY_COMPONENT_CUSTOM_ADMIN_VIEWS_DESCRIPTION="

Linked Custom Admin Views

Display of the custom admin views will load here!
" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_DISPLAY_COMPONENT_SITE_VIEWS_DESCRIPTION="

Linked Site Views

Display of the site views will load here!
" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_DESCRIPTION="We have moved the views in to their own tabs for your convenience." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MOVED_VIEWS_LABEL="To add views, please open the corresponding tab." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_DESCRIPTION="In each admin view you can add data from a MySQL Table (this is done in the admin view MySQL tab). Here you can limit that data in relation to this component. This feature is useful when an admin view with demo data is used in more then one component, and you would like to exclude some demo data without creating a new admin view." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_MYSQL_TWEAK_OPTIONS_LABEL=" MySql Tweak Options" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_ADMIN_VIEWS_DESCRIPTION="Do not add the same view twice it will not work. Please watch this tutorial for more help." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_ADMIN_VIEWS_LABEL="Setting Admin Views" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_CONTRIBUTORS_DESCRIPTION="Only add contributors if you would like them listed on the component dashboard." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_CONTRIBUTORS_LABEL="Setting Contributors" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_VIEWS_DESCRIPTION="Do not add the same view twice it will not work." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_VIEWS_LABEL="Setting Views" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_CUSTOM_ADMIN_VIEWS_DESCRIPTION="Do not add the same view twice it will not work. Please watch this tutorial for more help." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_CUSTOM_ADMIN_VIEWS_LABEL="Setting Custom Admin Views" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_SITE_VIEWS_DESCRIPTION="Do not add the same view twice it will not work. Please watch this tutorial for more help." +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_ON_SITE_VIEWS_LABEL="Setting Site Views" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_README_DESCRIPTION="

Need help, visit Markdown-Cheatsheet

# ###Component_name### (###VERSION###)
@@ -3213,41 +4169,17 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_ZIP_DESCRIPTION="T COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_UPDATE_SERVER_NOTE_ZIP_LABEL="The ZIP Option" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_WHMCS_LISENCING_NOTE_DESCRIPTION="You can use WHMCS licensing addon in your component
Helpful Links
https://www.whmcs.com/addons/licensing-addon/
http://docs.whmcs.com/Licensing_Addon" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTE_WHMCS_LISENCING_NOTE_LABEL="Licensing addon module for WHMCS" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTIFICATION="Notification" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTIFICATION_CIRCLE="Notification Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTNEW_DESCRIPTION="Should file be updated." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOTNEW_LABEL="Update" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NOT_REQUIRED="Not Required" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NUMBER="Number" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_NUMBER_LABEL="Number" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ORDERING_LABEL="Ordering" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ORDER_DESCRIPTION="Overide the default order" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ORDER_LABEL="Order" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_OTHER="Other" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PALETTE="Palette" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PARAGRAPH_CENTER="Paragraph Center" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PARAGRAPH_JUSTIFY="Paragraph Justify" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PARAGRAPH_LEFT="Paragraph Left" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PARAGRAPH_RIGHT="Paragraph Right" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PATH_DESCRIPTION="Path in relation to the folder structure in the install package, unzip the compiled file to see the structure. " -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PATH_HINT="Target Path Here" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PATH_LABEL="Target Path" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PAUSE="Pause" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PAUSE_CIRCLE="Pause Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PENCIL="Pencil" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PENCIL_TWO="Pencil 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PERMISSION="Permissions" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHONE="Phone" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHONE_TWO="Phone 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP="PHP" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT="Php Admin Event" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_DESCRIPTION="PHP script for the global helper admin event method." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_HINT="// add custom PHP script to the global helper admin event method." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_ADMIN_EVENT_LABEL="Global Helper Admin Event" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_DASHBOARD_METHODS="Php Dashboard Methods" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_DASHBOARD_METHODS_DESCRIPTION="PHP methods to place in the dashboard model." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_DASHBOARD_METHODS_HINT="// add custom PHP methods to dashboard model. Use the [public function getMethodname()] to insure the data is set to the view, note the convention [public function get...()] replace the .... with the unique method name." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_DASHBOARD_METHODS_LABEL="PHP Dashboard Methods" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN="Php Helper Admin" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_DESCRIPTION="Add your PHP here! [Do not add the php tags]" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_HELPER_ADMIN_HINT="// The PHP abstract Methods to add to the component helper class. Only Methods! as it will directly be add as methods to the helper class!" @@ -3284,97 +4216,30 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT="Php Site Event" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_DESCRIPTION="PHP script for the global helper site event method." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_HINT="// add custom PHP script to the global helper site event method." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PHP_SITE_EVENT_LABEL="Global Helper Site Event" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PIE="Pie" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PIN="Pin" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PLAY="Play" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PLAY_CIRCLE="Play Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PLUS="Plus" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PLUS_CIRCLE="Plus Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PORT_DESCRIPTION="add import/export option to this admin view." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PORT_LABEL="Export/Import Data" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_POWER_CORD="Power Cord" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PREVIOUS="Previous" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PRINT="Print" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUBLIC_DESCRIPTION="if view uses Access,
should default be public." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUBLIC_LABEL="Public Access" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUBLISH="Publish" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUBLISHING="Publishing" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PURGE="Purge" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_PUZZLE="Puzzle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_QUESTION="Question" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_QUESTION_TWO="Question 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_QUOTES_LEFT="Quotes Left" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_QUOTES_RIGHT="Quotes Right" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_RADIO_UNCHECKED="Radio Unchecked" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_README="Readme" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_README_LABEL="README.md" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_RENAME_LABEL="Rename" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_REPLY="Reply" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SALES_SERVER_FTP="Sales Server Ftp" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SALES_SERVER_FTP_DESCRIPTION="Select your sales server (FTP) for this component" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SALES_SERVER_FTP_LABEL="Sales Server (FTP)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SAVE_COPY="Save Copy" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SAVE_NEW="Save New" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SAVE_WARNING="Alias already existed so a number was added at the end. You can re-edit the Joomla Component to customise the alias." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SCISSORS="Scissors" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SCREEN="Screen" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SCREWDRIVER="Screwdriver" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SEARCH="Search" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SELECT_AN_OPTION="Select an option" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SETTINGS="Settings" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHARE="Share" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHARE_ALT="Share Alt" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHIELD="Shield" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHORT_DESCRIPTION="Short Description" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHORT_DESCRIPTION_DESCRIPTION="Enter short description" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHORT_DESCRIPTION_HINT="Your Short Description Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHORT_DESCRIPTION_LABEL="Short Description" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHOW_DESCRIPTION="Select where you want this contributor to show in the component." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHOW_LABEL="Show" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SHUFFLE="Shuffle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SIGNUP="Signup" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SITEVIEW="Siteview" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SITEVIEW_DESCRIPTION="Select a site view" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SITEVIEW_LABEL="View" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SITE_VIEWS="Site Views" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SMILEY="Smiley" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SMILEY_NEUTRAL="Smiley Neutral" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SMILEY_NEUTRAL_TWO="Smiley Neutral 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SMILEY_SAD="Smiley Sad" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SMILEY_SAD_TWO="Smiley Sad 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SMILEY_TWO="Smiley 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL="Sql" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_DESCRIPTION="Add your MySQL here!" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_HINT="// Add MySQL Table Dump Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_LABEL="MySQL" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_TWEAK="Sql Tweak" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_TWEAK_DESCRIPTION="Tweak the view MySql dump settings." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_TWEAK_LABEL="MySql (tweak)" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQL_TWEAK_SELECT="Open" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SQUARE="Square" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_STACK="Stack" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_STAR_TWO="Star 2" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_STATUS="Status" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_STOP="Stop" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_STOP_CIRCLE="Stop Circle" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SUBMENU_DESCRIPTION="Select if the view should show in the submenu." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SUBMENU_LABEL="Submenu" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SUPPORT="Support" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SWITCH="Switch" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SYSTEM_NAME="System Name" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SYSTEM_NAME_DESCRIPTION="Used only in the system." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SYSTEM_NAME_HINT="The System Name Here" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_SYSTEM_NAME_LABEL="System Name" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TABLET="Tablet" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TABNAME_DESCRIPTION="The name of the tab this field belongs to." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TABNAME_HINT="Global" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TABNAME_LABEL="Tab Name" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TAG="Tag" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TAGS="Tags" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TAGS_TWO="Tags 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TAG_TWO="Tag 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_THUMBS_DOWN="Thumbs Down" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_THUMBS_UP="Thumbs Up" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TITLE_DESCRIPTION="Enter contributor's title in relation to this component" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TITLE_HINT="Contributor's Role" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TITLE_LABEL="Job Title" @@ -3385,15 +4250,6 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TOIGNORE_LABEL="Repository Folders or File COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TO_IGNORE_NOTE_DESCRIPTION="During compilation JCB deletes all files and folders from the repository folder, and then adds the newly created files and folders back into the repository folder. Yet there may be files or folders you may not want deleted, like the .git folder, since JCB does not dynamically create that folder and so it will not be placed back, but simply delete it, unless you add it in this text field below, so that it will be ignored, and therefore not deleted in the first place. You can add multiple folders and files, separated by commas. Like: .git, .hg" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TO_IGNORE_NOTE_LABEL="Repository Folders or Files to Ignore" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TRANSLATION="Translation" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TREE="Tree" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_TREE_TWO="Tree 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNARCHIVE="Unarchive" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNBLOCK="Unblock" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNDO="Undo" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNDO_TWO="Undo 2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNFEATURED="Unfeatured" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNLOCK="Unlock" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UNPUBLISH="Unpublish" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATES_USED_IN_JOOMLA_UPDATER="Updates (used in Joomla updater)" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER="Update Server" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_DESCRIPTION="Enter Update Server URL" @@ -3405,28 +4261,12 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_LABEL="Update Server" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_TARGET="Update Server Target" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_TARGET_DESCRIPTION="Select the type of way you would like the update server to be set." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPDATE_SERVER_TARGET_LABEL="Update Server Target" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_UPLOAD="Upload" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_URL_DESCRIPTION="Enter Download Link" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_URL_HINT="http://www.example.com/file.zip" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_URL_LABEL="Version URL" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USER="User" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USERS="Users" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_DESCRIPTION="How should we link to this contributor." COM_COMPONENTBUILDER_JOOMLA_COMPONENT_USE_LABEL="Use" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VCARD="Vcard" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_DESC="A count of the number of times this Joomla Component has been revised." -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_DESCRIPTION="1.0.0" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_HINT="1.0.0" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_LABEL="SQL Update Version" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_UPDATE="Version Update" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_UPDATE_DESCRIPTION="Add Version Updates Here!" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_UPDATE_LABEL="Version Updates" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_UPDATE_SELECT="Add Update SQL" +COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VERSION_LABEL="Revision" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VTHREE="V3" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_VTWO="V2" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WAND="Wand" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WARNING="Warning" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WARNING_CIRCLE="Warning Circle" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE="Website" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_DESCRIPTION="Enter website address" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_HINT="http://www.example.com" @@ -3439,13 +4279,8 @@ COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL="Whmcs Url" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_DESCRIPTION="Enter whmcs address" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_HINT="http://www.yoursite.com/whmcs" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_URL_LABEL="URL to your WHMCS install" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WIFI="Wifi" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WRENCH="Wrench" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YES="Yes" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_YOUTUBE="Youtube" COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ZIP="ZIP" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ZOOM_IN="Zoom In" -COM_COMPONENTBUILDER_JOOMLA_COMPONENT_ZOOM_OUT="Zoom Out" COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS="- Keep Original Access -" COM_COMPONENTBUILDER_KEEP_ORIGINAL_CATEGORY="- Keep Original Category -" COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE="- Keep Original State -" @@ -3721,11 +4556,14 @@ COM_COMPONENTBUILDER_NOTRANSLATION="no-translation" COM_COMPONENTBUILDER_NOT_FOUND_OR_ACCESS_DENIED="Not found, or access denied." COM_COMPONENTBUILDER_NOT_SET="not set" COM_COMPONENTBUILDER_NO_ACCESS_GRANTED="No Access Granted!" +COM_COMPONENTBUILDER_NO_ADMIN_VIEW_FOUND="No Admin View Found" COM_COMPONENTBUILDER_NO_COMPONENTS_WERE_SELECTED_PLEASE_MAKE_A_SELECTION_AND_TRY_AGAIN="No components were selected, please make a selection and try again!" COM_COMPONENTBUILDER_NO_CRONJOB_PATH_FOUND_FOR_S="No cronjob path found for (%s)" COM_COMPONENTBUILDER_NO_CRONJOB_PATH_FOUND_SINCE_INCORRECT_TYPE_REQUESTED="No cronjob path found since incorrect type requested." +COM_COMPONENTBUILDER_NO_CUSTOM_ADMIN_VIEW_FOUND="No Custom Admin View Found" COM_COMPONENTBUILDER_NO_FIELD_FOUND="No Field Found" COM_COMPONENTBUILDER_NO_KEYS_WERE_FOUND_TO_ADD_AN_EXPORT_KEY_SIMPLY_OPEN_THE_COMPONENT_GO_TO_THE_TAB_CALLED_SETTINGS_BOTTOM_RIGHT_THERE_IS_A_FIELD_CALLED_EXPORT_KEY="No keys were found. To add an export key simply open the component, go to the tab called settings, bottom right there is a field called Export Key." +COM_COMPONENTBUILDER_NO_SITE_VIEW_FOUND="No Site View Found" COM_COMPONENTBUILDER_NO_S_HAVE_BEEN_LINKED_TO_THIS_VIEW_SOON_AS_THIS_IS_DONE_IT_WILL_BE_DISPLAYED_HERE="No %s have been linked to this view. Soon as this is done it will be displayed here." COM_COMPONENTBUILDER_ON_GITHUB="on Github" COM_COMPONENTBUILDER_OPEN="Open" @@ -3744,6 +4582,7 @@ COM_COMPONENTBUILDER_PLEASE_ADD_FOLDERS_TO_S="Please add folders to (%s)" COM_COMPONENTBUILDER_PLEASE_CHECK_AGAIN_LATTER="Please check again latter." COM_COMPONENTBUILDER_PLEASE_SELECT_A_COMPONENT_THAT_YOU_WOULD_LIKE_TO_COMPILE="Please select a component that you would like to compile." COM_COMPONENTBUILDER_PLEASE_WAIT_CLEARING_THE_TMP_FOLDER="Please wait! Clearing the tmp folder" +COM_COMPONENTBUILDER_PUBLISHING="Publishing" COM_COMPONENTBUILDER_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component" COM_COMPONENTBUILDER_RELEASED_THIS="released this" COM_COMPONENTBUILDER_RESPOND_TO_THIS_ISSUE_ON_GITHUB="Respond to this issue on Github" diff --git a/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini b/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini index 2a16ad8a9..f4fd7fd63 100644 --- a/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini +++ b/admin/language/en-GB/en-GB.com_componentbuilder.sys.ini @@ -77,6 +77,186 @@ COM_COMPONENTBUILDER_COMPILER_DASHBOARD_LIST="Compiler Dashboard List" COM_COMPONENTBUILDER_COMPILER_DASHBOARD_LIST_DESC="Allows the users in this group to update the dashboard list of the Compiler" COM_COMPONENTBUILDER_COMPILER_SUBMENU="Compiler Submenu" COM_COMPONENTBUILDER_COMPILER_SUBMENU_DESC="Allows the users in this group to update the submenu of the Compiler" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_ACCESS="Components Admin Views Access" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_ACCESS_DESC="Allows the users in this group to access access components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_USE="Components Admin Views Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_CREATE="Components Admin Views Create" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_DELETE="Components Admin Views Delete" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_DELETE_DESC="Allows the users in this group to delete delete components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT="Components Admin Views Edit" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_BY="Components Admin Views Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_DATE="Components Admin Views Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_DESC="Allows the users in this group to edit the component admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_OWN="Components Admin Views Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components admin views created by them" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_STATE="Components Admin Views Edit State" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component admin views" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_VERSION="Components Admin Views Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components admin views" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_ACCESS="Components Config Access" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_ACCESS_DESC="Allows the users in this group to access access components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_USE="Components Config Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_CREATE="Components Config Create" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_CREATE_DESC="Allows the users in this group to create create components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_DELETE="Components Config Delete" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_DELETE_DESC="Allows the users in this group to delete delete components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT="Components Config Edit" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_BY="Components Config Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_DATE="Components Config Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_DESC="Allows the users in this group to edit the component config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_OWN="Components Config Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_OWN_DESC="Allows the users in this group to edit edit own components config created by them" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_STATE="Components Config Edit State" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_STATE_DESC="Allows the users in this group to update the state of the component config" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_VERSION="Components Config Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_CONFIG_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components config" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_ACCESS="Components Custom Admin Menus Access" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_ACCESS_DESC="Allows the users in this group to access access components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_USE="Components Custom Admin Menus Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_CREATE="Components Custom Admin Menus Create" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_CREATE_DESC="Allows the users in this group to create create components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_DELETE="Components Custom Admin Menus Delete" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_DELETE_DESC="Allows the users in this group to delete delete components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT="Components Custom Admin Menus Edit" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_BY="Components Custom Admin Menus Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_DATE="Components Custom Admin Menus Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_DESC="Allows the users in this group to edit the component custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_OWN="Components Custom Admin Menus Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components custom admin menus created by them" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_STATE="Components Custom Admin Menus Edit State" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_VERSION="Components Custom Admin Menus Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components custom admin menus" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_ACCESS="Components Custom Admin Views Access" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_ACCESS_DESC="Allows the users in this group to access access components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_USE="Components Custom Admin Views Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_CREATE="Components Custom Admin Views Create" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_CREATE_DESC="Allows the users in this group to create create components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_DELETE="Components Custom Admin Views Delete" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_DELETE_DESC="Allows the users in this group to delete delete components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT="Components Custom Admin Views Edit" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_BY="Components Custom Admin Views Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_DATE="Components Custom Admin Views Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_DESC="Allows the users in this group to edit the component custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_OWN="Components Custom Admin Views Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components custom admin views created by them" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_STATE="Components Custom Admin Views Edit State" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_VERSION="Components Custom Admin Views Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components custom admin views" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_ACCESS="Components Dashboard Access" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_ACCESS_DESC="Allows the users in this group to access access components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_USE="Components Dashboard Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_CREATE="Components Dashboard Create" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_CREATE_DESC="Allows the users in this group to create create components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_DELETE="Components Dashboard Delete" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_DELETE_DESC="Allows the users in this group to delete delete components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT="Components Dashboard Edit" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_BY="Components Dashboard Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_DATE="Components Dashboard Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_DESC="Allows the users in this group to edit the component dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_OWN="Components Dashboard Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_OWN_DESC="Allows the users in this group to edit edit own components dashboard created by them" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_STATE="Components Dashboard Edit State" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_STATE_DESC="Allows the users in this group to update the state of the component dashboard" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_VERSION="Components Dashboard Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components dashboard" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_ACCESS="Components Files Folders Access" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_ACCESS_DESC="Allows the users in this group to access access components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_USE="Components Files Folders Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_CREATE="Components Files Folders Create" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_CREATE_DESC="Allows the users in this group to create create components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_DELETE="Components Files Folders Delete" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_DELETE_DESC="Allows the users in this group to delete delete components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT="Components Files Folders Edit" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_BY="Components Files Folders Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_DATE="Components Files Folders Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_DESC="Allows the users in this group to edit the component files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_OWN="Components Files Folders Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components files folders created by them" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE="Components Files Folders Edit State" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component files folders" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION="Components Files Folders Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components files folders" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS="Components Mysql Tweaks Access" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_ACCESS_DESC="Allows the users in this group to access access components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE="Components Mysql Tweaks Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_CREATE="Components Mysql Tweaks Create" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_CREATE_DESC="Allows the users in this group to create create components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_DELETE="Components Mysql Tweaks Delete" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_DELETE_DESC="Allows the users in this group to delete delete components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT="Components Mysql Tweaks Edit" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_BY="Components Mysql Tweaks Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_DATE="Components Mysql Tweaks Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_DESC="Allows the users in this group to edit the component mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_OWN="Components Mysql Tweaks Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components mysql tweaks created by them" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_STATE="Components Mysql Tweaks Edit State" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_VERSION="Components Mysql Tweaks Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components mysql tweaks" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_ACCESS="Components Site Views Access" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_ACCESS_DESC="Allows the users in this group to access access components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_USE="Components Site Views Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_CREATE="Components Site Views Create" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_CREATE_DESC="Allows the users in this group to create create components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_DELETE="Components Site Views Delete" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_DELETE_DESC="Allows the users in this group to delete delete components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT="Components Site Views Edit" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_BY="Components Site Views Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_DATE="Components Site Views Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_DESC="Allows the users in this group to edit the component site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_OWN="Components Site Views Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_OWN_DESC="Allows the users in this group to edit edit own components site views created by them" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_STATE="Components Site Views Edit State" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_STATE_DESC="Allows the users in this group to update the state of the component site views" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_VERSION="Components Site Views Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components site views" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_ACCESS="Components Updates Access" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_ACCESS_DESC="Allows the users in this group to access access components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_USE="Components Updates Batch Use" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_CREATE="Components Updates Create" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_CREATE_DESC="Allows the users in this group to create create components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_DELETE="Components Updates Delete" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_DELETE_DESC="Allows the users in this group to delete delete components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT="Components Updates Edit" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_BY="Components Updates Edit Created By" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_DATE="Components Updates Edit Created Date" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created components updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_DESC="Allows the users in this group to edit the component updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN="Components Updates Edit Own" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_OWN_DESC="Allows the users in this group to edit edit own components updates created by them" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE="Components Updates Edit State" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_STATE_DESC="Allows the users in this group to update the state of the component updates" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION="Components Updates Edit Version" +COM_COMPONENTBUILDER_COMPONENTS_UPDATES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version components updates" COM_COMPONENTBUILDER_CONFIGURATION="Component Builder Configuration" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS="Custom Admin Views Access" COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS_ACCESS_DESC="Allows the users in this group to access access custom admin views" diff --git a/admin/layouts/admin_fields/fields_above.php b/admin/layouts/admin_fields/fields_above.php index 9bda4d76a..58d98f70f 100644 --- a/admin/layouts/admin_fields/fields_above.php +++ b/admin/layouts/admin_fields/fields_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields_above.php diff --git a/admin/layouts/admin_fields/fields_fullwidth.php b/admin/layouts/admin_fields/fields_fullwidth.php index e258706bd..f6122989a 100644 --- a/admin/layouts/admin_fields/fields_fullwidth.php +++ b/admin/layouts/admin_fields/fields_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields_fullwidth.php diff --git a/admin/layouts/admin_fields/publishing.php b/admin/layouts/admin_fields/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/admin_fields/publishing.php +++ b/admin/layouts/admin_fields/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/admin_fields/publlshing.php b/admin/layouts/admin_fields/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/admin_fields/publlshing.php +++ b/admin/layouts/admin_fields/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/admin_fields_conditions/conditions_above.php b/admin/layouts/admin_fields_conditions/conditions_above.php index 8b602f9a1..5fbf91944 100644 --- a/admin/layouts/admin_fields_conditions/conditions_above.php +++ b/admin/layouts/admin_fields_conditions/conditions_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage conditions_above.php diff --git a/admin/layouts/admin_fields_conditions/conditions_fullwidth.php b/admin/layouts/admin_fields_conditions/conditions_fullwidth.php index ae8dc03d2..f74c1ca71 100644 --- a/admin/layouts/admin_fields_conditions/conditions_fullwidth.php +++ b/admin/layouts/admin_fields_conditions/conditions_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage conditions_fullwidth.php diff --git a/admin/layouts/admin_fields_conditions/publishing.php b/admin/layouts/admin_fields_conditions/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/admin_fields_conditions/publishing.php +++ b/admin/layouts/admin_fields_conditions/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/admin_fields_conditions/publlshing.php b/admin/layouts/admin_fields_conditions/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/admin_fields_conditions/publlshing.php +++ b/admin/layouts/admin_fields_conditions/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/admin_view/css_fullwidth.php b/admin/layouts/admin_view/css_fullwidth.php index 9d5c06564..e1b3aa98c 100644 --- a/admin/layouts/admin_view/css_fullwidth.php +++ b/admin/layouts/admin_view/css_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage css_fullwidth.php diff --git a/admin/layouts/admin_view/custom_buttons_fullwidth.php b/admin/layouts/admin_view/custom_buttons_fullwidth.php index 4abd29df7..f78e83736 100644 --- a/admin/layouts/admin_view/custom_buttons_fullwidth.php +++ b/admin/layouts/admin_view/custom_buttons_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_fullwidth.php diff --git a/admin/layouts/admin_view/custom_buttons_left.php b/admin/layouts/admin_view/custom_buttons_left.php index 73038d319..c890d700a 100644 --- a/admin/layouts/admin_view/custom_buttons_left.php +++ b/admin/layouts/admin_view/custom_buttons_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_left.php diff --git a/admin/layouts/admin_view/custom_import_fullwidth.php b/admin/layouts/admin_view/custom_import_fullwidth.php index fe207b016..76c403fad 100644 --- a/admin/layouts/admin_view/custom_import_fullwidth.php +++ b/admin/layouts/admin_view/custom_import_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_import_fullwidth.php diff --git a/admin/layouts/admin_view/details_above.php b/admin/layouts/admin_view/details_above.php index ffa817969..25395856f 100644 --- a/admin/layouts/admin_view/details_above.php +++ b/admin/layouts/admin_view/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/admin_view/details_left.php b/admin/layouts/admin_view/details_left.php index 1af73d1c5..fefda8a44 100644 --- a/admin/layouts/admin_view/details_left.php +++ b/admin/layouts/admin_view/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/admin_view/details_right.php b/admin/layouts/admin_view/details_right.php index 96a2c9b62..75c0acb20 100644 --- a/admin/layouts/admin_view/details_right.php +++ b/admin/layouts/admin_view/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/admin_view/details_under.php b/admin/layouts/admin_view/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/admin_view/details_under.php +++ b/admin/layouts/admin_view/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/admin_view/fields_conditions_fullwidth.php b/admin/layouts/admin_view/fields_conditions_fullwidth.php index 10a384105..cc04e9a1e 100644 --- a/admin/layouts/admin_view/fields_conditions_fullwidth.php +++ b/admin/layouts/admin_view/fields_conditions_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields_conditions_fullwidth.php diff --git a/admin/layouts/admin_view/fields_conditions_left.php b/admin/layouts/admin_view/fields_conditions_left.php index 000e3103c..8936fa17b 100644 --- a/admin/layouts/admin_view/fields_conditions_left.php +++ b/admin/layouts/admin_view/fields_conditions_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields_conditions_left.php diff --git a/admin/layouts/admin_view/fields_conditions_right.php b/admin/layouts/admin_view/fields_conditions_right.php index f4198f333..6ea894198 100644 --- a/admin/layouts/admin_view/fields_conditions_right.php +++ b/admin/layouts/admin_view/fields_conditions_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields_conditions_right.php diff --git a/admin/layouts/admin_view/javascript_fullwidth.php b/admin/layouts/admin_view/javascript_fullwidth.php index 9e5605452..e5c1be48e 100644 --- a/admin/layouts/admin_view/javascript_fullwidth.php +++ b/admin/layouts/admin_view/javascript_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage javascript_fullwidth.php diff --git a/admin/layouts/admin_view/linked_components_fullwidth.php b/admin/layouts/admin_view/linked_components_fullwidth.php index 21a30241e..62be9c051 100644 --- a/admin/layouts/admin_view/linked_components_fullwidth.php +++ b/admin/layouts/admin_view/linked_components_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage linked_components_fullwidth.php @@ -28,7 +28,7 @@ defined('_JEXEC') or die('Restricted access'); // set the defaults -$items = $displayData->vxzlinked_components; +$items = $displayData->vxvlinked_components; $user = JFactory::getUser(); $id = $displayData->item->id; $edit = "index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit"; diff --git a/admin/layouts/admin_view/mysql_fullwidth.php b/admin/layouts/admin_view/mysql_fullwidth.php index 81b8e3b20..afc228f59 100644 --- a/admin/layouts/admin_view/mysql_fullwidth.php +++ b/admin/layouts/admin_view/mysql_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage mysql_fullwidth.php diff --git a/admin/layouts/admin_view/mysql_left.php b/admin/layouts/admin_view/mysql_left.php index 261903589..2861f4dc6 100644 --- a/admin/layouts/admin_view/mysql_left.php +++ b/admin/layouts/admin_view/mysql_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage mysql_left.php diff --git a/admin/layouts/admin_view/php_fullwidth.php b/admin/layouts/admin_view/php_fullwidth.php index de4224512..a44634c81 100644 --- a/admin/layouts/admin_view/php_fullwidth.php +++ b/admin/layouts/admin_view/php_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage php_fullwidth.php diff --git a/admin/layouts/admin_view/publishing.php b/admin/layouts/admin_view/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/admin_view/publishing.php +++ b/admin/layouts/admin_view/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/admin_view/publlshing.php b/admin/layouts/admin_view/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/admin_view/publlshing.php +++ b/admin/layouts/admin_view/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/admin_view/settings_fullwidth.php b/admin/layouts/admin_view/settings_fullwidth.php index cedf738d7..cf48c32de 100644 --- a/admin/layouts/admin_view/settings_fullwidth.php +++ b/admin/layouts/admin_view/settings_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage settings_fullwidth.php diff --git a/admin/layouts/batchselection.php b/admin/layouts/batchselection.php index e014c7aa0..f14cca1c2 100644 --- a/admin/layouts/batchselection.php +++ b/admin/layouts/batchselection.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage batchselection.php diff --git a/admin/layouts/component_admin_views/index.html b/admin/layouts/component_admin_views/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_admin_views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_admin_views/publishing.php b/admin/layouts/component_admin_views/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_admin_views/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_admin_views/publlshing.php b/admin/layouts/component_admin_views/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_admin_views/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/language_translation/details_above.php b/admin/layouts/component_admin_views/views_above.php similarity index 93% rename from admin/layouts/language_translation/details_above.php rename to admin/layouts/component_admin_views/views_above.php index ce5eecb21..7f0e06a6e 100644 --- a/admin/layouts/language_translation/details_above.php +++ b/admin/layouts/component_admin_views/views_above.php @@ -10,11 +10,11 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder - @subpackage details_above.php + @subpackage views_above.php @author Llewellyn van der Merwe @copyright Copyright (C) 2015. All Rights Reserved @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html @@ -30,7 +30,7 @@ defined('_JEXEC') or die('Restricted access'); $form = $displayData->getForm(); $fields = array( - 'components' + 'joomla_component' ); ?> diff --git a/admin/layouts/component_admin_views/views_fullwidth.php b/admin/layouts/component_admin_views/views_fullwidth.php new file mode 100644 index 000000000..3dca2c093 --- /dev/null +++ b/admin/layouts/component_admin_views/views_fullwidth.php @@ -0,0 +1,49 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_on_admin_views', + 'addadmin_views' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_config/index.html b/admin/layouts/component_config/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_config/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_config/publishing.php b/admin/layouts/component_config/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_config/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_config/publlshing.php b/admin/layouts/component_config/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_config/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_config/tweaks_above.php b/admin/layouts/component_config/tweaks_above.php new file mode 100644 index 000000000..1b750b70c --- /dev/null +++ b/admin/layouts/component_config/tweaks_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_config/tweaks_fullwidth.php b/admin/layouts/component_config/tweaks_fullwidth.php new file mode 100644 index 000000000..06f43af7f --- /dev/null +++ b/admin/layouts/component_config/tweaks_fullwidth.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'addconfig' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_custom_admin_menus/index.html b/admin/layouts/component_custom_admin_menus/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_custom_admin_menus/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_custom_admin_menus/publishing.php b/admin/layouts/component_custom_admin_menus/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_custom_admin_menus/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_custom_admin_menus/publlshing.php b/admin/layouts/component_custom_admin_menus/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_custom_admin_menus/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_custom_admin_menus/tweaks_above.php b/admin/layouts/component_custom_admin_menus/tweaks_above.php new file mode 100644 index 000000000..1b750b70c --- /dev/null +++ b/admin/layouts/component_custom_admin_menus/tweaks_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_custom_admin_menus/tweaks_fullwidth.php b/admin/layouts/component_custom_admin_menus/tweaks_fullwidth.php new file mode 100644 index 000000000..c98e5e184 --- /dev/null +++ b/admin/layouts/component_custom_admin_menus/tweaks_fullwidth.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'addcustommenus' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_custom_admin_views/index.html b/admin/layouts/component_custom_admin_views/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_custom_admin_views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_custom_admin_views/publishing.php b/admin/layouts/component_custom_admin_views/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_custom_admin_views/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_custom_admin_views/publlshing.php b/admin/layouts/component_custom_admin_views/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_custom_admin_views/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_custom_admin_views/views_above.php b/admin/layouts/component_custom_admin_views/views_above.php new file mode 100644 index 000000000..7f0e06a6e --- /dev/null +++ b/admin/layouts/component_custom_admin_views/views_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_custom_admin_views/views_fullwidth.php b/admin/layouts/component_custom_admin_views/views_fullwidth.php new file mode 100644 index 000000000..37aac05e2 --- /dev/null +++ b/admin/layouts/component_custom_admin_views/views_fullwidth.php @@ -0,0 +1,49 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_on_custom_admin_views', + 'addcustom_admin_views' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_dashboard/dashboard_above.php b/admin/layouts/component_dashboard/dashboard_above.php new file mode 100644 index 000000000..adaf71cd6 --- /dev/null +++ b/admin/layouts/component_dashboard/dashboard_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_dashboard/dashboard_fullwidth.php b/admin/layouts/component_dashboard/dashboard_fullwidth.php new file mode 100644 index 000000000..90f18534a --- /dev/null +++ b/admin/layouts/component_dashboard/dashboard_fullwidth.php @@ -0,0 +1,49 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'php_dashboard_methods', + 'dashboard_tab' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_dashboard/index.html b/admin/layouts/component_dashboard/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_dashboard/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_dashboard/publishing.php b/admin/layouts/component_dashboard/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_dashboard/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_dashboard/publlshing.php b/admin/layouts/component_dashboard/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_dashboard/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_files_folders/index.html b/admin/layouts/component_files_folders/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_files_folders/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_files_folders/publishing.php b/admin/layouts/component_files_folders/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_files_folders/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_files_folders/publlshing.php b/admin/layouts/component_files_folders/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_files_folders/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_files_folders/settings_above.php b/admin/layouts/component_files_folders/settings_above.php new file mode 100644 index 000000000..b91168962 --- /dev/null +++ b/admin/layouts/component_files_folders/settings_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_files_folders/settings_fullwidth.php b/admin/layouts/component_files_folders/settings_fullwidth.php new file mode 100644 index 000000000..d2938f435 --- /dev/null +++ b/admin/layouts/component_files_folders/settings_fullwidth.php @@ -0,0 +1,51 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_add_files', + 'addfiles', + 'note_add_folders', + 'addfolders' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_mysql_tweaks/index.html b/admin/layouts/component_mysql_tweaks/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_mysql_tweaks/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_mysql_tweaks/publishing.php b/admin/layouts/component_mysql_tweaks/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_mysql_tweaks/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_mysql_tweaks/publlshing.php b/admin/layouts/component_mysql_tweaks/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_mysql_tweaks/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_mysql_tweaks/tweaks_above.php b/admin/layouts/component_mysql_tweaks/tweaks_above.php new file mode 100644 index 000000000..1b750b70c --- /dev/null +++ b/admin/layouts/component_mysql_tweaks/tweaks_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_mysql_tweaks/tweaks_fullwidth.php b/admin/layouts/component_mysql_tweaks/tweaks_fullwidth.php new file mode 100644 index 000000000..4ee0aa915 --- /dev/null +++ b/admin/layouts/component_mysql_tweaks/tweaks_fullwidth.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'sql_tweak' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_site_views/index.html b/admin/layouts/component_site_views/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_site_views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_site_views/publishing.php b/admin/layouts/component_site_views/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_site_views/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_site_views/publlshing.php b/admin/layouts/component_site_views/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_site_views/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_site_views/views_above.php b/admin/layouts/component_site_views/views_above.php new file mode 100644 index 000000000..7f0e06a6e --- /dev/null +++ b/admin/layouts/component_site_views/views_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_site_views/views_fullwidth.php b/admin/layouts/component_site_views/views_fullwidth.php new file mode 100644 index 000000000..55e058760 --- /dev/null +++ b/admin/layouts/component_site_views/views_fullwidth.php @@ -0,0 +1,49 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_on_site_views', + 'addsite_views' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/component_updates/index.html b/admin/layouts/component_updates/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/layouts/component_updates/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/layouts/component_updates/publishing.php b/admin/layouts/component_updates/publishing.php new file mode 100644 index 000000000..52b4a6aef --- /dev/null +++ b/admin/layouts/component_updates/publishing.php @@ -0,0 +1,58 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'created', + 'created_by', + 'modified', + 'modified_by' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_updates/publlshing.php b/admin/layouts/component_updates/publlshing.php new file mode 100644 index 000000000..75dae3e32 --- /dev/null +++ b/admin/layouts/component_updates/publlshing.php @@ -0,0 +1,60 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$app = JFactory::getApplication(); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'published', + 'ordering', + 'access', + 'version', + 'hits', + 'id' +); + +$hiddenFields = $displayData->get('hidden_fields') ?: array(); + +foreach ($fields as $field) +{ + $field = is_array($field) ? $field : array($field); + foreach ($field as $f) + { + if ($form->getField($f)) + { + if (in_array($f, $hiddenFields)) + { + $form->setFieldAttribute($f, 'type', 'hidden'); + } + + echo $form->renderField($f); + break; + } + } +} diff --git a/admin/layouts/component_updates/updates_above.php b/admin/layouts/component_updates/updates_above.php new file mode 100644 index 000000000..d93223471 --- /dev/null +++ b/admin/layouts/component_updates/updates_above.php @@ -0,0 +1,41 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = array( + 'joomla_component' +); + +?> +
+ renderField($field); + } ?> +
diff --git a/admin/layouts/component_updates/updates_fullwidth.php b/admin/layouts/component_updates/updates_fullwidth.php new file mode 100644 index 000000000..e7d9808e8 --- /dev/null +++ b/admin/layouts/component_updates/updates_fullwidth.php @@ -0,0 +1,48 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'version_update' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/custom_admin_view/custom_buttons_fullwidth.php b/admin/layouts/custom_admin_view/custom_buttons_fullwidth.php index 4ed7ae1db..b37945efd 100644 --- a/admin/layouts/custom_admin_view/custom_buttons_fullwidth.php +++ b/admin/layouts/custom_admin_view/custom_buttons_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_fullwidth.php diff --git a/admin/layouts/custom_admin_view/custom_buttons_left.php b/admin/layouts/custom_admin_view/custom_buttons_left.php index 73038d319..c890d700a 100644 --- a/admin/layouts/custom_admin_view/custom_buttons_left.php +++ b/admin/layouts/custom_admin_view/custom_buttons_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_left.php diff --git a/admin/layouts/custom_admin_view/custom_script_fullwidth.php b/admin/layouts/custom_admin_view/custom_script_fullwidth.php index b09f47473..20b4e3b77 100644 --- a/admin/layouts/custom_admin_view/custom_script_fullwidth.php +++ b/admin/layouts/custom_admin_view/custom_script_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_script_fullwidth.php diff --git a/admin/layouts/custom_admin_view/details_above.php b/admin/layouts/custom_admin_view/details_above.php index ffa817969..25395856f 100644 --- a/admin/layouts/custom_admin_view/details_above.php +++ b/admin/layouts/custom_admin_view/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/custom_admin_view/details_fullwidth.php b/admin/layouts/custom_admin_view/details_fullwidth.php index 42895fb02..228b967bc 100644 --- a/admin/layouts/custom_admin_view/details_fullwidth.php +++ b/admin/layouts/custom_admin_view/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/custom_admin_view/details_left.php b/admin/layouts/custom_admin_view/details_left.php index e3dd9ff3d..10d006fec 100644 --- a/admin/layouts/custom_admin_view/details_left.php +++ b/admin/layouts/custom_admin_view/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/custom_admin_view/details_right.php b/admin/layouts/custom_admin_view/details_right.php index 84bc2ddfa..ada62b108 100644 --- a/admin/layouts/custom_admin_view/details_right.php +++ b/admin/layouts/custom_admin_view/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/custom_admin_view/details_rightside.php b/admin/layouts/custom_admin_view/details_rightside.php index c621bf841..79534a69b 100644 --- a/admin/layouts/custom_admin_view/details_rightside.php +++ b/admin/layouts/custom_admin_view/details_rightside.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_rightside.php diff --git a/admin/layouts/custom_admin_view/details_under.php b/admin/layouts/custom_admin_view/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/custom_admin_view/details_under.php +++ b/admin/layouts/custom_admin_view/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/custom_admin_view/linked_components_fullwidth.php b/admin/layouts/custom_admin_view/linked_components_fullwidth.php index 6af8b7d7b..9e5f5c4ba 100644 --- a/admin/layouts/custom_admin_view/linked_components_fullwidth.php +++ b/admin/layouts/custom_admin_view/linked_components_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage linked_components_fullwidth.php @@ -28,7 +28,7 @@ defined('_JEXEC') or die('Restricted access'); // set the defaults -$items = $displayData->vyjlinked_components; +$items = $displayData->vyflinked_components; $user = JFactory::getUser(); $id = $displayData->item->id; $edit = "index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit"; diff --git a/admin/layouts/custom_admin_view/publishing.php b/admin/layouts/custom_admin_view/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/custom_admin_view/publishing.php +++ b/admin/layouts/custom_admin_view/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/custom_admin_view/publlshing.php b/admin/layouts/custom_admin_view/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/custom_admin_view/publlshing.php +++ b/admin/layouts/custom_admin_view/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/custom_code/details_above.php b/admin/layouts/custom_code/details_above.php index ef45a5d29..080691500 100644 --- a/admin/layouts/custom_code/details_above.php +++ b/admin/layouts/custom_code/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/custom_code/details_fullwidth.php b/admin/layouts/custom_code/details_fullwidth.php index 706a28fee..06fb2d8de 100644 --- a/admin/layouts/custom_code/details_fullwidth.php +++ b/admin/layouts/custom_code/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/custom_code/details_left.php b/admin/layouts/custom_code/details_left.php index ca5ec488f..7d33fb337 100644 --- a/admin/layouts/custom_code/details_left.php +++ b/admin/layouts/custom_code/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/custom_code/details_right.php b/admin/layouts/custom_code/details_right.php index 0266742d6..f81a01e50 100644 --- a/admin/layouts/custom_code/details_right.php +++ b/admin/layouts/custom_code/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/custom_code/details_under.php b/admin/layouts/custom_code/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/custom_code/details_under.php +++ b/admin/layouts/custom_code/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/custom_code/publishing.php b/admin/layouts/custom_code/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/custom_code/publishing.php +++ b/admin/layouts/custom_code/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/custom_code/publlshing.php b/admin/layouts/custom_code/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/custom_code/publlshing.php +++ b/admin/layouts/custom_code/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/dynamic_get/abacus_fullwidth.php b/admin/layouts/dynamic_get/abacus_fullwidth.php index f042217f8..ba3c05388 100644 --- a/admin/layouts/dynamic_get/abacus_fullwidth.php +++ b/admin/layouts/dynamic_get/abacus_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage abacus_fullwidth.php diff --git a/admin/layouts/dynamic_get/abacus_left.php b/admin/layouts/dynamic_get/abacus_left.php index d7fc5fc04..44e969086 100644 --- a/admin/layouts/dynamic_get/abacus_left.php +++ b/admin/layouts/dynamic_get/abacus_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage abacus_left.php diff --git a/admin/layouts/dynamic_get/custom_script_fullwidth.php b/admin/layouts/dynamic_get/custom_script_fullwidth.php index f45ddabed..7fb87eedc 100644 --- a/admin/layouts/dynamic_get/custom_script_fullwidth.php +++ b/admin/layouts/dynamic_get/custom_script_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_script_fullwidth.php diff --git a/admin/layouts/dynamic_get/joint_fullwidth.php b/admin/layouts/dynamic_get/joint_fullwidth.php index 043c2b066..f568792fa 100644 --- a/admin/layouts/dynamic_get/joint_fullwidth.php +++ b/admin/layouts/dynamic_get/joint_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage joint_fullwidth.php diff --git a/admin/layouts/dynamic_get/main_above.php b/admin/layouts/dynamic_get/main_above.php index 1502231c4..67e20d9ed 100644 --- a/admin/layouts/dynamic_get/main_above.php +++ b/admin/layouts/dynamic_get/main_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage main_above.php diff --git a/admin/layouts/dynamic_get/main_fullwidth.php b/admin/layouts/dynamic_get/main_fullwidth.php index 5ef3f599b..7057a2b5c 100644 --- a/admin/layouts/dynamic_get/main_fullwidth.php +++ b/admin/layouts/dynamic_get/main_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage main_fullwidth.php diff --git a/admin/layouts/dynamic_get/main_left.php b/admin/layouts/dynamic_get/main_left.php index d8b7dacf2..c579b32c2 100644 --- a/admin/layouts/dynamic_get/main_left.php +++ b/admin/layouts/dynamic_get/main_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage main_left.php diff --git a/admin/layouts/dynamic_get/main_under.php b/admin/layouts/dynamic_get/main_under.php index ad795d111..61c9caf94 100644 --- a/admin/layouts/dynamic_get/main_under.php +++ b/admin/layouts/dynamic_get/main_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage main_under.php diff --git a/admin/layouts/dynamic_get/publishing.php b/admin/layouts/dynamic_get/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/dynamic_get/publishing.php +++ b/admin/layouts/dynamic_get/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/dynamic_get/publlshing.php b/admin/layouts/dynamic_get/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/dynamic_get/publlshing.php +++ b/admin/layouts/dynamic_get/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/dynamic_get/tweak_fullwidth.php b/admin/layouts/dynamic_get/tweak_fullwidth.php new file mode 100644 index 000000000..8ab96b9b5 --- /dev/null +++ b/admin/layouts/dynamic_get/tweak_fullwidth.php @@ -0,0 +1,51 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'filter', + 'where', + 'order', + 'global' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/field/details_fullwidth.php b/admin/layouts/field/details_fullwidth.php index bd418836e..48e7ebd52 100644 --- a/admin/layouts/field/details_fullwidth.php +++ b/admin/layouts/field/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/field/details_left.php b/admin/layouts/field/details_left.php index 2a831b85c..23ac9b4e8 100644 --- a/admin/layouts/field/details_left.php +++ b/admin/layouts/field/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/field/details_right.php b/admin/layouts/field/details_right.php index 92118b065..b4eae4a42 100644 --- a/admin/layouts/field/details_right.php +++ b/admin/layouts/field/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/field/details_under.php b/admin/layouts/field/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/field/details_under.php +++ b/admin/layouts/field/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/field/publishing.php b/admin/layouts/field/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/field/publishing.php +++ b/admin/layouts/field/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/field/publlshing.php b/admin/layouts/field/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/field/publlshing.php +++ b/admin/layouts/field/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/field/scripts_left.php b/admin/layouts/field/scripts_left.php index faef231f1..51c09ae74 100644 --- a/admin/layouts/field/scripts_left.php +++ b/admin/layouts/field/scripts_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage scripts_left.php diff --git a/admin/layouts/field/scripts_right.php b/admin/layouts/field/scripts_right.php index 7b6a560d8..80172e345 100644 --- a/admin/layouts/field/scripts_right.php +++ b/admin/layouts/field/scripts_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage scripts_right.php diff --git a/admin/layouts/fieldtype/details_fullwidth.php b/admin/layouts/fieldtype/details_fullwidth.php index e50421c6a..cc5e9bc23 100644 --- a/admin/layouts/fieldtype/details_fullwidth.php +++ b/admin/layouts/fieldtype/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/fieldtype/details_left.php b/admin/layouts/fieldtype/details_left.php index dd5e4f101..7f8ba79c1 100644 --- a/admin/layouts/fieldtype/details_left.php +++ b/admin/layouts/fieldtype/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/fieldtype/details_right.php b/admin/layouts/fieldtype/details_right.php index 1526f9ce9..09eaaedfc 100644 --- a/admin/layouts/fieldtype/details_right.php +++ b/admin/layouts/fieldtype/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/fieldtype/fields_fullwidth.php b/admin/layouts/fieldtype/fields_fullwidth.php index 7eb782aa3..93c1f6dd6 100644 --- a/admin/layouts/fieldtype/fields_fullwidth.php +++ b/admin/layouts/fieldtype/fields_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields_fullwidth.php @@ -28,7 +28,7 @@ defined('_JEXEC') or die('Restricted access'); // set the defaults -$items = $displayData->wabfields; +$items = $displayData->vzxfields; $user = JFactory::getUser(); $id = $displayData->item->id; $edit = "index.php?option=com_componentbuilder&view=fields&task=field.edit"; diff --git a/admin/layouts/fieldtype/publishing.php b/admin/layouts/fieldtype/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/fieldtype/publishing.php +++ b/admin/layouts/fieldtype/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/fieldtype/publlshing.php b/admin/layouts/fieldtype/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/fieldtype/publlshing.php +++ b/admin/layouts/fieldtype/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/ftp/details_above.php b/admin/layouts/ftp/details_above.php index 7d540e2ac..c0c6d1b4f 100644 --- a/admin/layouts/ftp/details_above.php +++ b/admin/layouts/ftp/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/ftp/details_fullwidth.php b/admin/layouts/ftp/details_fullwidth.php index 2dc447b47..eee24f4d1 100644 --- a/admin/layouts/ftp/details_fullwidth.php +++ b/admin/layouts/ftp/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/ftp/linked_components_fullwidth.php b/admin/layouts/ftp/linked_components_fullwidth.php index 6e6fa70c4..072c70535 100644 --- a/admin/layouts/ftp/linked_components_fullwidth.php +++ b/admin/layouts/ftp/linked_components_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage linked_components_fullwidth.php @@ -28,7 +28,7 @@ defined('_JEXEC') or die('Restricted access'); // set the defaults -$items = $displayData->waclinked_components; +$items = $displayData->vzylinked_components; $user = JFactory::getUser(); $id = $displayData->item->id; $edit = "index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit"; diff --git a/admin/layouts/ftp/publishing.php b/admin/layouts/ftp/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/ftp/publishing.php +++ b/admin/layouts/ftp/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/ftp/publlshing.php b/admin/layouts/ftp/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/ftp/publlshing.php +++ b/admin/layouts/ftp/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/help_document/details_above.php b/admin/layouts/help_document/details_above.php index 6e0b3e702..0fe6f74e6 100644 --- a/admin/layouts/help_document/details_above.php +++ b/admin/layouts/help_document/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/help_document/details_fullwidth.php b/admin/layouts/help_document/details_fullwidth.php index 89873da41..8a06a618f 100644 --- a/admin/layouts/help_document/details_fullwidth.php +++ b/admin/layouts/help_document/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/help_document/details_left.php b/admin/layouts/help_document/details_left.php index 6f08771d4..1aba4dfa8 100644 --- a/admin/layouts/help_document/details_left.php +++ b/admin/layouts/help_document/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/help_document/details_right.php b/admin/layouts/help_document/details_right.php index a151296ff..63ce3aa9e 100644 --- a/admin/layouts/help_document/details_right.php +++ b/admin/layouts/help_document/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/help_document/details_under.php b/admin/layouts/help_document/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/help_document/details_under.php +++ b/admin/layouts/help_document/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/help_document/publishing.php b/admin/layouts/help_document/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/help_document/publishing.php +++ b/admin/layouts/help_document/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/help_document/publlshing.php b/admin/layouts/help_document/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/help_document/publlshing.php +++ b/admin/layouts/help_document/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/joomla_component/admin_views_fullwidth.php b/admin/layouts/joomla_component/admin_views_fullwidth.php index 9c50173f8..af53ce2dc 100644 --- a/admin/layouts/joomla_component/admin_views_fullwidth.php +++ b/admin/layouts/joomla_component/admin_views_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_views_fullwidth.php @@ -27,106 +27,23 @@ defined('_JEXEC') or die('Restricted access'); -// set the defaults -$items = $displayData->vwnadmin_views; -$user = JFactory::getUser(); -$id = $displayData->item->id; -$edit = "index.php?option=com_componentbuilder&view=admin_views&task=admin_view.edit"; -$ref = ($id) ? "&ref=joomla_component&refid=".$id : ""; -$new = "index.php?option=com_componentbuilder&view=admin_view&layout=edit".$ref; -$can = ComponentbuilderHelper::getActions('admin_view'); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_on_admin_views', + 'note_display_component_admin_views' +); ?>
-get('admin_view.create')): ?> -

- - - - - - - - - - - - - - - $item): ?> - authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0; - $userChkOut = JFactory::getUser($item->checked_out); - $canDo = ComponentbuilderHelper::getActions('admin_view',$item,'admin_views'); - ?> - - - - - - published == 1):?> - - published == 0):?> - - published == 2):?> - - published == -2):?> - - - - - - -
- - - - - - - - - - - -
- get('admin_view.edit')): ?> - escape($item->system_name); ?> - checked_out): ?> - name, $item->checked_out_time, 'admin_views.', $canCheckin); ?> - - -
escape($item->system_name); ?>
- -
- escape($item->name_single); ?> - - escape($item->name_list); ?> - - escape($item->short_description); ?> - - - - - - - - - - - - - - - - - - id; ?> -
- -
- -
- + +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+
diff --git a/admin/layouts/joomla_component/custom_admin_views_fullwidth.php b/admin/layouts/joomla_component/custom_admin_views_fullwidth.php index 5c4b748ec..1e6db5859 100644 --- a/admin/layouts/joomla_component/custom_admin_views_fullwidth.php +++ b/admin/layouts/joomla_component/custom_admin_views_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_admin_views_fullwidth.php @@ -27,112 +27,23 @@ defined('_JEXEC') or die('Restricted access'); -// set the defaults -$items = $displayData->vwocustom_admin_views; -$user = JFactory::getUser(); -$id = $displayData->item->id; -$edit = "index.php?option=com_componentbuilder&view=custom_admin_views&task=custom_admin_view.edit"; -$ref = ($id) ? "&ref=joomla_component&refid=".$id : ""; -$new = "index.php?option=com_componentbuilder&view=custom_admin_view&layout=edit".$ref; -$can = ComponentbuilderHelper::getActions('custom_admin_view'); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_on_custom_admin_views', + 'note_display_component_custom_admin_views' +); ?>
-get('core.create')): ?> -

- - - - - - - - - - - - - - - - $item): ?> - authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0; - $userChkOut = JFactory::getUser($item->checked_out); - $canDo = ComponentbuilderHelper::getActions('custom_admin_view',$item,'custom_admin_views'); - ?> - - - - - - - published == 1):?> - - published == 0):?> - - published == 2):?> - - published == -2):?> - - - - - - -
- - - - - - - - - - - - - -
- get('core.edit')): ?> - escape($item->system_name); ?> - checked_out): ?> - name, $item->checked_out_time, 'custom_admin_views.', $canCheckin); ?> - - -
escape($item->system_name); ?>
- -
- escape($item->name); ?> - - escape($item->codename); ?> - - escape($item->description); ?> - - escape($item->snippet_name); ?> - - - - - - - - - - - - - - - - - - id; ?> -
- -
- -
- + +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+
diff --git a/admin/layouts/joomla_component/details_above.php b/admin/layouts/joomla_component/details_above.php index ffa817969..25395856f 100644 --- a/admin/layouts/joomla_component/details_above.php +++ b/admin/layouts/joomla_component/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/joomla_component/details_left.php b/admin/layouts/joomla_component/details_left.php index 7167bb433..29ebd4e7f 100644 --- a/admin/layouts/joomla_component/details_left.php +++ b/admin/layouts/joomla_component/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php @@ -33,7 +33,6 @@ $fields = $displayData->get('fields') ?: array( 'name', 'name_code', 'component_version', - 'version_update', 'debug_linenr', 'add_placeholders', 'mvc_versiondate', diff --git a/admin/layouts/joomla_component/details_right.php b/admin/layouts/joomla_component/details_right.php index 9583175ee..6479bdd70 100644 --- a/admin/layouts/joomla_component/details_right.php +++ b/admin/layouts/joomla_component/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/joomla_component/details_under.php b/admin/layouts/joomla_component/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/joomla_component/details_under.php +++ b/admin/layouts/joomla_component/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/joomla_component/dynamic_build_beta_fullwidth.php b/admin/layouts/joomla_component/dynamic_build_beta_fullwidth.php index beae7b187..ba4cda8b0 100644 --- a/admin/layouts/joomla_component/dynamic_build_beta_fullwidth.php +++ b/admin/layouts/joomla_component/dynamic_build_beta_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage dynamic_build_beta_fullwidth.php diff --git a/admin/layouts/joomla_component/dynamic_integration_fullwidth.php b/admin/layouts/joomla_component/dynamic_integration_fullwidth.php index 28133986c..e04af82ab 100644 --- a/admin/layouts/joomla_component/dynamic_integration_fullwidth.php +++ b/admin/layouts/joomla_component/dynamic_integration_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage dynamic_integration_fullwidth.php diff --git a/admin/layouts/joomla_component/libs_helpers_fullwidth.php b/admin/layouts/joomla_component/libs_helpers_fullwidth.php index 14b6442b6..371d1047e 100644 --- a/admin/layouts/joomla_component/libs_helpers_fullwidth.php +++ b/admin/layouts/joomla_component/libs_helpers_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage libs_helpers_fullwidth.php diff --git a/admin/layouts/joomla_component/metadata.php b/admin/layouts/joomla_component/metadata.php index 2d0743ff7..05e5cd336 100644 --- a/admin/layouts/joomla_component/metadata.php +++ b/admin/layouts/joomla_component/metadata.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage metadata.php diff --git a/admin/layouts/joomla_component/mysql_fullwidth.php b/admin/layouts/joomla_component/mysql_fullwidth.php index d1c3cd4a5..992e28d23 100644 --- a/admin/layouts/joomla_component/mysql_fullwidth.php +++ b/admin/layouts/joomla_component/mysql_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage mysql_fullwidth.php diff --git a/admin/layouts/joomla_component/php_fullwidth.php b/admin/layouts/joomla_component/php_fullwidth.php index 9f2d24859..a60078303 100644 --- a/admin/layouts/joomla_component/php_fullwidth.php +++ b/admin/layouts/joomla_component/php_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage php_fullwidth.php @@ -30,9 +30,6 @@ defined('_JEXEC') or die('Restricted access'); $form = $displayData->getForm(); $fields = $displayData->get('fields') ?: array( - 'add_php_dashboard_methods', - 'php_dashboard_methods', - 'dashboard_tab', 'add_php_preflight_install', 'php_preflight_install', 'add_php_preflight_update', diff --git a/admin/layouts/dynamic_get/main_right.php b/admin/layouts/joomla_component/php_left.php similarity index 92% rename from admin/layouts/dynamic_get/main_right.php rename to admin/layouts/joomla_component/php_left.php index bfbef98a4..74f81d73e 100644 --- a/admin/layouts/dynamic_get/main_right.php +++ b/admin/layouts/joomla_component/php_left.php @@ -10,11 +10,11 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder - @subpackage main_right.php + @subpackage php_left.php @author Llewellyn van der Merwe @copyright Copyright (C) 2015. All Rights Reserved @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html @@ -30,10 +30,7 @@ defined('_JEXEC') or die('Restricted access'); $form = $displayData->getForm(); $fields = $displayData->get('fields') ?: array( - 'filter', - 'where', - 'order', - 'global' + 'note_botton_component_dashboard' ); $hiddenFields = $displayData->get('hidden_fields') ?: array(); diff --git a/admin/layouts/joomla_component/publishing.php b/admin/layouts/joomla_component/publishing.php index 513a80cc6..b2481d0d5 100644 --- a/admin/layouts/joomla_component/publishing.php +++ b/admin/layouts/joomla_component/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/joomla_component/readme_left.php b/admin/layouts/joomla_component/readme_left.php index fe0ac2509..50a61187d 100644 --- a/admin/layouts/joomla_component/readme_left.php +++ b/admin/layouts/joomla_component/readme_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage readme_left.php diff --git a/admin/layouts/joomla_component/readme_right.php b/admin/layouts/joomla_component/readme_right.php index d8eab7cd4..474a93edf 100644 --- a/admin/layouts/joomla_component/readme_right.php +++ b/admin/layouts/joomla_component/readme_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage readme_right.php diff --git a/admin/layouts/joomla_component/settings_fullwidth.php b/admin/layouts/joomla_component/settings_fullwidth.php new file mode 100644 index 000000000..fe07247d7 --- /dev/null +++ b/admin/layouts/joomla_component/settings_fullwidth.php @@ -0,0 +1,52 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file + +defined('_JEXEC') or die('Restricted access'); + +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'spacer_hr_d', + 'note_on_contributors', + 'addcontributors', + 'emptycontributors', + 'number' +); + +?> +
+ +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+ +
diff --git a/admin/layouts/joomla_component/settings_left.php b/admin/layouts/joomla_component/settings_left.php index 5a0264a99..f564d52bd 100644 --- a/admin/layouts/joomla_component/settings_left.php +++ b/admin/layouts/joomla_component/settings_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage settings_left.php @@ -30,19 +30,13 @@ defined('_JEXEC') or die('Restricted access'); $form = $displayData->getForm(); $fields = $displayData->get('fields') ?: array( - 'note_on_views', - 'addadmin_views', - 'addcustom_admin_views', - 'addsite_views', + 'note_moved_views', 'spacer_hr_a', 'note_mysql_tweak_options', - 'sql_tweak', 'spacer_hr_b', 'note_add_custom_menus', - 'addcustommenus', 'spacer_hr_c', - 'note_add_config', - 'addconfig' + 'note_add_config' ); $hiddenFields = $displayData->get('hidden_fields') ?: array(); diff --git a/admin/layouts/joomla_component/settings_right.php b/admin/layouts/joomla_component/settings_right.php index fc6c6e915..bc33d2691 100644 --- a/admin/layouts/joomla_component/settings_right.php +++ b/admin/layouts/joomla_component/settings_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage settings_right.php @@ -30,20 +30,11 @@ defined('_JEXEC') or die('Restricted access'); $form = $displayData->getForm(); $fields = $displayData->get('fields') ?: array( - 'note_on_contributors', - 'addcontributors', - 'emptycontributors', - 'number', - 'spacer_hr_d', - 'note_add_files', - 'addfiles', + 'note_component_files_folders', 'spacer_hr_e', - 'note_add_folders', - 'addfolders', - 'spacer_hr_f', 'to_ignore_note', 'toignore', - 'spacer_hr_g', + 'spacer_hr_f', 'jcb_export_package_note', 'export_key', 'export_package_link', diff --git a/admin/layouts/joomla_component/site_views_fullwidth.php b/admin/layouts/joomla_component/site_views_fullwidth.php index 01e56d019..3a35739e6 100644 --- a/admin/layouts/joomla_component/site_views_fullwidth.php +++ b/admin/layouts/joomla_component/site_views_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage site_views_fullwidth.php @@ -27,112 +27,23 @@ defined('_JEXEC') or die('Restricted access'); -// set the defaults -$items = $displayData->vwpsite_views; -$user = JFactory::getUser(); -$id = $displayData->item->id; -$edit = "index.php?option=com_componentbuilder&view=site_views&task=site_view.edit"; -$ref = ($id) ? "&ref=joomla_component&refid=".$id : ""; -$new = "index.php?option=com_componentbuilder&view=site_view&layout=edit".$ref; -$can = ComponentbuilderHelper::getActions('site_view'); +$form = $displayData->getForm(); + +$fields = $displayData->get('fields') ?: array( + 'note_on_site_views', + 'note_display_component_site_views' +); ?>
-get('core.create')): ?> -

- - - - - - - - - - - - - - - - $item): ?> - authorise('core.manage', 'com_checkin') || $item->checked_out == $user->id || $item->checked_out == 0; - $userChkOut = JFactory::getUser($item->checked_out); - $canDo = ComponentbuilderHelper::getActions('site_view',$item,'site_views'); - ?> - - - - - - - published == 1):?> - - published == 0):?> - - published == 2):?> - - published == -2):?> - - - - - - -
- - - - - - - - - - - - - -
- get('core.edit')): ?> - escape($item->system_name); ?> - checked_out): ?> - name, $item->checked_out_time, 'site_views.', $canCheckin); ?> - - -
escape($item->system_name); ?>
- -
- escape($item->name); ?> - - escape($item->codename); ?> - - escape($item->description); ?> - - escape($item->snippet_name); ?> - - - - - - - - - - - - - - - - - - id; ?> -
- -
- -
- + +
+
+ getLabel($field); ?> +
+
+ getInput($field); ?> +
+
+
diff --git a/admin/layouts/joomla_component/translation_fullwidth.php b/admin/layouts/joomla_component/translation_fullwidth.php index 02764dd84..7173338c0 100644 --- a/admin/layouts/joomla_component/translation_fullwidth.php +++ b/admin/layouts/joomla_component/translation_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage translation_fullwidth.php @@ -28,7 +28,7 @@ defined('_JEXEC') or die('Restricted access'); // set the defaults -$items = $displayData->vwqtranslation; +$items = $displayData->vwmtranslation; $user = JFactory::getUser(); $id = $displayData->item->id; $edit = "index.php?option=com_componentbuilder&view=language_translations&task=language_translation.edit"; diff --git a/admin/layouts/language/details_left.php b/admin/layouts/language/details_left.php index ebe358b01..dd94c721b 100644 --- a/admin/layouts/language/details_left.php +++ b/admin/layouts/language/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/language/details_right.php b/admin/layouts/language/details_right.php index 9a97a17d9..2fbb0bc09 100644 --- a/admin/layouts/language/details_right.php +++ b/admin/layouts/language/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/language/publishing.php b/admin/layouts/language/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/language/publishing.php +++ b/admin/layouts/language/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/language/publlshing.php b/admin/layouts/language/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/language/publlshing.php +++ b/admin/layouts/language/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/language_translation/details_fullwidth.php b/admin/layouts/language_translation/details_fullwidth.php index 36c5447db..b4236da98 100644 --- a/admin/layouts/language_translation/details_fullwidth.php +++ b/admin/layouts/language_translation/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php @@ -31,7 +31,8 @@ $form = $displayData->getForm(); $fields = $displayData->get('fields') ?: array( 'entranslation', - 'translation' + 'translation', + 'components' ); ?> diff --git a/admin/layouts/language_translation/publishing.php b/admin/layouts/language_translation/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/language_translation/publishing.php +++ b/admin/layouts/language_translation/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/language_translation/publlshing.php b/admin/layouts/language_translation/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/language_translation/publlshing.php +++ b/admin/layouts/language_translation/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/layout/custom_script_fullwidth.php b/admin/layouts/layout/custom_script_fullwidth.php index 333d7d39e..d0a64a2d9 100644 --- a/admin/layouts/layout/custom_script_fullwidth.php +++ b/admin/layouts/layout/custom_script_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_script_fullwidth.php diff --git a/admin/layouts/layout/details_fullwidth.php b/admin/layouts/layout/details_fullwidth.php index 116f87e03..59507f70d 100644 --- a/admin/layouts/layout/details_fullwidth.php +++ b/admin/layouts/layout/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/layout/details_left.php b/admin/layouts/layout/details_left.php index b119c651b..ff4336cc6 100644 --- a/admin/layouts/layout/details_left.php +++ b/admin/layouts/layout/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/layout/details_right.php b/admin/layouts/layout/details_right.php index e6c089bcf..ff29cd7be 100644 --- a/admin/layouts/layout/details_right.php +++ b/admin/layouts/layout/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/layout/details_rightside.php b/admin/layouts/layout/details_rightside.php index cac9521c1..7b1498578 100644 --- a/admin/layouts/layout/details_rightside.php +++ b/admin/layouts/layout/details_rightside.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_rightside.php diff --git a/admin/layouts/layout/details_under.php b/admin/layouts/layout/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/layout/details_under.php +++ b/admin/layouts/layout/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/layout/publishing.php b/admin/layouts/layout/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/layout/publishing.php +++ b/admin/layouts/layout/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/layout/publlshing.php b/admin/layouts/layout/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/layout/publlshing.php +++ b/admin/layouts/layout/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/site_view/custom_buttons_fullwidth.php b/admin/layouts/site_view/custom_buttons_fullwidth.php index 834511c0b..c2fc10078 100644 --- a/admin/layouts/site_view/custom_buttons_fullwidth.php +++ b/admin/layouts/site_view/custom_buttons_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_fullwidth.php diff --git a/admin/layouts/site_view/custom_buttons_left.php b/admin/layouts/site_view/custom_buttons_left.php index ecdffacd0..a7a8b78c0 100644 --- a/admin/layouts/site_view/custom_buttons_left.php +++ b/admin/layouts/site_view/custom_buttons_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_left.php diff --git a/admin/layouts/site_view/custom_buttons_right.php b/admin/layouts/site_view/custom_buttons_right.php index 9c5cea47c..0898cbe9d 100644 --- a/admin/layouts/site_view/custom_buttons_right.php +++ b/admin/layouts/site_view/custom_buttons_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_buttons_right.php diff --git a/admin/layouts/site_view/details_above.php b/admin/layouts/site_view/details_above.php index ffa817969..25395856f 100644 --- a/admin/layouts/site_view/details_above.php +++ b/admin/layouts/site_view/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/site_view/details_fullwidth.php b/admin/layouts/site_view/details_fullwidth.php index 42895fb02..228b967bc 100644 --- a/admin/layouts/site_view/details_fullwidth.php +++ b/admin/layouts/site_view/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/site_view/details_left.php b/admin/layouts/site_view/details_left.php index e3dd9ff3d..10d006fec 100644 --- a/admin/layouts/site_view/details_left.php +++ b/admin/layouts/site_view/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/site_view/details_right.php b/admin/layouts/site_view/details_right.php index e6c089bcf..ff29cd7be 100644 --- a/admin/layouts/site_view/details_right.php +++ b/admin/layouts/site_view/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/site_view/details_rightside.php b/admin/layouts/site_view/details_rightside.php index c621bf841..79534a69b 100644 --- a/admin/layouts/site_view/details_rightside.php +++ b/admin/layouts/site_view/details_rightside.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_rightside.php diff --git a/admin/layouts/site_view/details_under.php b/admin/layouts/site_view/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/site_view/details_under.php +++ b/admin/layouts/site_view/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/site_view/javascript_css_fullwidth.php b/admin/layouts/site_view/javascript_css_fullwidth.php index ce73c636d..e969f0a8f 100644 --- a/admin/layouts/site_view/javascript_css_fullwidth.php +++ b/admin/layouts/site_view/javascript_css_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage javascript_css_fullwidth.php diff --git a/admin/layouts/site_view/linked_components_fullwidth.php b/admin/layouts/site_view/linked_components_fullwidth.php index 837b676d2..9ed760576 100644 --- a/admin/layouts/site_view/linked_components_fullwidth.php +++ b/admin/layouts/site_view/linked_components_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage linked_components_fullwidth.php @@ -28,7 +28,7 @@ defined('_JEXEC') or die('Restricted access'); // set the defaults -$items = $displayData->vyulinked_components; +$items = $displayData->vyqlinked_components; $user = JFactory::getUser(); $id = $displayData->item->id; $edit = "index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit"; diff --git a/admin/layouts/site_view/php_fullwidth.php b/admin/layouts/site_view/php_fullwidth.php index 410cc1fb5..cce13b5d2 100644 --- a/admin/layouts/site_view/php_fullwidth.php +++ b/admin/layouts/site_view/php_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage php_fullwidth.php diff --git a/admin/layouts/site_view/publishing.php b/admin/layouts/site_view/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/site_view/publishing.php +++ b/admin/layouts/site_view/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/site_view/publlshing.php b/admin/layouts/site_view/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/site_view/publlshing.php +++ b/admin/layouts/site_view/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/snippet/details_above.php b/admin/layouts/snippet/details_above.php index 75ea7ba00..3ac87c81c 100644 --- a/admin/layouts/snippet/details_above.php +++ b/admin/layouts/snippet/details_above.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_above.php diff --git a/admin/layouts/snippet/details_left.php b/admin/layouts/snippet/details_left.php index 0bfe35fdf..85ade4c9c 100644 --- a/admin/layouts/snippet/details_left.php +++ b/admin/layouts/snippet/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/snippet/details_right.php b/admin/layouts/snippet/details_right.php index b4da72885..7b496986b 100644 --- a/admin/layouts/snippet/details_right.php +++ b/admin/layouts/snippet/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/snippet/publishing.php b/admin/layouts/snippet/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/snippet/publishing.php +++ b/admin/layouts/snippet/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/snippet/publlshing.php b/admin/layouts/snippet/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/snippet/publlshing.php +++ b/admin/layouts/snippet/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/layouts/template/custom_script_fullwidth.php b/admin/layouts/template/custom_script_fullwidth.php index 333d7d39e..d0a64a2d9 100644 --- a/admin/layouts/template/custom_script_fullwidth.php +++ b/admin/layouts/template/custom_script_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage custom_script_fullwidth.php diff --git a/admin/layouts/template/details_fullwidth.php b/admin/layouts/template/details_fullwidth.php index 03e6b7da2..198cb1fde 100644 --- a/admin/layouts/template/details_fullwidth.php +++ b/admin/layouts/template/details_fullwidth.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_fullwidth.php diff --git a/admin/layouts/template/details_left.php b/admin/layouts/template/details_left.php index b119c651b..ff4336cc6 100644 --- a/admin/layouts/template/details_left.php +++ b/admin/layouts/template/details_left.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_left.php diff --git a/admin/layouts/template/details_right.php b/admin/layouts/template/details_right.php index e6c089bcf..ff29cd7be 100644 --- a/admin/layouts/template/details_right.php +++ b/admin/layouts/template/details_right.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_right.php diff --git a/admin/layouts/template/details_rightside.php b/admin/layouts/template/details_rightside.php index cac9521c1..7b1498578 100644 --- a/admin/layouts/template/details_rightside.php +++ b/admin/layouts/template/details_rightside.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_rightside.php diff --git a/admin/layouts/template/details_under.php b/admin/layouts/template/details_under.php index 271a1eaad..93779f414 100644 --- a/admin/layouts/template/details_under.php +++ b/admin/layouts/template/details_under.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage details_under.php diff --git a/admin/layouts/template/publishing.php b/admin/layouts/template/publishing.php index cf5052244..52b4a6aef 100644 --- a/admin/layouts/template/publishing.php +++ b/admin/layouts/template/publishing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publishing.php diff --git a/admin/layouts/template/publlshing.php b/admin/layouts/template/publlshing.php index b58ff4143..75dae3e32 100644 --- a/admin/layouts/template/publlshing.php +++ b/admin/layouts/template/publlshing.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage publlshing.php diff --git a/admin/models/admin_fields.php b/admin/models/admin_fields.php index 6578a1abb..67e5ff043 100644 --- a/admin/models/admin_fields.php +++ b/admin/models/admin_fields.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields.php @@ -812,6 +812,16 @@ class ComponentbuilderModelAdmin_fields extends JModelAdmin $data['metadata'] = (string) $metadata; } + if (isset($data['addfields']) && ComponentbuilderHelper::checkArray($data['addfields'])) + { + // Sort fields by 'Tab' ASC, 'Alignment' ASC, 'Order in Edit' ASC + usort($data['addfields'], function ($a, $b) { + $val_a = sprintf('%02u', $a['tab']) . sprintf('%02u', $a['alignment']) . sprintf('%03u', $a['order_edit']); + $val_b = sprintf('%02u', $b['tab']) . sprintf('%02u', $b['alignment']) . sprintf('%03u', $b['order_edit']); + return strcmp($val_a, $val_b); + }); + } + // Set the addfields items to data. if (isset($data['addfields']) && is_array($data['addfields'])) { diff --git a/admin/models/admin_fields_conditions.php b/admin/models/admin_fields_conditions.php index 5cad61656..f90445b97 100644 --- a/admin/models/admin_fields_conditions.php +++ b/admin/models/admin_fields_conditions.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields_conditions.php diff --git a/admin/models/admin_view.php b/admin/models/admin_view.php index f67e2639d..b390697f8 100644 --- a/admin/models/admin_view.php +++ b/admin/models/admin_view.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 202 of this MVC - @build 21st October, 2017 + @version @update number 228 of this MVC + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_view.php @@ -370,95 +370,32 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin // update the fields $objectUpdate = new stdClass(); $objectUpdate->id = (int) $item->id; - // check what type of linked_views array we have here (should be subform... but just incase) - // This could happen due to huge data sets - if (isset($item->addlinked_views) && isset($item->addlinked_views['adminview'])) + // repeatable values to check + $arrayChecker = array( + 'addlinked_views' => 'adminview', + 'ajax_input' => 'value_name', + 'custom_button' => 'name', + 'addpermissions' => 'action', + 'addtables' => 'table', + 'addtabs' => 'name' + ); + foreach ($arrayChecker as $_value => $checker) { - $bucket = array(); - foreach($item->addlinked_views as $option => $values) + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) { - foreach($values as $nr => $value) + $bucket = array(); + foreach($item->{$_value} as $option => $values) { - $bucket['addlinked_views'.$nr][$option] = $value; + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); } - $item->addlinked_views = $bucket; - $objectUpdate->addconditions = json_encode($bucket); - } - // check what type of ajax_input array we have here (should be subform... but just incase) - // This could happen due to huge data sets - if (isset($item->ajax_input) && isset($item->ajax_input['value_name'])) - { - $bucket = array(); - foreach($item->ajax_input as $option => $values) - { - foreach($values as $nr => $value) - { - $bucket['ajax_input'.$nr][$option] = $value; - } - } - $item->ajax_input = $bucket; - $objectUpdate->ajax_input = json_encode($bucket); - } - // check what type of custom_button array we have here (should be subform... but just incase) - // This could happen due to huge data sets - if (isset($item->custom_button) && isset($item->custom_button['name'])) - { - $bucket = array(); - foreach($item->custom_button as $option => $values) - { - foreach($values as $nr => $value) - { - $bucket['custom_button'.$nr][$option] = $value; - } - } - $item->custom_button = $bucket; - $objectUpdate->custom_button = json_encode($bucket); - } - // check what type of permissions array we have here (should be subform... but just incase) - // This could happen due to huge data sets - if (isset($item->addpermissions) && isset($item->addpermissions['action'])) - { - $bucket = array(); - foreach($item->addpermissions as $option => $values) - { - foreach($values as $nr => $value) - { - $bucket['addpermissions'.$nr][$option] = $value; - } - } - $item->addpermissions = $bucket; - $objectUpdate->addpermissions = json_encode($bucket); - } - // check what type of table array we have here (should be subform... but just incase) - // This could happen due to huge data sets - if (isset($item->addtables) && isset($item->addtables['table'])) - { - $bucket = array(); - foreach($item->addtables as $option => $values) - { - foreach($values as $nr => $value) - { - $bucket['addtables'.$nr][$option] = $value; - } - } - $item->addtables = $bucket; - $objectUpdate->addtables = json_encode($bucket); - } - // check what type of tabs array we have here (should be subform... but just incase) - // This could happen due to huge data sets - if (isset($item->addtabs) && isset($item->addtabs['name'])) - { - $bucket = array(); - foreach($item->addtabs as $option => $values) - { - foreach($values as $nr => $value) - { - $bucket['addtabs'.$nr][$option] = $value; - } - } - $item->addtabs = $bucket; - $objectUpdate->addtabs = json_encode($bucket); } // be sure to update the table if we found repeatable fields that are still not converted if (count((array) $objectUpdate) > 1) @@ -472,7 +409,7 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin $item->tags->getTagIds($item->id, 'com_componentbuilder.admin_view'); } } - $this->addadmin_viewsvvvz = $item->id; + $this->addadmin_viewsvvvw = $item->id; return $item; } @@ -482,7 +419,7 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin * * @return mixed An array of data items on success, false on failure. */ - public function getVxzlinked_components() + public function getVxvlinked_components() { // Get the user object. $user = JFactory::getUser(); @@ -539,15 +476,15 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin } } - // Filter by addadmin_viewsvvvz in this Repetable Field - if (ComponentbuilderHelper::checkArray($items) && isset($this->addadmin_viewsvvvz)) + // Filter by addadmin_viewsvvvw in this Repetable Field + if (ComponentbuilderHelper::checkArray($items) && isset($this->addadmin_viewsvvvw)) { foreach ($items as $nr => &$item) { if (isset($item->addadmin_views) && ComponentbuilderHelper::checkJson($item->addadmin_views)) { $tmpArray = json_decode($item->addadmin_views,true); - if (!isset($tmpArray['adminview']) || !ComponentbuilderHelper::checkArray($tmpArray['adminview']) || !in_array($this->addadmin_viewsvvvz, $tmpArray['adminview'])) + if (!isset($tmpArray['adminview']) || !ComponentbuilderHelper::checkArray($tmpArray['adminview']) || !in_array($this->addadmin_viewsvvvw, $tmpArray['adminview'])) { unset($items[$nr]); continue; @@ -880,24 +817,23 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin return false; } - // we must also delete the linked admin fields and admin fields conditions + // we must also delete the linked tables found if (ComponentbuilderHelper::checkArray($pks)) { - // get the linked IDs - if ($fields = ComponentbuilderHelper::getVars('admin_fields', $pks, 'admin_view', 'id')) + $_tablesArray = array( + 'admin_fields', + 'admin_fields_conditions' + ); + foreach($_tablesArray as $_updateTable) { - // load the model - $fieldModel = ComponentbuilderHelper::getModel('admin_fields'); - // delete the linked field - $fieldModel->delete($fields); - } - // get the linked IDs - if ($conditions = ComponentbuilderHelper::getVars('admin_fields_conditions', $pks, 'admin_view', 'id')) - { - // load the model - $conditionModel = ComponentbuilderHelper::getModel('admin_fields_conditions'); - // delete the linked field - $conditionModel->delete($conditions); + // get the linked IDs + if ($_pks = ComponentbuilderHelper::getVars($_updateTable, $pks, 'admin_view', 'id')) + { + // load the model + $_Model = ComponentbuilderHelper::getModel($_updateTable); + // change publish state + $_Model->delete($_pks); + } } } @@ -921,24 +857,23 @@ class ComponentbuilderModelAdmin_view extends JModelAdmin return false; } - // we must also delete the linked admin fields and admin fields conditions + // we must also update all linked tables if (ComponentbuilderHelper::checkArray($pks)) { - // get the linked IDs - if ($fields = ComponentbuilderHelper::getVars('admin_fields', $pks, 'admin_view', 'id')) + $_tablesArray = array( + 'admin_fields', + 'admin_fields_conditions' + ); + foreach($_tablesArray as $_updateTable) { - // load the model - $fieldModel = ComponentbuilderHelper::getModel('admin_fields'); - // change publish state - $fieldModel->publish($fields, $value); - } - // get the linked IDs - if ($conditions = ComponentbuilderHelper::getVars('admin_fields_conditions', $pks, 'admin_view', 'id')) - { - // load the model - $conditionModel = ComponentbuilderHelper::getModel('admin_fields_conditions'); - // change publish state - $conditionModel->publish($conditions, $value); + // get the linked IDs + if ($_pks = ComponentbuilderHelper::getVars($_updateTable, $pks, 'admin_view', 'id')) + { + // load the model + $_Model = ComponentbuilderHelper::getModel($_updateTable); + // change publish state + $_Model->publish($_pks, $value); + } } } diff --git a/admin/models/admin_views.php b/admin/models/admin_views.php index eda940c7d..7fd5f3575 100644 --- a/admin/models/admin_views.php +++ b/admin/models/admin_views.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 202 of this MVC - @build 21st October, 2017 + @version @update number 228 of this MVC + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage admin_views.php diff --git a/admin/models/admins_fields.php b/admin/models/admins_fields.php index c87b2bfa0..5801d2ed1 100644 --- a/admin/models/admins_fields.php +++ b/admin/models/admins_fields.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admins_fields.php diff --git a/admin/models/admins_fields_conditions.php b/admin/models/admins_fields_conditions.php index 72ea7266c..9e0d74f41 100644 --- a/admin/models/admins_fields_conditions.php +++ b/admin/models/admins_fields_conditions.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 16th October, 2017 + @build 25th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admins_fields_conditions.php diff --git a/admin/models/ajax.php b/admin/models/ajax.php index f591cdd30..3abb785b6 100644 --- a/admin/models/ajax.php +++ b/admin/models/ajax.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage ajax.php @@ -214,6 +214,15 @@ class ComponentbuilderModelAjax extends JModelList 'admin_fields' => 'admins_fields', 'admin_fields_conditions' => 'admins_fields_conditions', 'field' => 'fields', + 'component_admin_views' => 'components_admin_views' , + 'component_site_views' => 'components_site_views', + 'component_custom_admin_views' => 'components_custom_views', + 'component_updates' => 'components_updates', + 'component_mysql_tweaks' => 'components_mysql_tweaks', + 'component_custom_admin_menus' => 'components_custom_admin_menus', + 'component_config' => 'components_config', + 'component_dashboard' => 'components_dashboard', + 'component_files_folders' => 'components_files_folders', 'language' => true); public function getButton($type) @@ -329,6 +338,7 @@ class ComponentbuilderModelAjax extends JModelList } protected $functionArray = array( + // Admin View 'field' => 'setFieldsNames', 'list' => 'setYesNo', 'title' => 'setYesNo', @@ -345,7 +355,26 @@ class ComponentbuilderModelAjax extends JModelList 'target_relation' => 'setTargetRelation', 'match_field' => 'setFieldsNames', 'match_behavior' => 'setMatchBehavior', - 'match_options' => 'setMatchOptions'); + 'match_options' => 'setMatchOptions', + // Joomla Component + 'menu' => 'setYesNo', + 'metadata' => 'setYesNo', + 'default_view' => 'setYesNo', + 'access' => 'setYesNo', + 'mainmenu' => 'setYesNo', + 'dashboard_list' => 'setYesNo', + 'submenu' => 'setYesNo', + 'dashboard_add' => 'setYesNo', + 'checkin' => 'setYesNo', + 'history' => 'setYesNo', + 'port' => 'setYesNo', + 'edit_create_site_view' => 'setYesNo', + 'customadminview' => 'setCustomadminviewNames', + 'adminviews' => 'setAdminviewNames', + 'adminview' => 'setAdminviewNames', + 'siteview' => 'setSiteviewNames', + 'icomoon' => 'setIcoMoon', + 'before' => 'setAdminviewNames'); protected function getSubformTable($idName, $data) { @@ -455,9 +484,12 @@ class ComponentbuilderModelAjax extends JModelList protected $ref; protected $fieldsArray = array( 'admin_fields' => 'addfields', - 'admin_fields_conditions' => 'addconditions'); + 'admin_fields_conditions' => 'addconditions', + 'component_admin_views' => 'addadmin_views', + 'component_site_views' => 'addsite_views', + 'component_custom_admin_views' => 'addcustom_admin_views'); - public function getFieldsDisplay($type) + public function getAjaxDisplay($type) { if (isset($this->fieldsArray[$type])) { @@ -466,23 +498,23 @@ class ComponentbuilderModelAjax extends JModelList // get the view name & id $values = $this->getViewID(); // check if we are in the correct view. - if (!is_null($values['a_id']) && $values['a_id'] > 0 && strlen($values['a_view']) && $values['a_view'] === 'admin_view') + if (!is_null($values['a_id']) && $values['a_id'] > 0 && strlen($values['a_view']) && ($values['a_view'] === 'admin_view' || $values['a_view'] === 'joomla_component')) { - $this->ref = '&ref=admin_view&refid=' . $values['a_id']; + $this->ref = '&ref=' . $values['a_view'] . '&refid=' . $values['a_id']; // get the field data - if ($fieldsData = ComponentbuilderHelper::getVar($type, (int) $values['a_id'], 'admin_view', $this->fieldsArray[$type])) + if ($fieldsData = ComponentbuilderHelper::getVar($type, (int) $values['a_id'], $values['a_view'], $this->fieldsArray[$type])) { // check repeatable conversion - $this->checkRepeatableConversion($fieldsData, $type, $values['a_id']); + $this->checkRepeatableConversion($fieldsData, $type, $values['a_id'], $values['a_view']); // get the table $table = $this->getSubformTable($type, $fieldsData); // set notice of bad practice $notice = ''; - if (isset($this->rowNumber) && $this->rowNumber > 50) + if ($values['a_view'] === 'admin_view' && isset($this->rowNumber) && $this->rowNumber > 50) { $notice = '
' . JText::sprintf('COM_COMPONENTBUILDER_YOU_HAVE_S_S_ADDING_MORE_THEN_FIFTY_S_IS_CONSIDERED_BAD_PRACTICE_YOUR_S_PAGE_LOAD_IN_JCB_WILL_SLOWDOWN_YOU_SHOULD_CONSIDER_DECOUPLING_SOME_OF_THESE_S', $this->rowNumber, $typeName, $typeName, $typeName, $typeName) . '
'; } - elseif (isset($this->rowNumber)) + elseif ($values['a_view'] === 'admin_view' && isset($this->rowNumber)) { $notice = '
' . JText::sprintf('COM_COMPONENTBUILDER_YOU_HAVE_S_S_ADDING_MORE_THEN_FIFTY_S_IS_CONSIDERED_BAD_PRACTICE', $this->rowNumber, $typeName, $typeName) . '
'; } @@ -497,9 +529,16 @@ class ComponentbuilderModelAjax extends JModelList protected $conversionCheck = array( 'addfields' => 'field', - 'addconditions' => 'target_field'); + 'addconditions' => 'target_field', + 'addadmin_views' => 'adminview', + 'addconfig' => 'field', + 'addcustom_admin_views' => 'customadminview', + 'addcustommenus' => 'name', + 'addsite_views' => 'siteview', + 'sql_tweak' => 'adminview', + 'version_update' => 'version'); - protected function checkRepeatableConversion(&$fieldsData, $type, $id) + protected function checkRepeatableConversion(&$fieldsData, $type, $id, $linked_id_name) { if (ComponentbuilderHelper::checkJson($fieldsData)) { @@ -517,13 +556,22 @@ class ComponentbuilderModelAjax extends JModelList $fieldsData = json_encode($bucket); // update the fields $objectUpdate = new stdClass(); - $objectUpdate->admin_view = (int) $id; + $objectUpdate->{$linked_id_name} = (int) $id; $objectUpdate->{$this->fieldsArray[$type]} = $fieldsData; JFactory::getDbo()->updateObject('#__componentbuilder_'.$type, $objectUpdate, 'admin_view'); } } } + protected function setIcoMoon($header, $value) + { + if (ComponentbuilderHelper::checkString($value)) + { + return ''; + } + return '-'; + } + protected function setAlignmentName($header, $value) { switch ($value) @@ -553,6 +601,120 @@ class ComponentbuilderModelAjax extends JModelList return JText::_('COM_COMPONENTBUILDER_NOT_SET'); } + protected $customadminviewNames = array(); + + protected function setCustomadminviewNames($header, $value) + { + $bucket = array(); + if (ComponentbuilderHelper::checkArray($value)) + { + foreach ($value as $view) + { + if (!isset($this->customadminviewNames[$view])) + { + if (!$this->customadminviewNames[$view] = ComponentbuilderHelper::getVar('custom_admin_view', (int) $view, 'id', 'system_name')) + { + $this->customadminviewNames[$view] = JText::_('COM_COMPONENTBUILDER_NO_CUSTOM_ADMIN_VIEW_FOUND'); + } + } + $bucket[] = $this->customadminviewNames[$view] . $this->addEditLink($value, 'custom_admin_view', 'custom_admin_views'); + } + } + elseif (is_numeric($value)) + { + if (!isset($this->customadminviewNames[$value])) + { + if (!$this->customadminviewNames[$value] = ComponentbuilderHelper::getVar('custom_admin_view', (int) $value, 'id', 'system_name')) + { + $this->customadminviewNames[$value] = JText::_('COM_COMPONENTBUILDER_NO_CUSTOM_ADMIN_VIEW_FOUND'); + } + } + $bucket[] = $this->customadminviewNames[$value] . $this->addEditLink($value, 'custom_admin_view', 'custom_admin_views'); + } + // return found fields + if (ComponentbuilderHelper::checkArray($bucket)) + { + return implode('
', $bucket); + } + return JText::_('COM_COMPONENTBUILDER_NO_CUSTOM_ADMIN_VIEW_FOUND'); + } + + protected $adminviewNames = array(); + + protected function setAdminviewNames($header, $value) + { + $bucket = array(); + if (ComponentbuilderHelper::checkArray($value)) + { + foreach ($value as $view) + { + if (!isset($this->adminviewNames[$view])) + { + if (!$this->adminviewNames[$view] = ComponentbuilderHelper::getVar('admin_view', (int) $view, 'id', 'system_name')) + { + $this->adminviewNames[$view] = JText::_('COM_COMPONENTBUILDER_NO_ADMIN_VIEW_FOUND'); + } + } + $bucket[] = $this->adminviewNames[$view] . $this->addEditLink($value, 'admin_view', 'admin_views'); + } + } + elseif (is_numeric($value)) + { + if (!isset($this->adminviewNames[$value])) + { + if (!$this->adminviewNames[$value] = ComponentbuilderHelper::getVar('admin_view', (int) $value, 'id', 'system_name')) + { + $this->adminviewNames[$value] = JText::_('COM_COMPONENTBUILDER_NO_ADMIN_VIEW_FOUND'); + } + } + $bucket[] = $this->adminviewNames[$value] . $this->addEditLink($value, 'admin_view', 'admin_views'); + } + // return found fields + if (ComponentbuilderHelper::checkArray($bucket)) + { + return implode('
', $bucket); + } + return JText::_('COM_COMPONENTBUILDER_NO_ADMIN_VIEW_FOUND'); + } + + protected $siteviewNames = array(); + + protected function setSiteviewNames($header, $value) + { + $bucket = array(); + if (ComponentbuilderHelper::checkArray($value)) + { + foreach ($value as $view) + { + if (!isset($this->siteviewNames[$view])) + { + if (!$this->siteviewNames[$view] = ComponentbuilderHelper::getVar('site_view', (int) $view, 'id', 'system_name')) + { + $this->siteviewNames[$view] = JText::_('COM_COMPONENTBUILDER_NO_SITE_VIEW_FOUND'); + } + } + $bucket[] = $this->siteviewNames[$view] . $this->addEditLink($value, 'site_view', 'site_views'); + } + } + elseif (is_numeric($value)) + { + if (!isset($this->siteviewNames[$value])) + { + if (!$this->siteviewNames[$value] = ComponentbuilderHelper::getVar('site_view', (int) $value, 'id', 'system_name')) + { + $this->siteviewNames[$value] = JText::_('COM_COMPONENTBUILDER_NO_SITE_VIEW_FOUND'); + } + } + $bucket[] = $this->siteviewNames[$value] . $this->addEditLink($value, 'site_view', 'site_views'); + } + // return found fields + if (ComponentbuilderHelper::checkArray($bucket)) + { + return implode('
', $bucket); + } + return JText::_('COM_COMPONENTBUILDER_NO_SITE_VIEW_FOUND'); + } + protected $fieldNames = array(); protected function setFieldsNames($header, $value) @@ -619,6 +781,11 @@ class ComponentbuilderModelAjax extends JModelList protected function setTabName($header, $value) { + // return published if set to 15 (since this is the default number for it) + if (15 == $value) + { + return JText::_('COM_COMPONENTBUILDER_PUBLISHING'); + } if (!ComponentbuilderHelper::checkArray($this->tabNames)) { // get the view name & id diff --git a/admin/models/component_admin_views.php b/admin/models/component_admin_views.php new file mode 100644 index 000000000..bcd921fe1 --- /dev/null +++ b/admin/models/component_admin_views.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_admin_views Model + */ +class ComponentbuilderModelComponent_admin_views extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_admin_views'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_admin_views', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->addadmin_views)) + { + // Convert the addadmin_views field to an array. + $addadmin_views = new Registry; + $addadmin_views->loadString($item->addadmin_views); + $item->addadmin_views = $addadmin_views->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'addadmin_views' => 'adminview' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_admin_views', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_admin_views'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_admin_views', 'component_admin_views', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_admin_views.edit.state', 'com_componentbuilder.component_admin_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_admin_views.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_admin_views.edit.created_by', 'com_componentbuilder.component_admin_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_admin_views.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_admin_views.edit.created', 'com_componentbuilder.component_admin_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_admin_views.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_admin_views.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_admin_views.delete', 'com_componentbuilder.component_admin_views.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_admin_views.edit.state', 'com_componentbuilder.component_admin_views.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_admin_views.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_admin_views.edit', 'com_componentbuilder.component_admin_views.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_admin_views.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_admin_views')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_admin_views.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_admin_views'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_admin_views'); + } + + if (!$this->canDo->get('component_admin_views.create') && !$this->canDo->get('component_admin_views.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_admin_views.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_admin_views.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_admin_views'); + } + + if (!$this->canDo->get('component_admin_views.edit') && !$this->canDo->get('component_admin_views.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_admin_views.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_admin_views.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the addadmin_views items to data. + if (isset($data['addadmin_views']) && is_array($data['addadmin_views'])) + { + $addadmin_views = new JRegistry; + $addadmin_views->loadArray($data['addadmin_views']); + $data['addadmin_views'] = (string) $addadmin_views; + } + elseif (!isset($data['addadmin_views'])) + { + // Set the empty addadmin_views to data + $data['addadmin_views'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_config.php b/admin/models/component_config.php new file mode 100644 index 000000000..ef4cc0e54 --- /dev/null +++ b/admin/models/component_config.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_config Model + */ +class ComponentbuilderModelComponent_config extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_config'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_config', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->addconfig)) + { + // Convert the addconfig field to an array. + $addconfig = new Registry; + $addconfig->loadString($item->addconfig); + $item->addconfig = $addconfig->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'addconfig' => 'field' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_config', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_config'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_config', 'component_config', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_config.edit.state', 'com_componentbuilder.component_config.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_config.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_config.edit.created_by', 'com_componentbuilder.component_config.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_config.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_config.edit.created', 'com_componentbuilder.component_config.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_config.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_config.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_config.delete', 'com_componentbuilder.component_config.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_config.edit.state', 'com_componentbuilder.component_config.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_config.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_config.edit', 'com_componentbuilder.component_config.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_config.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_config')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_config.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_config'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_config'); + } + + if (!$this->canDo->get('component_config.create') && !$this->canDo->get('component_config.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_config.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_config.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_config'); + } + + if (!$this->canDo->get('component_config.edit') && !$this->canDo->get('component_config.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_config.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_config.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the addconfig items to data. + if (isset($data['addconfig']) && is_array($data['addconfig'])) + { + $addconfig = new JRegistry; + $addconfig->loadArray($data['addconfig']); + $data['addconfig'] = (string) $addconfig; + } + elseif (!isset($data['addconfig'])) + { + // Set the empty addconfig to data + $data['addconfig'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_custom_admin_menus.php b/admin/models/component_custom_admin_menus.php new file mode 100644 index 000000000..6bd8b14f3 --- /dev/null +++ b/admin/models/component_custom_admin_menus.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_custom_admin_menus Model + */ +class ComponentbuilderModelComponent_custom_admin_menus extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_custom_admin_menus'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_custom_admin_menus', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->addcustommenus)) + { + // Convert the addcustommenus field to an array. + $addcustommenus = new Registry; + $addcustommenus->loadString($item->addcustommenus); + $item->addcustommenus = $addcustommenus->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'addcustommenus' => 'name' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_custom_admin_menus', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_custom_admin_menus'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_custom_admin_menus', 'component_custom_admin_menus', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_custom_admin_menus.edit.state', 'com_componentbuilder.component_custom_admin_menus.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_custom_admin_menus.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_custom_admin_menus.edit.created_by', 'com_componentbuilder.component_custom_admin_menus.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_custom_admin_menus.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_custom_admin_menus.edit.created', 'com_componentbuilder.component_custom_admin_menus.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_custom_admin_menus.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_custom_admin_menus.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_custom_admin_menus.delete', 'com_componentbuilder.component_custom_admin_menus.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_custom_admin_menus.edit.state', 'com_componentbuilder.component_custom_admin_menus.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_custom_admin_menus.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_custom_admin_menus.edit', 'com_componentbuilder.component_custom_admin_menus.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_custom_admin_menus.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_custom_admin_menus')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_custom_admin_menus.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_menus'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_menus'); + } + + if (!$this->canDo->get('component_custom_admin_menus.create') && !$this->canDo->get('component_custom_admin_menus.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_custom_admin_menus.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_custom_admin_menus.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_menus'); + } + + if (!$this->canDo->get('component_custom_admin_menus.edit') && !$this->canDo->get('component_custom_admin_menus.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_custom_admin_menus.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_custom_admin_menus.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the addcustommenus items to data. + if (isset($data['addcustommenus']) && is_array($data['addcustommenus'])) + { + $addcustommenus = new JRegistry; + $addcustommenus->loadArray($data['addcustommenus']); + $data['addcustommenus'] = (string) $addcustommenus; + } + elseif (!isset($data['addcustommenus'])) + { + // Set the empty addcustommenus to data + $data['addcustommenus'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_custom_admin_views.php b/admin/models/component_custom_admin_views.php new file mode 100644 index 000000000..f7bc8bc11 --- /dev/null +++ b/admin/models/component_custom_admin_views.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_custom_admin_views Model + */ +class ComponentbuilderModelComponent_custom_admin_views extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_custom_admin_views'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_custom_admin_views', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->addcustom_admin_views)) + { + // Convert the addcustom_admin_views field to an array. + $addcustom_admin_views = new Registry; + $addcustom_admin_views->loadString($item->addcustom_admin_views); + $item->addcustom_admin_views = $addcustom_admin_views->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'addcustom_admin_views' => 'customadminview' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_custom_admin_views', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_custom_admin_views'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_custom_admin_views', 'component_custom_admin_views', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_custom_admin_views.edit.state', 'com_componentbuilder.component_custom_admin_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_custom_admin_views.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_custom_admin_views.edit.created_by', 'com_componentbuilder.component_custom_admin_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_custom_admin_views.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_custom_admin_views.edit.created', 'com_componentbuilder.component_custom_admin_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_custom_admin_views.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_custom_admin_views.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_custom_admin_views.delete', 'com_componentbuilder.component_custom_admin_views.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_custom_admin_views.edit.state', 'com_componentbuilder.component_custom_admin_views.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_custom_admin_views.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_custom_admin_views.edit', 'com_componentbuilder.component_custom_admin_views.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_custom_admin_views.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_custom_admin_views')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_custom_admin_views.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_views'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_views'); + } + + if (!$this->canDo->get('component_custom_admin_views.create') && !$this->canDo->get('component_custom_admin_views.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_custom_admin_views.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_custom_admin_views.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_views'); + } + + if (!$this->canDo->get('component_custom_admin_views.edit') && !$this->canDo->get('component_custom_admin_views.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_custom_admin_views.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_custom_admin_views.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the addcustom_admin_views items to data. + if (isset($data['addcustom_admin_views']) && is_array($data['addcustom_admin_views'])) + { + $addcustom_admin_views = new JRegistry; + $addcustom_admin_views->loadArray($data['addcustom_admin_views']); + $data['addcustom_admin_views'] = (string) $addcustom_admin_views; + } + elseif (!isset($data['addcustom_admin_views'])) + { + // Set the empty addcustom_admin_views to data + $data['addcustom_admin_views'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_dashboard.php b/admin/models/component_dashboard.php new file mode 100644 index 000000000..e9a7ef2ae --- /dev/null +++ b/admin/models/component_dashboard.php @@ -0,0 +1,925 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_dashboard Model + */ +class ComponentbuilderModelComponent_dashboard extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_dashboard'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_dashboard', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->dashboard_tab)) + { + // Convert the dashboard_tab field to an array. + $dashboard_tab = new Registry; + $dashboard_tab->loadString($item->dashboard_tab); + $item->dashboard_tab = $dashboard_tab->toArray(); + } + + if (!empty($item->php_dashboard_methods)) + { + // base64 Decode php_dashboard_methods. + $item->php_dashboard_methods = base64_decode($item->php_dashboard_methods); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'dashboard_tab' => 'name' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_dashboard', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_dashboard'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_dashboard', 'component_dashboard', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_dashboard.edit.state', 'com_componentbuilder.component_dashboard.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_dashboard.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_dashboard.edit.created_by', 'com_componentbuilder.component_dashboard.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_dashboard.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_dashboard.edit.created', 'com_componentbuilder.component_dashboard.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_dashboard.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_dashboard.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_dashboard.delete', 'com_componentbuilder.component_dashboard.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_dashboard.edit.state', 'com_componentbuilder.component_dashboard.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_dashboard.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_dashboard.edit', 'com_componentbuilder.component_dashboard.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_dashboard.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_dashboard')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_dashboard.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_dashboard'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_dashboard'); + } + + if (!$this->canDo->get('component_dashboard.create') && !$this->canDo->get('component_dashboard.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_dashboard.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_dashboard.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_dashboard'); + } + + if (!$this->canDo->get('component_dashboard.edit') && !$this->canDo->get('component_dashboard.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_dashboard.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_dashboard.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the dashboard_tab items to data. + if (isset($data['dashboard_tab']) && is_array($data['dashboard_tab'])) + { + $dashboard_tab = new JRegistry; + $dashboard_tab->loadArray($data['dashboard_tab']); + $data['dashboard_tab'] = (string) $dashboard_tab; + } + elseif (!isset($data['dashboard_tab'])) + { + // Set the empty dashboard_tab to data + $data['dashboard_tab'] = ''; + } + + // Set the php_dashboard_methods string to base64 string. + if (isset($data['php_dashboard_methods'])) + { + $data['php_dashboard_methods'] = base64_encode($data['php_dashboard_methods']); + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_files_folders.php b/admin/models/component_files_folders.php new file mode 100644 index 000000000..9c76d6b96 --- /dev/null +++ b/admin/models/component_files_folders.php @@ -0,0 +1,935 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_files_folders Model + */ +class ComponentbuilderModelComponent_files_folders extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_files_folders'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_files_folders', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->addfiles)) + { + // Convert the addfiles field to an array. + $addfiles = new Registry; + $addfiles->loadString($item->addfiles); + $item->addfiles = $addfiles->toArray(); + } + + if (!empty($item->addfolders)) + { + // Convert the addfolders field to an array. + $addfolders = new Registry; + $addfolders->loadString($item->addfolders); + $item->addfolders = $addfolders->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'addfiles' => 'file', + 'addfolders' => 'folder' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_files_folders', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_files_folders'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_files_folders', 'component_files_folders', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_files_folders.edit.state', 'com_componentbuilder.component_files_folders.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_files_folders.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_files_folders.edit.created_by', 'com_componentbuilder.component_files_folders.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_files_folders.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_files_folders.edit.created', 'com_componentbuilder.component_files_folders.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_files_folders.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_files_folders.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_files_folders.delete', 'com_componentbuilder.component_files_folders.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_files_folders.edit.state', 'com_componentbuilder.component_files_folders.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_files_folders.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_files_folders.edit', 'com_componentbuilder.component_files_folders.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_files_folders.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_files_folders')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_files_folders.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_files_folders'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_files_folders'); + } + + if (!$this->canDo->get('component_files_folders.create') && !$this->canDo->get('component_files_folders.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_files_folders.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_files_folders.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_files_folders'); + } + + if (!$this->canDo->get('component_files_folders.edit') && !$this->canDo->get('component_files_folders.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_files_folders.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_files_folders.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the addfiles items to data. + if (isset($data['addfiles']) && is_array($data['addfiles'])) + { + $addfiles = new JRegistry; + $addfiles->loadArray($data['addfiles']); + $data['addfiles'] = (string) $addfiles; + } + elseif (!isset($data['addfiles'])) + { + // Set the empty addfiles to data + $data['addfiles'] = ''; + } + + // Set the addfolders items to data. + if (isset($data['addfolders']) && is_array($data['addfolders'])) + { + $addfolders = new JRegistry; + $addfolders->loadArray($data['addfolders']); + $data['addfolders'] = (string) $addfolders; + } + elseif (!isset($data['addfolders'])) + { + // Set the empty addfolders to data + $data['addfolders'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_mysql_tweaks.php b/admin/models/component_mysql_tweaks.php new file mode 100644 index 000000000..8091e1c34 --- /dev/null +++ b/admin/models/component_mysql_tweaks.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_mysql_tweaks Model + */ +class ComponentbuilderModelComponent_mysql_tweaks extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_mysql_tweaks'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_mysql_tweaks', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->sql_tweak)) + { + // Convert the sql_tweak field to an array. + $sql_tweak = new Registry; + $sql_tweak->loadString($item->sql_tweak); + $item->sql_tweak = $sql_tweak->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'sql_tweak' => 'adminview' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_mysql_tweaks', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_mysql_tweaks'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_mysql_tweaks', 'component_mysql_tweaks', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_mysql_tweaks.edit.state', 'com_componentbuilder.component_mysql_tweaks.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_mysql_tweaks.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_mysql_tweaks.edit.created_by', 'com_componentbuilder.component_mysql_tweaks.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_mysql_tweaks.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_mysql_tweaks.edit.created', 'com_componentbuilder.component_mysql_tweaks.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_mysql_tweaks.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_mysql_tweaks.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_mysql_tweaks.delete', 'com_componentbuilder.component_mysql_tweaks.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_mysql_tweaks.edit.state', 'com_componentbuilder.component_mysql_tweaks.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_mysql_tweaks.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_mysql_tweaks.edit', 'com_componentbuilder.component_mysql_tweaks.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_mysql_tweaks.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_mysql_tweaks')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_mysql_tweaks.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_mysql_tweaks'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_mysql_tweaks'); + } + + if (!$this->canDo->get('component_mysql_tweaks.create') && !$this->canDo->get('component_mysql_tweaks.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_mysql_tweaks.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_mysql_tweaks.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_mysql_tweaks'); + } + + if (!$this->canDo->get('component_mysql_tweaks.edit') && !$this->canDo->get('component_mysql_tweaks.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_mysql_tweaks.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_mysql_tweaks.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the sql_tweak items to data. + if (isset($data['sql_tweak']) && is_array($data['sql_tweak'])) + { + $sql_tweak = new JRegistry; + $sql_tweak->loadArray($data['sql_tweak']); + $data['sql_tweak'] = (string) $sql_tweak; + } + elseif (!isset($data['sql_tweak'])) + { + // Set the empty sql_tweak to data + $data['sql_tweak'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_site_views.php b/admin/models/component_site_views.php new file mode 100644 index 000000000..19536ad67 --- /dev/null +++ b/admin/models/component_site_views.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_site_views Model + */ +class ComponentbuilderModelComponent_site_views extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_site_views'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_site_views', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->addsite_views)) + { + // Convert the addsite_views field to an array. + $addsite_views = new Registry; + $addsite_views->loadString($item->addsite_views); + $item->addsite_views = $addsite_views->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'addsite_views' => 'siteview' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_site_views', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_site_views'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_site_views', 'component_site_views', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_site_views.edit.state', 'com_componentbuilder.component_site_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_site_views.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_site_views.edit.created_by', 'com_componentbuilder.component_site_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_site_views.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_site_views.edit.created', 'com_componentbuilder.component_site_views.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_site_views.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_site_views.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_site_views.delete', 'com_componentbuilder.component_site_views.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_site_views.edit.state', 'com_componentbuilder.component_site_views.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_site_views.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_site_views.edit', 'com_componentbuilder.component_site_views.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_site_views.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_site_views')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_site_views.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_site_views'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_site_views'); + } + + if (!$this->canDo->get('component_site_views.create') && !$this->canDo->get('component_site_views.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_site_views.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_site_views.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_site_views'); + } + + if (!$this->canDo->get('component_site_views.edit') && !$this->canDo->get('component_site_views.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_site_views.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_site_views.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the addsite_views items to data. + if (isset($data['addsite_views']) && is_array($data['addsite_views'])) + { + $addsite_views = new JRegistry; + $addsite_views->loadArray($data['addsite_views']); + $data['addsite_views'] = (string) $addsite_views; + } + elseif (!isset($data['addsite_views'])) + { + // Set the empty addsite_views to data + $data['addsite_views'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/component_updates.php b/admin/models/component_updates.php new file mode 100644 index 000000000..d14c64245 --- /dev/null +++ b/admin/models/component_updates.php @@ -0,0 +1,913 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +use Joomla\Registry\Registry; + +// import Joomla modelform library +jimport('joomla.application.component.modeladmin'); + +/** + * Componentbuilder Component_updates Model + */ +class ComponentbuilderModelComponent_updates extends JModelAdmin +{ + /** + * @var string The prefix to use with controller messages. + * @since 1.6 + */ + protected $text_prefix = 'COM_COMPONENTBUILDER'; + + /** + * The type alias for this content type. + * + * @var string + * @since 3.2 + */ + public $typeAlias = 'com_componentbuilder.component_updates'; + + /** + * Returns a Table object, always creating it + * + * @param type $type The table type to instantiate + * @param string $prefix A prefix for the table class name. Optional. + * @param array $config Configuration array for model. Optional. + * + * @return JTable A database object + * + * @since 1.6 + */ + public function getTable($type = 'component_updates', $prefix = 'ComponentbuilderTable', $config = array()) + { + return JTable::getInstance($type, $prefix, $config); + } + + /** + * Method to get a single record. + * + * @param integer $pk The id of the primary key. + * + * @return mixed Object on success, false on failure. + * + * @since 1.6 + */ + public function getItem($pk = null) + { + if ($item = parent::getItem($pk)) + { + if (!empty($item->params)) + { + // Convert the params field to an array. + $registry = new Registry; + $registry->loadString($item->params); + $item->params = $registry->toArray(); + } + + if (!empty($item->metadata)) + { + // Convert the metadata field to an array. + $registry = new Registry; + $registry->loadString($item->metadata); + $item->metadata = $registry->toArray(); + } + + if (!empty($item->version_update)) + { + // Convert the version_update field to an array. + $version_update = new Registry; + $version_update->loadString($item->version_update); + $item->version_update = $version_update->toArray(); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'version_update' => 'version' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_component_updates', $objectUpdate, 'id'); + } + + if (!empty($item->id)) + { + $item->tags = new JHelperTags; + $item->tags->getTagIds($item->id, 'com_componentbuilder.component_updates'); + } + } + + return $item; + } + + /** + * Method to get the record form. + * + * @param array $data Data for the form. + * @param boolean $loadData True if the form is to load its own data (default case), false if not. + * + * @return mixed A JForm object on success, false on failure + * + * @since 1.6 + */ + public function getForm($data = array(), $loadData = true) + { + // Get the form. + $form = $this->loadForm('com_componentbuilder.component_updates', 'component_updates', array('control' => 'jform', 'load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + $jinput = JFactory::getApplication()->input; + + // The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. + if ($jinput->get('a_id')) + { + $id = $jinput->get('a_id', 0, 'INT'); + } + // The back end uses id so we use that the rest of the time and set it to 0 by default. + else + { + $id = $jinput->get('id', 0, 'INT'); + } + + $user = JFactory::getUser(); + + // Check for existing item. + // Modify the form based on Edit State access controls. + if ($id != 0 && (!$user->authorise('component_updates.edit.state', 'com_componentbuilder.component_updates.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_updates.edit.state', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('ordering', 'disabled', 'true'); + $form->setFieldAttribute('published', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('ordering', 'filter', 'unset'); + $form->setFieldAttribute('published', 'filter', 'unset'); + } + // If this is a new item insure the greated by is set. + if (0 == $id) + { + // Set the created_by to this user + $form->setValue('created_by', null, $user->id); + } + // Modify the form based on Edit Creaded By access controls. + if ($id != 0 && (!$user->authorise('component_updates.edit.created_by', 'com_componentbuilder.component_updates.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_updates.edit.created_by', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created_by', 'disabled', 'true'); + // Disable fields for display. + $form->setFieldAttribute('created_by', 'readonly', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created_by', 'filter', 'unset'); + } + // Modify the form based on Edit Creaded Date access controls. + if ($id != 0 && (!$user->authorise('component_updates.edit.created', 'com_componentbuilder.component_updates.' . (int) $id)) + || ($id == 0 && !$user->authorise('component_updates.edit.created', 'com_componentbuilder'))) + { + // Disable fields for display. + $form->setFieldAttribute('created', 'disabled', 'true'); + // Disable fields while saving. + $form->setFieldAttribute('created', 'filter', 'unset'); + } + // Only load these values if no id is found + if (0 == $id) + { + // Set redirected field name + $redirectedField = $jinput->get('ref', null, 'STRING'); + // Set redirected field value + $redirectedValue = $jinput->get('refid', 0, 'INT'); + if (0 != $redirectedValue && $redirectedField) + { + // Now set the local-redirected field default value + $form->setValue($redirectedField, null, $redirectedValue); + } + } + + return $form; + } + + /** + * Method to get the script that have to be included on the form + * + * @return string script files + */ + public function getScript() + { + return 'administrator/components/com_componentbuilder/models/forms/component_updates.js'; + } + + /** + * Method to test whether a record can be deleted. + * + * @param object $record A record object. + * + * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canDelete($record) + { + if (!empty($record->id)) + { + if ($record->published != -2) + { + return; + } + + $user = JFactory::getUser(); + // The record has been set. Check the record permissions. + return $user->authorise('component_updates.delete', 'com_componentbuilder.component_updates.' . (int) $record->id); + } + return false; + } + + /** + * Method to test whether a record can have its state edited. + * + * @param object $record A record object. + * + * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. + * + * @since 1.6 + */ + protected function canEditState($record) + { + $user = JFactory::getUser(); + $recordId = (!empty($record->id)) ? $record->id : 0; + + if ($recordId) + { + // The record has been set. Check the record permissions. + $permission = $user->authorise('component_updates.edit.state', 'com_componentbuilder.component_updates.' . (int) $recordId); + if (!$permission && !is_null($permission)) + { + return false; + } + } + // In the absense of better information, revert to the component permissions. + return $user->authorise('component_updates.edit.state', 'com_componentbuilder'); + } + + /** + * Method override to check if you can edit an existing record. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * @since 2.5 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Check specific edit permission then general edit permission. + $user = JFactory::getUser(); + + return $user->authorise('component_updates.edit', 'com_componentbuilder.component_updates.'. ((int) isset($data[$key]) ? $data[$key] : 0)) or $user->authorise('component_updates.edit', 'com_componentbuilder'); + } + + /** + * Prepare and sanitise the table data prior to saving. + * + * @param JTable $table A JTable object. + * + * @return void + * + * @since 1.6 + */ + protected function prepareTable($table) + { + $date = JFactory::getDate(); + $user = JFactory::getUser(); + + if (isset($table->name)) + { + $table->name = htmlspecialchars_decode($table->name, ENT_QUOTES); + } + + if (isset($table->alias) && empty($table->alias)) + { + $table->generateAlias(); + } + + if (empty($table->id)) + { + $table->created = $date->toSql(); + // set the user + if ($table->created_by == 0 || empty($table->created_by)) + { + $table->created_by = $user->id; + } + // Set ordering to the last item if not set + if (empty($table->ordering)) + { + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('MAX(ordering)') + ->from($db->quoteName('#__componentbuilder_component_updates')); + $db->setQuery($query); + $max = $db->loadResult(); + + $table->ordering = $max + 1; + } + } + else + { + $table->modified = $date->toSql(); + $table->modified_by = $user->id; + } + + if (!empty($table->id)) + { + // Increment the items version number. + $table->version++; + } + } + + /** + * Method to get the data that should be injected in the form. + * + * @return mixed The data for the form. + * + * @since 1.6 + */ + protected function loadFormData() + { + // Check the session for previously entered form data. + $data = JFactory::getApplication()->getUserState('com_componentbuilder.edit.component_updates.data', array()); + + if (empty($data)) + { + $data = $this->getItem(); + } + + return $data; + } + + /** + * Method to get the unique fields of this table. + * + * @return mixed An array of field names, boolean false if none is set. + * + * @since 3.0 + */ + protected function getUniqeFields() + { + return false; + } + + /** + * Method to delete one or more records. + * + * @param array &$pks An array of record primary keys. + * + * @return boolean True if successful, false if an error occurs. + * + * @since 12.2 + */ + public function delete(&$pks) + { + if (!parent::delete($pks)) + { + return false; + } + + return true; + } + + /** + * Method to change the published state of one or more records. + * + * @param array &$pks A list of the primary keys to change. + * @param integer $value The value of the published state. + * + * @return boolean True on success. + * + * @since 12.2 + */ + public function publish(&$pks, $value = 1) + { + if (!parent::publish($pks, $value)) + { + return false; + } + + return true; + } + + /** + * Method to perform batch operations on an item or a set of items. + * + * @param array $commands An array of commands to perform. + * @param array $pks An array of item ids. + * @param array $contexts An array of item contexts. + * + * @return boolean Returns true on success, false on failure. + * + * @since 12.2 + */ + public function batch($commands, $pks, $contexts) + { + // Sanitize ids. + $pks = array_unique($pks); + JArrayHelper::toInteger($pks); + + // Remove any values of zero. + if (array_search(0, $pks, true)) + { + unset($pks[array_search(0, $pks, true)]); + } + + if (empty($pks)) + { + $this->setError(JText::_('JGLOBAL_NO_ITEM_SELECTED')); + return false; + } + + $done = false; + + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_updates'); + $this->batchSet = true; + + if (!$this->canDo->get('core.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + return false; + } + + if ($this->type == false) + { + $type = new JUcmType; + $this->type = $type->getTypeByAlias($this->typeAlias); + } + + $this->tagsObserver = $this->table->getObserverOfClass('JTableObserverTags'); + + if (!empty($commands['move_copy'])) + { + $cmd = JArrayHelper::getValue($commands, 'move_copy', 'c'); + + if ($cmd == 'c') + { + $result = $this->batchCopy($commands, $pks, $contexts); + + if (is_array($result)) + { + foreach ($result as $old => $new) + { + $contexts[$new] = $contexts[$old]; + } + $pks = array_values($result); + } + else + { + return false; + } + } + elseif ($cmd == 'm' && !$this->batchMove($commands, $pks, $contexts)) + { + return false; + } + + $done = true; + } + + if (!$done) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_INSUFFICIENT_BATCH_INFORMATION')); + + return false; + } + + // Clear the cache + $this->cleanCache(); + + return true; + } + + /** + * Batch copy items to a new category or current. + * + * @param integer $values The new values. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return mixed An array of new IDs on success, boolean false on failure. + * + * @since 12.2 + */ + protected function batchCopy($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_updates'); + } + + if (!$this->canDo->get('component_updates.create') && !$this->canDo->get('component_updates.batch')) + { + return false; + } + + // get list of uniqe fields + $uniqeFields = $this->getUniqeFields(); + // remove move_copy from array + unset($values['move_copy']); + + // make sure published is set + if (!isset($values['published'])) + { + $values['published'] = 0; + } + elseif (isset($values['published']) && !$this->canDo->get('component_updates.edit.state')) + { + $values['published'] = 0; + } + + $newIds = array(); + + // Parent exists so let's proceed + while (!empty($pks)) + { + // Pop the first ID off the stack + $pk = array_shift($pks); + + $this->table->reset(); + + // only allow copy if user may edit this item. + + if (!$this->user->authorise('component_updates.edit', $contexts[$pk])) + + { + + // Not fatal error + + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + + continue; + + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + $this->table->joomla_component = $this->generateUniqe('joomla_component',$this->table->joomla_component); + + // insert all set values + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + if (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + // update all uniqe fields + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $this->table->$uniqeField = $this->generateUniqe($uniqeField,$this->table->$uniqeField); + } + } + + // Reset the ID because we are making a copy + $this->table->id = 0; + + // TODO: Deal with ordering? + // $this->table->ordering = 1; + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + + // Get the new item ID + $newId = $this->table->get('id'); + + // Add the new ID to the array + $newIds[$pk] = $newId; + } + + // Clean the cache + $this->cleanCache(); + + return $newIds; + } + + /** + * Batch move items to a new category + * + * @param integer $value The new category ID. + * @param array $pks An array of row IDs. + * @param array $contexts An array of item contexts. + * + * @return boolean True if successful, false otherwise and internal error is set. + * + * @since 12.2 + */ + protected function batchMove($values, $pks, $contexts) + { + if (empty($this->batchSet)) + { + // Set some needed variables. + $this->user = JFactory::getUser(); + $this->table = $this->getTable(); + $this->tableClassName = get_class($this->table); + $this->contentType = new JUcmType; + $this->type = $this->contentType->getTypeByTable($this->tableClassName); + $this->canDo = ComponentbuilderHelper::getActions('component_updates'); + } + + if (!$this->canDo->get('component_updates.edit') && !$this->canDo->get('component_updates.batch')) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + return false; + } + + // make sure published only updates if user has the permission. + if (isset($values['published']) && !$this->canDo->get('component_updates.edit.state')) + { + unset($values['published']); + } + // remove move_copy from array + unset($values['move_copy']); + + // Parent exists so we proceed + foreach ($pks as $pk) + { + if (!$this->user->authorise('component_updates.edit', $contexts[$pk])) + { + $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); + + return false; + } + + // Check that the row actually exists + if (!$this->table->load($pk)) + { + if ($error = $this->table->getError()) + { + // Fatal error + $this->setError($error); + + return false; + } + else + { + // Not fatal error + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); + continue; + } + } + + // insert all set values. + if (ComponentbuilderHelper::checkArray($values)) + { + foreach ($values as $key => $value) + { + // Do special action for access. + if ('access' === $key && strlen($value) > 0) + { + $this->table->$key = $value; + } + elseif (strlen($value) > 0 && isset($this->table->$key)) + { + $this->table->$key = $value; + } + } + } + + + // Check the row. + if (!$this->table->check()) + { + $this->setError($this->table->getError()); + + return false; + } + + if (!empty($this->type)) + { + $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); + } + + // Store the row. + if (!$this->table->store()) + { + $this->setError($this->table->getError()); + + return false; + } + } + + // Clean the cache + $this->cleanCache(); + + return true; + } + + /** + * Method to save the form data. + * + * @param array $data The form data. + * + * @return boolean True on success. + * + * @since 1.6 + */ + public function save($data) + { + $input = JFactory::getApplication()->input; + $filter = JFilterInput::getInstance(); + + // set the metadata to the Item Data + if (isset($data['metadata']) && isset($data['metadata']['author'])) + { + $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); + + $metadata = new JRegistry; + $metadata->loadArray($data['metadata']); + $data['metadata'] = (string) $metadata; + } + + // Set the version_update items to data. + if (isset($data['version_update']) && is_array($data['version_update'])) + { + $version_update = new JRegistry; + $version_update->loadArray($data['version_update']); + $data['version_update'] = (string) $version_update; + } + elseif (!isset($data['version_update'])) + { + // Set the empty version_update to data + $data['version_update'] = ''; + } + + // Set the Params Items to data + if (isset($data['params']) && is_array($data['params'])) + { + $params = new JRegistry; + $params->loadArray($data['params']); + $data['params'] = (string) $params; + } + + // Alter the uniqe field for save as copy + if ($input->get('task') === 'save2copy') + { + // Automatic handling of other uniqe fields + $uniqeFields = $this->getUniqeFields(); + if (ComponentbuilderHelper::checkArray($uniqeFields)) + { + foreach ($uniqeFields as $uniqeField) + { + $data[$uniqeField] = $this->generateUniqe($uniqeField,$data[$uniqeField]); + } + } + } + + if (parent::save($data)) + { + return true; + } + return false; + } + + /** + * Method to generate a uniqe value. + * + * @param string $field name. + * @param string $value data. + * + * @return string New value. + * + * @since 3.0 + */ + protected function generateUniqe($field,$value) + { + + // set field value uniqe + $table = $this->getTable(); + + while ($table->load(array($field => $value))) + { + $value = JString::increment($value); + } + + return $value; + } + + /** + * Method to change the title & alias. + * + * @param string $title The title. + * + * @return array Contains the modified title and alias. + * + */ + protected function _generateNewTitle($title) + { + + // Alter the title + $table = $this->getTable(); + + while ($table->load(array('title' => $title))) + { + $title = JString::increment($title); + } + + return $title; + } +} diff --git a/admin/models/componentbuilder.php b/admin/models/componentbuilder.php index 879d718a8..db20903dd 100644 --- a/admin/models/componentbuilder.php +++ b/admin/models/componentbuilder.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage componentbuilder.php @@ -134,7 +134,34 @@ class ComponentbuilderModelComponentbuilder extends JModelList 'admin_fields.access' => 'admin_fields.access', 'admin_fields_conditions.create' => 'admin_fields_conditions.create', 'admins_fields_conditions.access' => 'admin_fields_conditions.access', - 'admin_fields_conditions.access' => 'admin_fields_conditions.access'); + 'admin_fields_conditions.access' => 'admin_fields_conditions.access', + 'component_admin_views.create' => 'component_admin_views.create', + 'components_admin_views.access' => 'component_admin_views.access', + 'component_admin_views.access' => 'component_admin_views.access', + 'component_site_views.create' => 'component_site_views.create', + 'components_site_views.access' => 'component_site_views.access', + 'component_site_views.access' => 'component_site_views.access', + 'component_custom_admin_views.create' => 'component_custom_admin_views.create', + 'components_custom_admin_views.access' => 'component_custom_admin_views.access', + 'component_custom_admin_views.access' => 'component_custom_admin_views.access', + 'component_updates.create' => 'component_updates.create', + 'components_updates.access' => 'component_updates.access', + 'component_updates.access' => 'component_updates.access', + 'component_mysql_tweaks.create' => 'component_mysql_tweaks.create', + 'components_mysql_tweaks.access' => 'component_mysql_tweaks.access', + 'component_mysql_tweaks.access' => 'component_mysql_tweaks.access', + 'component_custom_admin_menus.create' => 'component_custom_admin_menus.create', + 'components_custom_admin_menus.access' => 'component_custom_admin_menus.access', + 'component_custom_admin_menus.access' => 'component_custom_admin_menus.access', + 'component_config.create' => 'component_config.create', + 'components_config.access' => 'component_config.access', + 'component_config.access' => 'component_config.access', + 'component_dashboard.create' => 'component_dashboard.create', + 'components_dashboard.access' => 'component_dashboard.access', + 'component_dashboard.access' => 'component_dashboard.access', + 'component_files_folders.create' => 'component_files_folders.create', + 'components_files_folders.access' => 'component_files_folders.access', + 'component_files_folders.access' => 'component_files_folders.access'); foreach($viewGroups as $group => $views) { $i = 0; diff --git a/admin/models/components_admin_views.php b/admin/models/components_admin_views.php new file mode 100644 index 000000000..06f8788c0 --- /dev/null +++ b/admin/models/components_admin_views.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_admin_views Model + */ +class ComponentbuilderModelComponents_admin_views extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_admin_views.access', 'com_componentbuilder.component_admin_views.' . (int) $item->id) && $user->authorise('component_admin_views.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_admin_views', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_admin_views')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_admin_views'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_config.php b/admin/models/components_config.php new file mode 100644 index 000000000..1b9178f4b --- /dev/null +++ b/admin/models/components_config.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_config Model + */ +class ComponentbuilderModelComponents_config extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_config.access', 'com_componentbuilder.component_config.' . (int) $item->id) && $user->authorise('component_config.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_config', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_config')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_config'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_custom_admin_menus.php b/admin/models/components_custom_admin_menus.php new file mode 100644 index 000000000..ff87285b3 --- /dev/null +++ b/admin/models/components_custom_admin_menus.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_custom_admin_menus Model + */ +class ComponentbuilderModelComponents_custom_admin_menus extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_custom_admin_menus.access', 'com_componentbuilder.component_custom_admin_menus.' . (int) $item->id) && $user->authorise('component_custom_admin_menus.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_custom_admin_menus', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_custom_admin_menus')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_custom_admin_menus'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_custom_admin_views.php b/admin/models/components_custom_admin_views.php new file mode 100644 index 000000000..482068a14 --- /dev/null +++ b/admin/models/components_custom_admin_views.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_custom_admin_views Model + */ +class ComponentbuilderModelComponents_custom_admin_views extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_custom_admin_views.access', 'com_componentbuilder.component_custom_admin_views.' . (int) $item->id) && $user->authorise('component_custom_admin_views.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_custom_admin_views', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_custom_admin_views')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_custom_admin_views'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_dashboard.php b/admin/models/components_dashboard.php new file mode 100644 index 000000000..bb5165dfa --- /dev/null +++ b/admin/models/components_dashboard.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_dashboard Model + */ +class ComponentbuilderModelComponents_dashboard extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_dashboard.access', 'com_componentbuilder.component_dashboard.' . (int) $item->id) && $user->authorise('component_dashboard.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_dashboard', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_dashboard')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_dashboard'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_files_folders.php b/admin/models/components_files_folders.php new file mode 100644 index 000000000..ba4ff0d84 --- /dev/null +++ b/admin/models/components_files_folders.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_files_folders Model + */ +class ComponentbuilderModelComponents_files_folders extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_files_folders.access', 'com_componentbuilder.component_files_folders.' . (int) $item->id) && $user->authorise('component_files_folders.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_files_folders', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_files_folders')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_files_folders'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_mysql_tweaks.php b/admin/models/components_mysql_tweaks.php new file mode 100644 index 000000000..8cdfb5be4 --- /dev/null +++ b/admin/models/components_mysql_tweaks.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_mysql_tweaks Model + */ +class ComponentbuilderModelComponents_mysql_tweaks extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_mysql_tweaks.access', 'com_componentbuilder.component_mysql_tweaks.' . (int) $item->id) && $user->authorise('component_mysql_tweaks.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_mysql_tweaks', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_mysql_tweaks')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_mysql_tweaks'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_site_views.php b/admin/models/components_site_views.php new file mode 100644 index 000000000..752ef50da --- /dev/null +++ b/admin/models/components_site_views.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_site_views Model + */ +class ComponentbuilderModelComponents_site_views extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_site_views.access', 'com_componentbuilder.component_site_views.' . (int) $item->id) && $user->authorise('component_site_views.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_site_views', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_site_views')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_site_views'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/components_updates.php b/admin/models/components_updates.php new file mode 100644 index 000000000..ae0bdbc3d --- /dev/null +++ b/admin/models/components_updates.php @@ -0,0 +1,256 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the Joomla modellist library +jimport('joomla.application.component.modellist'); + +/** + * Components_updates Model + */ +class ComponentbuilderModelComponents_updates extends JModelList +{ + public function __construct($config = array()) + { + if (empty($config['filter_fields'])) + { + $config['filter_fields'] = array( + 'a.id','id', + 'a.published','published', + 'a.ordering','ordering', + 'a.created_by','created_by', + 'a.modified_by','modified_by' + ); + } + + parent::__construct($config); + } + + /** + * Method to auto-populate the model state. + * + * @return void + */ + protected function populateState($ordering = null, $direction = null) + { + $app = JFactory::getApplication(); + + // Adjust the context to support modal layouts. + if ($layout = $app->input->get('layout')) + { + $this->context .= '.' . $layout; + } + + + $sorting = $this->getUserStateFromRequest($this->context . '.filter.sorting', 'filter_sorting', 0, 'int'); + $this->setState('filter.sorting', $sorting); + + $access = $this->getUserStateFromRequest($this->context . '.filter.access', 'filter_access', 0, 'int'); + $this->setState('filter.access', $access); + + $search = $this->getUserStateFromRequest($this->context . '.filter.search', 'filter_search'); + $this->setState('filter.search', $search); + + $published = $this->getUserStateFromRequest($this->context . '.filter.published', 'filter_published', ''); + $this->setState('filter.published', $published); + + $created_by = $this->getUserStateFromRequest($this->context . '.filter.created_by', 'filter_created_by', ''); + $this->setState('filter.created_by', $created_by); + + $created = $this->getUserStateFromRequest($this->context . '.filter.created', 'filter_created'); + $this->setState('filter.created', $created); + + // List state information. + parent::populateState($ordering, $direction); + } + + /** + * Method to get an array of data items. + * + * @return mixed An array of data items on success, false on failure. + */ + public function getItems() + { + // check in items + $this->checkInNow(); + + // load parent items + $items = parent::getItems(); + + // set values to display correctly. + if (ComponentbuilderHelper::checkArray($items)) + { + // get user object. + $user = JFactory::getUser(); + foreach ($items as $nr => &$item) + { + $access = ($user->authorise('component_updates.access', 'com_componentbuilder.component_updates.' . (int) $item->id) && $user->authorise('component_updates.access', 'com_componentbuilder')); + if (!$access) + { + unset($items[$nr]); + continue; + } + + } + } + + // return items + return $items; + } + + /** + * Method to build an SQL query to load the list data. + * + * @return string An SQL query + */ + protected function getListQuery() + { + // Get the user object. + $user = JFactory::getUser(); + // Create a new query object. + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + + // Select some fields + $query->select('a.*'); + + // From the componentbuilder_item table + $query->from($db->quoteName('#__componentbuilder_component_updates', 'a')); + + // From the componentbuilder_joomla_component table. + $query->select($db->quoteName('g.system_name','joomla_component_system_name')); + $query->join('LEFT', $db->quoteName('#__componentbuilder_joomla_component', 'g') . ' ON (' . $db->quoteName('a.joomla_component') . ' = ' . $db->quoteName('g.id') . ')'); + + // Filter by published state + $published = $this->getState('filter.published'); + if (is_numeric($published)) + { + $query->where('a.published = ' . (int) $published); + } + elseif ($published === '') + { + $query->where('(a.published = 0 OR a.published = 1)'); + } + + // Join over the asset groups. + $query->select('ag.title AS access_level'); + $query->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); + // Filter by access level. + if ($access = $this->getState('filter.access')) + { + $query->where('a.access = ' . (int) $access); + } + // Implement View Level Access + if (!$user->authorise('core.options', 'com_componentbuilder')) + { + $groups = implode(',', $user->getAuthorisedViewLevels()); + $query->where('a.access IN (' . $groups . ')'); + } + + // Add the list ordering clause. + $orderCol = $this->state->get('list.ordering', 'a.id'); + $orderDirn = $this->state->get('list.direction', 'asc'); + if ($orderCol != '') + { + $query->order($db->escape($orderCol . ' ' . $orderDirn)); + } + + return $query; + } + + /** + * Method to get a store id based on model configuration state. + * + * @return string A store id. + * + */ + protected function getStoreId($id = '') + { + // Compile the store id. + $id .= ':' . $this->getState('filter.id'); + $id .= ':' . $this->getState('filter.search'); + $id .= ':' . $this->getState('filter.published'); + $id .= ':' . $this->getState('filter.ordering'); + $id .= ':' . $this->getState('filter.created_by'); + $id .= ':' . $this->getState('filter.modified_by'); + + return parent::getStoreId($id); + } + + /** + * Build an SQL query to checkin all items left checked out longer then a set time. + * + * @return a bool + * + */ + protected function checkInNow() + { + // Get set check in time + $time = JComponentHelper::getParams('com_componentbuilder')->get('check_in'); + + if ($time) + { + + // Get a db connection. + $db = JFactory::getDbo(); + // reset query + $query = $db->getQuery(true); + $query->select('*'); + $query->from($db->quoteName('#__componentbuilder_component_updates')); + $db->setQuery($query); + $db->execute(); + if ($db->getNumRows()) + { + // Get Yesterdays date + $date = JFactory::getDate()->modify($time)->toSql(); + // reset query + $query = $db->getQuery(true); + + // Fields to update. + $fields = array( + $db->quoteName('checked_out_time') . '=\'0000-00-00 00:00:00\'', + $db->quoteName('checked_out') . '=0' + ); + + // Conditions for which records should be updated. + $conditions = array( + $db->quoteName('checked_out') . '!=0', + $db->quoteName('checked_out_time') . '<\''.$date.'\'' + ); + + // Check table + $query->update($db->quoteName('#__componentbuilder_component_updates'))->set($fields)->where($conditions); + + $db->setQuery($query); + + $db->execute(); + } + } + + return false; + } +} diff --git a/admin/models/custom_admin_view.php b/admin/models/custom_admin_view.php index eac01ceb5..a231f1724 100644 --- a/admin/models/custom_admin_view.php +++ b/admin/models/custom_admin_view.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage custom_admin_view.php @@ -198,7 +198,7 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin $item->tags->getTagIds($item->id, 'com_componentbuilder.custom_admin_view'); } } - $this->addcustom_admin_viewsvvwa = $item->id; + $this->addcustom_admin_viewsvvvx = $item->id; return $item; } @@ -208,7 +208,7 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin * * @return mixed An array of data items on success, false on failure. */ - public function getVyjlinked_components() + public function getVyflinked_components() { // Get the user object. $user = JFactory::getUser(); @@ -265,15 +265,15 @@ class ComponentbuilderModelCustom_admin_view extends JModelAdmin } } - // Filter by addcustom_admin_viewsvvwa in this Repetable Field - if (ComponentbuilderHelper::checkArray($items) && isset($this->addcustom_admin_viewsvvwa)) + // Filter by addcustom_admin_viewsvvvx in this Repetable Field + if (ComponentbuilderHelper::checkArray($items) && isset($this->addcustom_admin_viewsvvvx)) { foreach ($items as $nr => &$item) { if (isset($item->addcustom_admin_views) && ComponentbuilderHelper::checkJson($item->addcustom_admin_views)) { $tmpArray = json_decode($item->addcustom_admin_views,true); - if (!isset($tmpArray['customadminview']) || !ComponentbuilderHelper::checkArray($tmpArray['customadminview']) || !in_array($this->addcustom_admin_viewsvvwa, $tmpArray['customadminview'])) + if (!isset($tmpArray['customadminview']) || !ComponentbuilderHelper::checkArray($tmpArray['customadminview']) || !in_array($this->addcustom_admin_viewsvvvx, $tmpArray['customadminview'])) { unset($items[$nr]); continue; diff --git a/admin/models/custom_admin_views.php b/admin/models/custom_admin_views.php index 0287d9644..c4bcb8cc4 100644 --- a/admin/models/custom_admin_views.php +++ b/admin/models/custom_admin_views.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage custom_admin_views.php diff --git a/admin/models/dynamic_get.php b/admin/models/dynamic_get.php index 0c561c3a0..ed29acd17 100644 --- a/admin/models/dynamic_get.php +++ b/admin/models/dynamic_get.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 98 of this MVC - @build 20th October, 2017 + @version @update number 101 of this MVC + @build 26th October, 2017 @created 21st May, 2015 @package Component Builder @subpackage dynamic_get.php @@ -183,6 +183,42 @@ class ComponentbuilderModelDynamic_get extends JModelAdmin { // base64 Decode php_calculation. $item->php_calculation = base64_decode($item->php_calculation); + } + + // update the fields + $objectUpdate = new stdClass(); + $objectUpdate->id = (int) $item->id; + // repeatable values to check + $arrayChecker = array( + 'join_view_table' => 'view_table', + 'join_db_table' => 'db_table', + 'filter' => 'filter_type', + 'where' => 'table_key', + 'order' => 'table_key', + 'global' => 'name' + ); + foreach ($arrayChecker as $_value => $checker) + { + // check what type of array we have here (should be subform... but just in case) + // This could happen due to huge data sets + if (isset($item->{$_value}) && isset($item->{$_value}[$checker])) + { + $bucket = array(); + foreach($item->{$_value} as $option => $values) + { + foreach($values as $nr => $value) + { + $bucket[$_value.$nr][$option] = $value; + } + } + $item->{$_value} = $bucket; + $objectUpdate->{$_value} = json_encode($bucket); + } + } + // be sure to update the table if we found repeatable fields that are still not converted + if (count((array) $objectUpdate) > 1) + { + $this->_db->updateObject('#__componentbuilder_dynamic_get', $objectUpdate, 'id'); } if (!empty($item->id)) diff --git a/admin/models/dynamic_gets.php b/admin/models/dynamic_gets.php index 5ecc96b95..3d5c45262 100644 --- a/admin/models/dynamic_gets.php +++ b/admin/models/dynamic_gets.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 98 of this MVC - @build 20th October, 2017 + @version @update number 101 of this MVC + @build 26th October, 2017 @created 21st May, 2015 @package Component Builder @subpackage dynamic_gets.php diff --git a/admin/models/field.php b/admin/models/field.php index 9a63f570c..b856f549c 100644 --- a/admin/models/field.php +++ b/admin/models/field.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 40 of this MVC - @build 18th October, 2017 + @build 25th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage field.php diff --git a/admin/models/fields.php b/admin/models/fields.php index cc5717896..a21bf98e3 100644 --- a/admin/models/fields.php +++ b/admin/models/fields.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 40 of this MVC - @build 18th October, 2017 + @build 25th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields.php diff --git a/admin/models/fields/adminsviews.php b/admin/models/fields/adminsviews.php new file mode 100644 index 000000000..dc9b84983 --- /dev/null +++ b/admin/models/fields/adminsviews.php @@ -0,0 +1,170 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the list field type +jimport('joomla.form.helper'); +JFormHelper::loadFieldClass('list'); + +/** + * Adminsviews Form Field class for the Componentbuilder component + */ +class JFormFieldAdminsviews extends JFormFieldList +{ + /** + * The adminsviews field type. + * + * @var string + */ + public $type = 'adminsviews'; + /** + * Override to add new button + * + * @return string The field input markup. + * + * @since 3.2 + */ + protected function getInput() + { + // see if we should add buttons + $setButton = $this->getAttribute('button'); + // get html + $html = parent::getInput(); + // if true set button + if ($setButton === 'true') + { + $button = array(); + $script = array(); + $buttonName = $this->getAttribute('name'); + // get the input from url + $app = JFactory::getApplication(); + $jinput = $app->input; + // get the view name & id + $values = $jinput->getArray(array( + 'id' => 'int', + 'view' => 'word' + )); + // check if new item + $ref = ''; + $refJ = ''; + if (!is_null($values['id']) && strlen($values['view'])) + { + // only load referal if not new item. + $ref = '&ref=' . $values['view'] . '&refid=' . $values['id']; + $refJ = '&ref=' . $values['view'] . '&refid=' . $values['id']; + } + $user = JFactory::getUser(); + // only add if user allowed to create admin_view + if ($user->authorise('admin_view.create', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build Create button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ' + '; + } + // only add if user allowed to edit admin_view + if (($buttonName === 'admin_view' || $buttonName === 'admin_views') && $user->authorise('admin_view.edit', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build edit button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ''; + // build script + $script[] = " + jQuery(document).ready(function() { + jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { + e.preventDefault(); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + function ".$buttonName."Button(value) { + if (value > 0) { + // hide the create button + jQuery('#".$buttonName."Create').hide(); + // show edit button + jQuery('#".$buttonName."Edit').show(); + var url = 'index.php?option=com_componentbuilder&view=admin_views&task=admin_view.edit&id='+value+'".$refJ."'; + jQuery('#".$buttonName."Edit').attr('href', url); + } else { + // show the create button + jQuery('#".$buttonName."Create').show(); + // hide edit button + jQuery('#".$buttonName."Edit').hide(); + } + }"; + } + // check if button was created for admin_view field. + if (is_array($button) && count($button) > 0) + { + // Load the needed script. + $document = JFactory::getDocument(); + $document->addScriptDeclaration(implode(' ',$script)); + // return the button attached to input field. + return '
' .$html . implode('',$button).'
'; + } + } + return $html; + } + + /** + * Method to get a list of options for a list input. + * + * @return array An array of JHtml options. + */ + public function getOptions() + { + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + $query->select($db->quoteName(array('a.id','a.system_name'),array('id','adminviews_system_name'))); + $query->from($db->quoteName('#__componentbuilder_admin_view', 'a')); + $query->where($db->quoteName('a.published') . ' >= 1'); + $query->order('a.system_name ASC'); + $db->setQuery((string)$query); + $items = $db->loadObjectList(); + $options = array(); + if ($items) + { + foreach($items as $item) + { + $options[] = JHtml::_('select.option', $item->id, $item->adminviews_system_name); + } + } + return $options; + } +} diff --git a/admin/models/fields/adminviewfolderlist.php b/admin/models/fields/adminviewfolderlist.php index 8af4867f5..339055dab 100644 --- a/admin/models/fields/adminviewfolderlist.php +++ b/admin/models/fields/adminviewfolderlist.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage adminviewfolderlist.php diff --git a/admin/models/fields/adminviews.php b/admin/models/fields/adminviews.php index 922bb0863..66f2632d4 100644 --- a/admin/models/fields/adminviews.php +++ b/admin/models/fields/adminviews.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage adminviews.php @@ -153,7 +153,7 @@ class JFormFieldAdminviews extends JFormFieldList $query = $db->getQuery(true); $query->select($db->quoteName(array('a.id','a.system_name'),array('id','adminview_system_name'))); $query->from($db->quoteName('#__componentbuilder_admin_view', 'a')); - $query->where($db->quoteName('a.published') . ' = 1'); + $query->where($db->quoteName('a.published') . ' >= 1'); $query->order('a.system_name ASC'); $db->setQuery((string)$query); $items = $db->loadObjectList(); diff --git a/admin/models/fields/articles.php b/admin/models/fields/articles.php index 0220b76b1..e181e3d8c 100644 --- a/admin/models/fields/articles.php +++ b/admin/models/fields/articles.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage articles.php diff --git a/admin/models/fields/component.php b/admin/models/fields/component.php index 287b6a463..fe736fedd 100644 --- a/admin/models/fields/component.php +++ b/admin/models/fields/component.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage component.php diff --git a/admin/models/fields/componentadminmenus.php b/admin/models/fields/componentadminmenus.php new file mode 100644 index 000000000..7d97274db --- /dev/null +++ b/admin/models/fields/componentadminmenus.php @@ -0,0 +1,216 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the list field type +jimport('joomla.form.helper'); +JFormHelper::loadFieldClass('list'); + +/** + * Componentadminmenus Form Field class for the Componentbuilder component + */ +class JFormFieldComponentadminmenus extends JFormFieldList +{ + /** + * The componentadminmenus field type. + * + * @var string + */ + public $type = 'componentadminmenus'; + /** + * Override to add new button + * + * @return string The field input markup. + * + * @since 3.2 + */ + protected function getInput() + { + // see if we should add buttons + $setButton = $this->getAttribute('button'); + // get html + $html = parent::getInput(); + // if true set button + if ($setButton === 'true') + { + $button = array(); + $script = array(); + $buttonName = $this->getAttribute('name'); + // get the input from url + $app = JFactory::getApplication(); + $jinput = $app->input; + // get the view name & id + $values = $jinput->getArray(array( + 'id' => 'int', + 'view' => 'word' + )); + // check if new item + $ref = ''; + $refJ = ''; + if (!is_null($values['id']) && strlen($values['view'])) + { + // only load referal if not new item. + $ref = '&ref=' . $values['view'] . '&refid=' . $values['id']; + $refJ = '&ref=' . $values['view'] . '&refid=' . $values['id']; + } + $user = JFactory::getUser(); + // only add if user allowed to create admin_view + if ($user->authorise('admin_view.create', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build Create button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ' + '; + } + // only add if user allowed to edit admin_view + if (($buttonName === 'admin_view' || $buttonName === 'admin_views') && $user->authorise('admin_view.edit', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build edit button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ''; + // build script + $script[] = " + jQuery(document).ready(function() { + jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { + e.preventDefault(); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + function ".$buttonName."Button(value) { + if (value > 0) { + // hide the create button + jQuery('#".$buttonName."Create').hide(); + // show edit button + jQuery('#".$buttonName."Edit').show(); + var url = 'index.php?option=com_componentbuilder&view=admin_views&task=admin_view.edit&id='+value+'".$refJ."'; + jQuery('#".$buttonName."Edit').attr('href', url); + } else { + // show the create button + jQuery('#".$buttonName."Create').show(); + // hide edit button + jQuery('#".$buttonName."Edit').hide(); + } + }"; + } + // check if button was created for admin_view field. + if (is_array($button) && count($button) > 0) + { + // Load the needed script. + $document = JFactory::getDocument(); + $document->addScriptDeclaration(implode(' ',$script)); + // return the button attached to input field. + return '
' .$html . implode('',$button).'
'; + } + } + return $html; + } + + /** + * Method to get a list of options for a list input. + * + * @return array An array of JHtml options. + */ + public function getOptions() + { + // load the db opbject + $db = JFactory::getDBO(); + // get the input from url + $jinput = JFactory::getApplication()->input; + // get the id + $ID = $jinput->getInt('id', 0); + // rest the fields ids + $viewids = array(); + if (is_numeric($ID) && $ID >= 1) + { + // get the joomla component ID + $joomlacomponent = ComponentbuilderHelper::getVar('component_custom_admin_menus', (int) $ID, 'id', 'joomla_component'); + } + else + { + // get the joomla component ID + $joomlacomponent = $jinput->getInt('refid', 0); + } + if (is_numeric($joomlacomponent) && $joomlacomponent >= 1) + { + // get all the admin views linked to the joomla component + if ($addAdminViews = ComponentbuilderHelper::getVar('component_admin_views', (int) $joomlacomponent, 'joomla_component', 'addadmin_views')) + { + if (ComponentbuilderHelper::checkJson($addAdminViews)) + { + $addAdminViews = json_decode($addAdminViews, true); + if (ComponentbuilderHelper::checkArray($addAdminViews)) + { + foreach($addAdminViews as $addAdminView) + { + if (isset($addAdminView['adminview'])) + { + $viewids[] = (int) $addAdminView['adminview']; + } + } + } + } + } + } + $query = $db->getQuery(true); + $query->select($db->quoteName(array('a.id','a.system_name'),array('id','name'))); + $query->from($db->quoteName('#__componentbuilder_admin_view', 'a')); + $query->where($db->quoteName('a.published') . ' >= 1'); + // filter by fields linked + if (ComponentbuilderHelper::checkArray($viewids)) + { + // only load these fields + $query->where($db->quoteName('a.id') . ' IN (' . implode(',', $viewids) . ')'); + } + $query->order('a.system_name ASC'); + $db->setQuery((string)$query); + $items = $db->loadObjectList(); + $options = array(); + if ($items) + { + $options[] = JHtml::_('select.option', '', 'Select an option'); + foreach($items as $item) + { + $options[] = JHtml::_('select.option', $item->id, $item->name); + } + } + + return $options; + } +} diff --git a/admin/models/fields/componentadminviews.php b/admin/models/fields/componentadminviews.php new file mode 100644 index 000000000..e9e645602 --- /dev/null +++ b/admin/models/fields/componentadminviews.php @@ -0,0 +1,216 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the list field type +jimport('joomla.form.helper'); +JFormHelper::loadFieldClass('list'); + +/** + * Componentadminviews Form Field class for the Componentbuilder component + */ +class JFormFieldComponentadminviews extends JFormFieldList +{ + /** + * The componentadminviews field type. + * + * @var string + */ + public $type = 'componentadminviews'; + /** + * Override to add new button + * + * @return string The field input markup. + * + * @since 3.2 + */ + protected function getInput() + { + // see if we should add buttons + $setButton = $this->getAttribute('button'); + // get html + $html = parent::getInput(); + // if true set button + if ($setButton === 'true') + { + $button = array(); + $script = array(); + $buttonName = $this->getAttribute('name'); + // get the input from url + $app = JFactory::getApplication(); + $jinput = $app->input; + // get the view name & id + $values = $jinput->getArray(array( + 'id' => 'int', + 'view' => 'word' + )); + // check if new item + $ref = ''; + $refJ = ''; + if (!is_null($values['id']) && strlen($values['view'])) + { + // only load referal if not new item. + $ref = '&ref=' . $values['view'] . '&refid=' . $values['id']; + $refJ = '&ref=' . $values['view'] . '&refid=' . $values['id']; + } + $user = JFactory::getUser(); + // only add if user allowed to create admin_view + if ($user->authorise('admin_view.create', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build Create button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ' + '; + } + // only add if user allowed to edit admin_view + if (($buttonName === 'admin_view' || $buttonName === 'admin_views') && $user->authorise('admin_view.edit', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build edit button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ''; + // build script + $script[] = " + jQuery(document).ready(function() { + jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { + e.preventDefault(); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + function ".$buttonName."Button(value) { + if (value > 0) { + // hide the create button + jQuery('#".$buttonName."Create').hide(); + // show edit button + jQuery('#".$buttonName."Edit').show(); + var url = 'index.php?option=com_componentbuilder&view=admin_views&task=admin_view.edit&id='+value+'".$refJ."'; + jQuery('#".$buttonName."Edit').attr('href', url); + } else { + // show the create button + jQuery('#".$buttonName."Create').show(); + // hide edit button + jQuery('#".$buttonName."Edit').hide(); + } + }"; + } + // check if button was created for admin_view field. + if (is_array($button) && count($button) > 0) + { + // Load the needed script. + $document = JFactory::getDocument(); + $document->addScriptDeclaration(implode(' ',$script)); + // return the button attached to input field. + return '
' .$html . implode('',$button).'
'; + } + } + return $html; + } + + /** + * Method to get a list of options for a list input. + * + * @return array An array of JHtml options. + */ + public function getOptions() + { + // load the db opbject + $db = JFactory::getDBO(); + // get the input from url + $jinput = JFactory::getApplication()->input; + // get the id + $ID = $jinput->getInt('id', 0); + // rest the fields ids + $viewids = array(); + if (is_numeric($ID) && $ID >= 1) + { + // get the joomla component ID + $joomlacomponent = ComponentbuilderHelper::getVar('component_mysql_tweaks', (int) $ID, 'id', 'joomla_component'); + } + else + { + // get the joomla component ID + $joomlacomponent = $jinput->getInt('refid', 0); + } + if (is_numeric($joomlacomponent) && $joomlacomponent >= 1) + { + // get all the admin views linked to the joomla component + if ($addAdminViews = ComponentbuilderHelper::getVar('component_admin_views', (int) $joomlacomponent, 'joomla_component', 'addadmin_views')) + { + if (ComponentbuilderHelper::checkJson($addAdminViews)) + { + $addAdminViews = json_decode($addAdminViews, true); + if (ComponentbuilderHelper::checkArray($addAdminViews)) + { + foreach($addAdminViews as $addAdminView) + { + if (isset($addAdminView['adminview'])) + { + $viewids[] = (int) $addAdminView['adminview']; + } + } + } + } + } + } + $query = $db->getQuery(true); + $query->select($db->quoteName(array('a.id','a.system_name'),array('id','name'))); + $query->from($db->quoteName('#__componentbuilder_admin_view', 'a')); + $query->where($db->quoteName('a.published') . ' >= 1'); + // filter by fields linked + if (ComponentbuilderHelper::checkArray($viewids)) + { + // only load these fields + $query->where($db->quoteName('a.id') . ' IN (' . implode(',', $viewids) . ')'); + } + $query->order('a.system_name ASC'); + $db->setQuery((string)$query); + $items = $db->loadObjectList(); + $options = array(); + if ($items) + { + $options[] = JHtml::_('select.option', '', 'Select an option'); + foreach($items as $item) + { + $options[] = JHtml::_('select.option', $item->id, $item->name); + } + } + + return $options; + } +} diff --git a/admin/models/fields/components.php b/admin/models/fields/components.php index 6822cd169..6f891ce42 100644 --- a/admin/models/fields/components.php +++ b/admin/models/fields/components.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage components.php diff --git a/admin/models/fields/customadminviews.php b/admin/models/fields/customadminviews.php index 2f9bf0ac2..509aa4ee7 100644 --- a/admin/models/fields/customadminviews.php +++ b/admin/models/fields/customadminviews.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage customadminviews.php @@ -153,13 +153,14 @@ class JFormFieldCustomadminviews extends JFormFieldList $query = $db->getQuery(true); $query->select($db->quoteName(array('a.id','a.system_name'),array('id','customadminview_system_name'))); $query->from($db->quoteName('#__componentbuilder_custom_admin_view', 'a')); - $query->where($db->quoteName('a.published') . ' = 1'); + $query->where($db->quoteName('a.published') . ' >= 1'); $query->order('a.system_name ASC'); $db->setQuery((string)$query); $items = $db->loadObjectList(); $options = array(); if ($items) { + $options[] = JHtml::_('select.option', '', 'Select an option'); foreach($items as $item) { $options[] = JHtml::_('select.option', $item->id, $item->customadminview_system_name); diff --git a/admin/models/fields/customfilelist.php b/admin/models/fields/customfilelist.php index 3fc9ff414..c2086f4a8 100644 --- a/admin/models/fields/customfilelist.php +++ b/admin/models/fields/customfilelist.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage customfilelist.php diff --git a/admin/models/fields/customfolderlist.php b/admin/models/fields/customfolderlist.php index 71c089e81..ddeebd390 100644 --- a/admin/models/fields/customfolderlist.php +++ b/admin/models/fields/customfolderlist.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage customfolderlist.php diff --git a/admin/models/fields/customgets.php b/admin/models/fields/customgets.php index 1dace97bc..f56aa2972 100644 --- a/admin/models/fields/customgets.php +++ b/admin/models/fields/customgets.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage customgets.php diff --git a/admin/models/fields/dbtables.php b/admin/models/fields/dbtables.php index 14cd29948..9dcfb5eb5 100644 --- a/admin/models/fields/dbtables.php +++ b/admin/models/fields/dbtables.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage dbtables.php diff --git a/admin/models/fields/dynamicget.php b/admin/models/fields/dynamicget.php index 359263d16..3e6081cb3 100644 --- a/admin/models/fields/dynamicget.php +++ b/admin/models/fields/dynamicget.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage dynamicget.php diff --git a/admin/models/fields/dynamicgets.php b/admin/models/fields/dynamicgets.php index f1a11a1f5..5982128c9 100644 --- a/admin/models/fields/dynamicgets.php +++ b/admin/models/fields/dynamicgets.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage dynamicgets.php diff --git a/admin/models/fields/fields.php b/admin/models/fields/fields.php index 9f16e6d72..668984bf2 100644 --- a/admin/models/fields/fields.php +++ b/admin/models/fields/fields.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fields.php @@ -153,7 +153,7 @@ class JFormFieldFields extends JFormFieldList $query = $db->getQuery(true); $query->select($db->quoteName(array('a.id','a.name'),array('id','field_name'))); $query->from($db->quoteName('#__componentbuilder_field', 'a')); - $query->where($db->quoteName('a.published') . ' = 1'); + $query->where($db->quoteName('a.published') . ' >= 1'); $query->order('a.name ASC'); $db->setQuery((string)$query); $items = $db->loadObjectList(); diff --git a/admin/models/fields/fieldtypes.php b/admin/models/fields/fieldtypes.php index cdc2434d7..17c78aa58 100644 --- a/admin/models/fields/fieldtypes.php +++ b/admin/models/fields/fieldtypes.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtypes.php diff --git a/admin/models/fields/ftps.php b/admin/models/fields/ftps.php index d424dc1f9..a3e640ec4 100644 --- a/admin/models/fields/ftps.php +++ b/admin/models/fields/ftps.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage ftps.php diff --git a/admin/models/fields/joomlacomponents.php b/admin/models/fields/joomlacomponents.php new file mode 100644 index 000000000..b734ba690 --- /dev/null +++ b/admin/models/fields/joomlacomponents.php @@ -0,0 +1,171 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import the list field type +jimport('joomla.form.helper'); +JFormHelper::loadFieldClass('list'); + +/** + * Joomlacomponents Form Field class for the Componentbuilder component + */ +class JFormFieldJoomlacomponents extends JFormFieldList +{ + /** + * The joomlacomponents field type. + * + * @var string + */ + public $type = 'joomlacomponents'; + /** + * Override to add new button + * + * @return string The field input markup. + * + * @since 3.2 + */ + protected function getInput() + { + // see if we should add buttons + $setButton = $this->getAttribute('button'); + // get html + $html = parent::getInput(); + // if true set button + if ($setButton === 'true') + { + $button = array(); + $script = array(); + $buttonName = $this->getAttribute('name'); + // get the input from url + $app = JFactory::getApplication(); + $jinput = $app->input; + // get the view name & id + $values = $jinput->getArray(array( + 'id' => 'int', + 'view' => 'word' + )); + // check if new item + $ref = ''; + $refJ = ''; + if (!is_null($values['id']) && strlen($values['view'])) + { + // only load referal if not new item. + $ref = '&ref=' . $values['view'] . '&refid=' . $values['id']; + $refJ = '&ref=' . $values['view'] . '&refid=' . $values['id']; + } + $user = JFactory::getUser(); + // only add if user allowed to create joomla_component + if ($user->authorise('joomla_component.create', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build Create button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ' + '; + } + // only add if user allowed to edit joomla_component + if (($buttonName === 'joomla_component' || $buttonName === 'joomla_components') && $user->authorise('joomla_component.edit', 'com_componentbuilder') && $app->isAdmin()) // TODO for now only in admin area. + { + // build edit button + $buttonNamee = trim($buttonName); + $buttonNamee = preg_replace('/_+/', ' ', $buttonNamee); + $buttonNamee = preg_replace('/\s+/', ' ', $buttonNamee); + $buttonNamee = preg_replace("/[^A-Za-z ]/", '', $buttonNamee); + $buttonNamee = ucfirst(strtolower($buttonNamee)); + $button[] = ''; + // build script + $script[] = " + jQuery(document).ready(function() { + jQuery('#adminForm').on('change', '#jform_".$buttonName."',function (e) { + e.preventDefault(); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + var ".$buttonName."Value = jQuery('#jform_".$buttonName."').val(); + ".$buttonName."Button(".$buttonName."Value); + }); + function ".$buttonName."Button(value) { + if (value > 0) { + // hide the create button + jQuery('#".$buttonName."Create').hide(); + // show edit button + jQuery('#".$buttonName."Edit').show(); + var url = 'index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit&id='+value+'".$refJ."'; + jQuery('#".$buttonName."Edit').attr('href', url); + } else { + // show the create button + jQuery('#".$buttonName."Create').show(); + // hide edit button + jQuery('#".$buttonName."Edit').hide(); + } + }"; + } + // check if button was created for joomla_component field. + if (is_array($button) && count($button) > 0) + { + // Load the needed script. + $document = JFactory::getDocument(); + $document->addScriptDeclaration(implode(' ',$script)); + // return the button attached to input field. + return '
' .$html . implode('',$button).'
'; + } + } + return $html; + } + + /** + * Method to get a list of options for a list input. + * + * @return array An array of JHtml options. + */ + public function getOptions() + { + $db = JFactory::getDBO(); + $query = $db->getQuery(true); + $query->select($db->quoteName(array('a.id','a.system_name'),array('id','joomla_component_system_name'))); + $query->from($db->quoteName('#__componentbuilder_joomla_component', 'a')); + $query->where($db->quoteName('a.published') . ' >= 1'); + $query->order('a.system_name ASC'); + $db->setQuery((string)$query); + $items = $db->loadObjectList(); + $options = array(); + if ($items) + { + $options[] = JHtml::_('select.option', '', 'Select an option'); + foreach($items as $item) + { + $options[] = JHtml::_('select.option', $item->id, $item->joomla_component_system_name); + } + } + return $options; + } +} diff --git a/admin/models/fields/lang.php b/admin/models/fields/lang.php index 45770d2c3..9be6daf6b 100644 --- a/admin/models/fields/lang.php +++ b/admin/models/fields/lang.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage lang.php diff --git a/admin/models/fields/maingets.php b/admin/models/fields/maingets.php index 95333a44c..11df0bff9 100644 --- a/admin/models/fields/maingets.php +++ b/admin/models/fields/maingets.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage maingets.php diff --git a/admin/models/fields/matchfield.php b/admin/models/fields/matchfield.php index 5351c52d7..eb6cb11d4 100644 --- a/admin/models/fields/matchfield.php +++ b/admin/models/fields/matchfield.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage matchfield.php diff --git a/admin/models/fields/siteviewfolderlist.php b/admin/models/fields/siteviewfolderlist.php index 46ddfcdb8..4ec2595fd 100644 --- a/admin/models/fields/siteviewfolderlist.php +++ b/admin/models/fields/siteviewfolderlist.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage siteviewfolderlist.php diff --git a/admin/models/fields/siteviews.php b/admin/models/fields/siteviews.php index 5e24edc30..26ca63248 100644 --- a/admin/models/fields/siteviews.php +++ b/admin/models/fields/siteviews.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage siteviews.php @@ -153,13 +153,14 @@ class JFormFieldSiteviews extends JFormFieldList $query = $db->getQuery(true); $query->select($db->quoteName(array('a.id','a.system_name'),array('id','siteview_system_name'))); $query->from($db->quoteName('#__componentbuilder_site_view', 'a')); - $query->where($db->quoteName('a.published') . ' = 1'); + $query->where($db->quoteName('a.published') . ' >= 1'); $query->order('a.system_name ASC'); $db->setQuery((string)$query); $items = $db->loadObjectList(); $options = array(); if ($items) { + $options[] = JHtml::_('select.option', '', 'Select an option'); foreach($items as $item) { $options[] = JHtml::_('select.option', $item->id, $item->siteview_system_name); diff --git a/admin/models/fields/snippets.php b/admin/models/fields/snippets.php index 692ee114b..d66236b62 100644 --- a/admin/models/fields/snippets.php +++ b/admin/models/fields/snippets.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage snippets.php diff --git a/admin/models/fields/targetfields.php b/admin/models/fields/targetfields.php index 7fc8a292f..9376262cd 100644 --- a/admin/models/fields/targetfields.php +++ b/admin/models/fields/targetfields.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage targetfields.php diff --git a/admin/models/fields/viewtabs.php b/admin/models/fields/viewtabs.php index 2dc95d073..2e77686d5 100644 --- a/admin/models/fields/viewtabs.php +++ b/admin/models/fields/viewtabs.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage viewtabs.php @@ -177,7 +177,9 @@ class JFormFieldViewtabs extends JFormFieldList else { $options[] = JHtml::_('select.option', 1, JText::_('COM_COMPONENTBUILDER_DETAILS')); - } + } + // add the default publish tab as an option + $options[] = JHtml::_('select.option', 15, JText::_('COM_COMPONENTBUILDER_PUBLISHING')); return $options; } } diff --git a/admin/models/fieldtype.php b/admin/models/fieldtype.php index 83026ce2d..b35dba99c 100644 --- a/admin/models/fieldtype.php +++ b/admin/models/fieldtype.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 13th October, 2017 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtype.php @@ -129,7 +129,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin $item->tags->getTagIds($item->id, 'com_componentbuilder.fieldtype'); } } - $this->fieldtypevvwc = $item->id; + $this->fieldtypevvvz = $item->id; return $item; } @@ -139,7 +139,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin * * @return mixed An array of data items on success, false on failure. */ - public function getWabfields() + public function getVzxfields() { // Get the user object. $user = JFactory::getUser(); @@ -159,15 +159,15 @@ class ComponentbuilderModelFieldtype extends JModelAdmin $query->select($db->quoteName('g.name','fieldtype_name')); $query->join('LEFT', $db->quoteName('#__componentbuilder_fieldtype', 'g') . ' ON (' . $db->quoteName('a.fieldtype') . ' = ' . $db->quoteName('g.id') . ')'); - // Filter by fieldtypevvwc global. - $fieldtypevvwc = $this->fieldtypevvwc; - if (is_numeric($fieldtypevvwc )) + // Filter by fieldtypevvvz global. + $fieldtypevvvz = $this->fieldtypevvvz; + if (is_numeric($fieldtypevvvz )) { - $query->where('a.fieldtype = ' . (int) $fieldtypevvwc ); + $query->where('a.fieldtype = ' . (int) $fieldtypevvvz ); } - elseif (is_string($fieldtypevvwc)) + elseif (is_string($fieldtypevvvz)) { - $query->where('a.fieldtype = ' . $db->quote($fieldtypevvwc)); + $query->where('a.fieldtype = ' . $db->quote($fieldtypevvvz)); } else { @@ -223,13 +223,13 @@ class ComponentbuilderModelFieldtype extends JModelAdmin foreach ($items as $nr => &$item) { // convert datatype - $item->datatype = $this->selectionTranslationWabfields($item->datatype, 'datatype'); + $item->datatype = $this->selectionTranslationVzxfields($item->datatype, 'datatype'); // convert indexes - $item->indexes = $this->selectionTranslationWabfields($item->indexes, 'indexes'); + $item->indexes = $this->selectionTranslationVzxfields($item->indexes, 'indexes'); // convert null_switch - $item->null_switch = $this->selectionTranslationWabfields($item->null_switch, 'null_switch'); + $item->null_switch = $this->selectionTranslationVzxfields($item->null_switch, 'null_switch'); // convert store - $item->store = $this->selectionTranslationWabfields($item->store, 'store'); + $item->store = $this->selectionTranslationVzxfields($item->store, 'store'); } } @@ -243,7 +243,7 @@ class ComponentbuilderModelFieldtype extends JModelAdmin * * @return translatable string */ - public function selectionTranslationWabfields($value,$name) + public function selectionTranslationVzxfields($value,$name) { // Array of datatype language strings if ($name === 'datatype') diff --git a/admin/models/fieldtypes.php b/admin/models/fieldtypes.php index 96f3186ed..411d7f4fe 100644 --- a/admin/models/fieldtypes.php +++ b/admin/models/fieldtypes.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 16 of this MVC - @build 13th October, 2017 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage fieldtypes.php diff --git a/admin/models/forms/admin_fields.js b/admin/models/forms/admin_fields.js index f132f8860..69ee26e4a 100644 --- a/admin/models/forms/admin_fields.js +++ b/admin/models/forms/admin_fields.js @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 23 of this MVC - @build 16th October, 2017 + @version @update number 25 of this MVC + @build 26th October, 2017 @created 12th October, 2017 @package Component Builder @subpackage admin_fields.js diff --git a/admin/models/forms/admin_fields.xml b/admin/models/forms/admin_fields.xml index c161bc2d3..05930f995 100644 --- a/admin/models/forms/admin_fields.xml +++ b/admin/models/forms/admin_fields.xml @@ -96,14 +96,14 @@ name="admin_view" label="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADMIN_VIEW_LABEL" description="COM_COMPONENTBUILDER_ADMIN_FIELDS_ADMIN_VIEW_DESCRIPTION" - class="fieldMedium" + class="list_class" multiple="false" required="true" readonly="true" button="false" /> - + 0 && type.length > 0){ var request = 'token='+token+'&type=' + type; } @@ -1216,7 +1216,7 @@ function getFieldsDisplay_server(type){ } function addData(result,where){ - jQuery(where).closest('.control-group').parent().append(result); + jQuery(result).insertAfter(jQuery(where).closest('.control-group')); } function addButtonID_server(type, size){ @@ -1235,10 +1235,10 @@ function addButtonID_server(type, size){ function addButtonID(type, where, size){ addButtonID_server(type, size).done(function(result) { if(result){ - if (1 == size) { - addData(result, '#jform_'+where); - } else if (2 == size) { + if (2 == size) { jQuery('#'+where).html(result); + } else { + addData(result, '#jform_'+where); } } }); diff --git a/admin/models/forms/admin_view.xml b/admin/models/forms/admin_view.xml index 833893642..f715e8bd9 100644 --- a/admin/models/forms/admin_view.xml +++ b/admin/models/forms/admin_view.xml @@ -340,7 +340,7 @@ default="[]" /> - + - + + maximum="14">
+ + diff --git a/admin/views/component_admin_views/tmpl/index.html b/admin/views/component_admin_views/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_admin_views/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_admin_views/view.html.php b/admin/views/component_admin_views/view.html.php new file mode 100644 index 000000000..ba4fca14f --- /dev/null +++ b/admin/views/component_admin_views/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_admin_views View class + */ +class ComponentbuilderViewComponent_admin_views extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_admin_views',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_admin_views.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_admin_views.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_admin_views.edit')) + { + // We can save the record. + JToolBarHelper::save('component_admin_views.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_admin_views.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_admin_views.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_admin_views.create')) + { + JToolBarHelper::apply('component_admin_views.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_admin_views.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_admin_views.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_admin_views.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_admin_views.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_admin_views.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_admin_views.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_admin_views.create')) + { + JToolBarHelper::custom('component_admin_views.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_admin_views.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_admin_views.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_admin_views', $this->item->id); + } + if ($this->canDo->get('component_admin_views.create')) + { + JToolBarHelper::custom('component_admin_views.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_admin_views.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_admin_views'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_ADMIN_VIEWS_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_admin_views.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_admin_views/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_config/submitbutton.js b/admin/views/component_config/submitbutton.js new file mode 100644 index 000000000..145583e82 --- /dev/null +++ b/admin/views/component_config/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 3 of this MVC + @build 26th October, 2017 + @created 23rd October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_config/tmpl/index.html b/admin/views/component_config/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_config/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_config/view.html.php b/admin/views/component_config/view.html.php new file mode 100644 index 000000000..4bcd18d4c --- /dev/null +++ b/admin/views/component_config/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_config View class + */ +class ComponentbuilderViewComponent_config extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_config',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CONFIG_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CONFIG_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_config.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_config.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_config.edit')) + { + // We can save the record. + JToolBarHelper::save('component_config.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_config.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_config.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_config.create')) + { + JToolBarHelper::apply('component_config.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_config.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_config.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_config.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_config.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_config.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_config.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_config.create')) + { + JToolBarHelper::custom('component_config.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_config.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_config.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_config', $this->item->id); + } + if ($this->canDo->get('component_config.create')) + { + JToolBarHelper::custom('component_config.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_config.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_config'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CONFIG_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CONFIG_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_config.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_config/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_custom_admin_menus/submitbutton.js b/admin/views/component_custom_admin_menus/submitbutton.js new file mode 100644 index 000000000..f0d9e6d08 --- /dev/null +++ b/admin/views/component_custom_admin_menus/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 23rd October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_custom_admin_menus/tmpl/index.html b/admin/views/component_custom_admin_menus/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_custom_admin_menus/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_custom_admin_menus/view.html.php b/admin/views/component_custom_admin_menus/view.html.php new file mode 100644 index 000000000..71d6794d6 --- /dev/null +++ b/admin/views/component_custom_admin_menus/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_custom_admin_menus View class + */ +class ComponentbuilderViewComponent_custom_admin_menus extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_menus',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_custom_admin_menus.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_custom_admin_menus.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_custom_admin_menus.edit')) + { + // We can save the record. + JToolBarHelper::save('component_custom_admin_menus.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_custom_admin_menus.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_custom_admin_menus.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_custom_admin_menus.create')) + { + JToolBarHelper::apply('component_custom_admin_menus.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_custom_admin_menus.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_custom_admin_menus.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_custom_admin_menus.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_custom_admin_menus.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_custom_admin_menus.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_custom_admin_menus.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_custom_admin_menus.create')) + { + JToolBarHelper::custom('component_custom_admin_menus.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_custom_admin_menus.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_custom_admin_menus.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_custom_admin_menus', $this->item->id); + } + if ($this->canDo->get('component_custom_admin_menus.create')) + { + JToolBarHelper::custom('component_custom_admin_menus.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_custom_admin_menus.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_custom_admin_menus'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_MENUS_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_custom_admin_menus.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_custom_admin_menus/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_custom_admin_views/submitbutton.js b/admin/views/component_custom_admin_views/submitbutton.js new file mode 100644 index 000000000..377332e90 --- /dev/null +++ b/admin/views/component_custom_admin_views/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + + + diff --git a/admin/views/component_custom_admin_views/tmpl/index.html b/admin/views/component_custom_admin_views/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_custom_admin_views/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_custom_admin_views/view.html.php b/admin/views/component_custom_admin_views/view.html.php new file mode 100644 index 000000000..cf777d45a --- /dev/null +++ b/admin/views/component_custom_admin_views/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_custom_admin_views View class + */ +class ComponentbuilderViewComponent_custom_admin_views extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_views',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_custom_admin_views.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_custom_admin_views.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_custom_admin_views.edit')) + { + // We can save the record. + JToolBarHelper::save('component_custom_admin_views.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_custom_admin_views.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_custom_admin_views.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_custom_admin_views.create')) + { + JToolBarHelper::apply('component_custom_admin_views.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_custom_admin_views.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_custom_admin_views.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_custom_admin_views.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_custom_admin_views.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_custom_admin_views.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_custom_admin_views.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_custom_admin_views.create')) + { + JToolBarHelper::custom('component_custom_admin_views.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_custom_admin_views.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_custom_admin_views.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_custom_admin_views', $this->item->id); + } + if ($this->canDo->get('component_custom_admin_views.create')) + { + JToolBarHelper::custom('component_custom_admin_views.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_custom_admin_views.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_custom_admin_views'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_CUSTOM_ADMIN_VIEWS_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_custom_admin_views.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_custom_admin_views/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_dashboard/submitbutton.js b/admin/views/component_dashboard/submitbutton.js new file mode 100644 index 000000000..3216bc12b --- /dev/null +++ b/admin/views/component_dashboard/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 4 of this MVC + @build 26th October, 2017 + @created 26th October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_dashboard/tmpl/index.html b/admin/views/component_dashboard/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_dashboard/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_dashboard/view.html.php b/admin/views/component_dashboard/view.html.php new file mode 100644 index 000000000..488740696 --- /dev/null +++ b/admin/views/component_dashboard/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_dashboard View class + */ +class ComponentbuilderViewComponent_dashboard extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_dashboard',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_dashboard.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_dashboard.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_dashboard.edit')) + { + // We can save the record. + JToolBarHelper::save('component_dashboard.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_dashboard.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_dashboard.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_dashboard.create')) + { + JToolBarHelper::apply('component_dashboard.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_dashboard.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_dashboard.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_dashboard.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_dashboard.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_dashboard.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_dashboard.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_dashboard.create')) + { + JToolBarHelper::custom('component_dashboard.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_dashboard.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_dashboard.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_dashboard', $this->item->id); + } + if ($this->canDo->get('component_dashboard.create')) + { + JToolBarHelper::custom('component_dashboard.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_dashboard.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_dashboard'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_DASHBOARD_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_dashboard.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_dashboard/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_files_folders/submitbutton.js b/admin/views/component_files_folders/submitbutton.js new file mode 100644 index 000000000..84bf9127e --- /dev/null +++ b/admin/views/component_files_folders/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 26th October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_files_folders/tmpl/index.html b/admin/views/component_files_folders/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_files_folders/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_files_folders/view.html.php b/admin/views/component_files_folders/view.html.php new file mode 100644 index 000000000..80d82f671 --- /dev/null +++ b/admin/views/component_files_folders/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_files_folders View class + */ +class ComponentbuilderViewComponent_files_folders extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_files_folders',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_files_folders.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_files_folders.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_files_folders.edit')) + { + // We can save the record. + JToolBarHelper::save('component_files_folders.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_files_folders.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_files_folders.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_files_folders.create')) + { + JToolBarHelper::apply('component_files_folders.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_files_folders.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_files_folders.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_files_folders.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_files_folders.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_files_folders.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_files_folders.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_files_folders.create')) + { + JToolBarHelper::custom('component_files_folders.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_files_folders.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_files_folders.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_files_folders', $this->item->id); + } + if ($this->canDo->get('component_files_folders.create')) + { + JToolBarHelper::custom('component_files_folders.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_files_folders.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_files_folders'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_FILES_FOLDERS_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_files_folders.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_files_folders/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_mysql_tweaks/submitbutton.js b/admin/views/component_mysql_tweaks/submitbutton.js new file mode 100644 index 000000000..dd63c3b69 --- /dev/null +++ b/admin/views/component_mysql_tweaks/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 5 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_mysql_tweaks/tmpl/index.html b/admin/views/component_mysql_tweaks/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_mysql_tweaks/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_mysql_tweaks/view.html.php b/admin/views/component_mysql_tweaks/view.html.php new file mode 100644 index 000000000..8ed0ade74 --- /dev/null +++ b/admin/views/component_mysql_tweaks/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_mysql_tweaks View class + */ +class ComponentbuilderViewComponent_mysql_tweaks extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_mysql_tweaks',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_mysql_tweaks.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_mysql_tweaks.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_mysql_tweaks.edit')) + { + // We can save the record. + JToolBarHelper::save('component_mysql_tweaks.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_mysql_tweaks.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_mysql_tweaks.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_mysql_tweaks.create')) + { + JToolBarHelper::apply('component_mysql_tweaks.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_mysql_tweaks.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_mysql_tweaks.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_mysql_tweaks.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_mysql_tweaks.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_mysql_tweaks.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_mysql_tweaks.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_mysql_tweaks.create')) + { + JToolBarHelper::custom('component_mysql_tweaks.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_mysql_tweaks.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_mysql_tweaks.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_mysql_tweaks', $this->item->id); + } + if ($this->canDo->get('component_mysql_tweaks.create')) + { + JToolBarHelper::custom('component_mysql_tweaks.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_mysql_tweaks.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_mysql_tweaks'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_MYSQL_TWEAKS_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_mysql_tweaks.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_mysql_tweaks/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_site_views/submitbutton.js b/admin/views/component_site_views/submitbutton.js new file mode 100644 index 000000000..a2c173bbe --- /dev/null +++ b/admin/views/component_site_views/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 3 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_site_views/tmpl/index.html b/admin/views/component_site_views/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_site_views/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_site_views/view.html.php b/admin/views/component_site_views/view.html.php new file mode 100644 index 000000000..1a06b43f6 --- /dev/null +++ b/admin/views/component_site_views/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_site_views View class + */ +class ComponentbuilderViewComponent_site_views extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_site_views',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_site_views.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_site_views.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_site_views.edit')) + { + // We can save the record. + JToolBarHelper::save('component_site_views.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_site_views.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_site_views.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_site_views.create')) + { + JToolBarHelper::apply('component_site_views.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_site_views.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_site_views.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_site_views.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_site_views.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_site_views.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_site_views.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_site_views.create')) + { + JToolBarHelper::custom('component_site_views.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_site_views.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_site_views.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_site_views', $this->item->id); + } + if ($this->canDo->get('component_site_views.create')) + { + JToolBarHelper::custom('component_site_views.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_site_views.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_site_views'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_SITE_VIEWS_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_site_views.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_site_views/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/component_updates/submitbutton.js b/admin/views/component_updates/submitbutton.js new file mode 100644 index 000000000..d817d4625 --- /dev/null +++ b/admin/views/component_updates/submitbutton.js @@ -0,0 +1,49 @@ +/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/ + __ __ _ _____ _ _ __ __ _ _ _ + \ \ / / | | | __ \ | | | | | \/ | | | | | | | + \ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| | + \ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` | + \ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| | + \/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_| + | | + |_| +/-------------------------------------------------------------------------------------------------------------------------------/ + + @version @update number 7 of this MVC + @build 26th October, 2017 + @created 22nd October, 2017 + @package Component Builder + @subpackage submitbutton.js + @author Llewellyn van der Merwe + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +Joomla.submitbutton = function(task) +{ + if (task == ''){ + return false; + } else { + var isValid=true; + var action = task.split('.'); + if (action[1] != 'cancel' && action[1] != 'close'){ + var forms = $$('form.form-validate'); + for (var i=0;i + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +JHtml::addIncludePath(JPATH_COMPONENT.'/helpers/html'); +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.formvalidation'); +JHtml::_('formbehavior.chosen', 'select'); +JHtml::_('behavior.keepalive'); +$componentParams = JComponentHelper::getParams('com_componentbuilder'); +?> + + + + diff --git a/admin/views/component_updates/tmpl/index.html b/admin/views/component_updates/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/component_updates/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/component_updates/view.html.php b/admin/views/component_updates/view.html.php new file mode 100644 index 000000000..331810812 --- /dev/null +++ b/admin/views/component_updates/view.html.php @@ -0,0 +1,199 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Component_updates View class + */ +class ComponentbuilderViewComponent_updates extends JViewLegacy +{ + /** + * display method of View + * @return void + */ + public function display($tpl = null) + { + // Assign the variables + $this->form = $this->get('Form'); + $this->item = $this->get('Item'); + $this->script = $this->get('Script'); + $this->state = $this->get('State'); + // get action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_updates',$this->item); + // get input + $jinput = JFactory::getApplication()->input; + $this->ref = $jinput->get('ref', 0, 'word'); + $this->refid = $jinput->get('refid', 0, 'int'); + $this->referral = ''; + if ($this->refid) + { + // return to the item that refered to this item + $this->referral = '&ref='.(string)$this->ref.'&refid='.(int)$this->refid; + } + elseif($this->ref) + { + // return to the list view that refered to this item + $this->referral = '&ref='.(string)$this->ref; + } + + // Set the toolbar + $this->addToolBar(); + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JFactory::getApplication()->input->set('hidemainmenu', true); + $user = JFactory::getUser(); + $userId = $user->id; + $isNew = $this->item->id == 0; + + JToolbarHelper::title( JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_UPDATES_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_UPDATES_EDIT'), 'pencil-2 article-add'); + // Built the actions for new and existing records. + if ($this->refid || $this->ref) + { + if ($this->canDo->get('component_updates.create') && $isNew) + { + // We can create the record. + JToolBarHelper::save('component_updates.save', 'JTOOLBAR_SAVE'); + } + elseif ($this->canDo->get('component_updates.edit')) + { + // We can save the record. + JToolBarHelper::save('component_updates.save', 'JTOOLBAR_SAVE'); + } + if ($isNew) + { + // Do not creat but cancel. + JToolBarHelper::cancel('component_updates.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + // We can close it. + JToolBarHelper::cancel('component_updates.cancel', 'JTOOLBAR_CLOSE'); + } + } + else + { + if ($isNew) + { + // For new records, check the create permission. + if ($this->canDo->get('component_updates.create')) + { + JToolBarHelper::apply('component_updates.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_updates.save', 'JTOOLBAR_SAVE'); + JToolBarHelper::custom('component_updates.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + }; + JToolBarHelper::cancel('component_updates.cancel', 'JTOOLBAR_CANCEL'); + } + else + { + if ($this->canDo->get('component_updates.edit')) + { + // We can save the new record + JToolBarHelper::apply('component_updates.apply', 'JTOOLBAR_APPLY'); + JToolBarHelper::save('component_updates.save', 'JTOOLBAR_SAVE'); + // We can save this record, but check the create permission to see + // if we can return to make a new one. + if ($this->canDo->get('component_updates.create')) + { + JToolBarHelper::custom('component_updates.save2new', 'save-new.png', 'save-new_f2.png', 'JTOOLBAR_SAVE_AND_NEW', false); + } + } + $canVersion = ($this->canDo->get('core.version') && $this->canDo->get('component_updates.version')); + if ($this->state->params->get('save_history', 1) && $this->canDo->get('component_updates.edit') && $canVersion) + { + JToolbarHelper::versions('com_componentbuilder.component_updates', $this->item->id); + } + if ($this->canDo->get('component_updates.create')) + { + JToolBarHelper::custom('component_updates.save2copy', 'save-copy.png', 'save-copy_f2.png', 'JTOOLBAR_SAVE_AS_COPY', false); + } + JToolBarHelper::cancel('component_updates.cancel', 'JTOOLBAR_CLOSE'); + } + } + JToolbarHelper::divider(); + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('component_updates'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 30) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true, 30); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $isNew = ($this->item->id < 1); + $document = JFactory::getDocument(); + $document->setTitle(JText::_($isNew ? 'COM_COMPONENTBUILDER_COMPONENT_UPDATES_NEW' : 'COM_COMPONENTBUILDER_COMPONENT_UPDATES_EDIT')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/component_updates.css"); + $document->addScript(JURI::root() . $this->script); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/component_updates/submitbutton.js"); + JText::script('view not acceptable. Error'); + } +} diff --git a/admin/views/componentbuilder/tmpl/default.php b/admin/views/componentbuilder/tmpl/default.php index 2ae7b6ee7..af6eeea3d 100644 --- a/admin/views/componentbuilder/tmpl/default.php +++ b/admin/views/componentbuilder/tmpl/default.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default.php diff --git a/admin/views/componentbuilder/tmpl/default_issues_the_closed_issues_on_github.php b/admin/views/componentbuilder/tmpl/default_issues_the_closed_issues_on_github.php index 463733e6a..c4b2a4734 100644 --- a/admin/views/componentbuilder/tmpl/default_issues_the_closed_issues_on_github.php +++ b/admin/views/componentbuilder/tmpl/default_issues_the_closed_issues_on_github.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_issues_the_closed_issues_on_github.php diff --git a/admin/views/componentbuilder/tmpl/default_issues_the_open_issues_on_github.php b/admin/views/componentbuilder/tmpl/default_issues_the_open_issues_on_github.php index fe337e198..e84d4effa 100644 --- a/admin/views/componentbuilder/tmpl/default_issues_the_open_issues_on_github.php +++ b/admin/views/componentbuilder/tmpl/default_issues_the_open_issues_on_github.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_issues_the_open_issues_on_github.php diff --git a/admin/views/componentbuilder/tmpl/default_main.php b/admin/views/componentbuilder/tmpl/default_main.php index 55dac264f..1bd9e1f9d 100644 --- a/admin/views/componentbuilder/tmpl/default_main.php +++ b/admin/views/componentbuilder/tmpl/default_main.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_main.php diff --git a/admin/views/componentbuilder/tmpl/default_readme_information.php b/admin/views/componentbuilder/tmpl/default_readme_information.php index 98c99ae37..f2672bcac 100644 --- a/admin/views/componentbuilder/tmpl/default_readme_information.php +++ b/admin/views/componentbuilder/tmpl/default_readme_information.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_readme_information.php diff --git a/admin/views/componentbuilder/tmpl/default_releases_information.php b/admin/views/componentbuilder/tmpl/default_releases_information.php index 79155c62f..9f5281465 100644 --- a/admin/views/componentbuilder/tmpl/default_releases_information.php +++ b/admin/views/componentbuilder/tmpl/default_releases_information.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_releases_information.php diff --git a/admin/views/componentbuilder/tmpl/default_vast_development_method_notice_board.php b/admin/views/componentbuilder/tmpl/default_vast_development_method_notice_board.php index e6e88ba83..7a23a4c48 100644 --- a/admin/views/componentbuilder/tmpl/default_vast_development_method_notice_board.php +++ b/admin/views/componentbuilder/tmpl/default_vast_development_method_notice_board.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_vast_development_method_notice_board.php diff --git a/admin/views/componentbuilder/tmpl/default_vdm.php b/admin/views/componentbuilder/tmpl/default_vdm.php index 3c1bd4a67..acde41276 100644 --- a/admin/views/componentbuilder/tmpl/default_vdm.php +++ b/admin/views/componentbuilder/tmpl/default_vdm.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_vdm.php diff --git a/admin/views/componentbuilder/tmpl/default_wiki_tutorials.php b/admin/views/componentbuilder/tmpl/default_wiki_tutorials.php index 4fbcdda17..7ffa5505d 100644 --- a/admin/views/componentbuilder/tmpl/default_wiki_tutorials.php +++ b/admin/views/componentbuilder/tmpl/default_wiki_tutorials.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage default_wiki_tutorials.php diff --git a/admin/views/componentbuilder/view.html.php b/admin/views/componentbuilder/view.html.php index e67c567f9..9116e2233 100644 --- a/admin/views/componentbuilder/view.html.php +++ b/admin/views/componentbuilder/view.html.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version 2.5.8 - @build 21st October, 2017 + @version 2.5.9 + @build 26th October, 2017 @created 30th April, 2015 @package Component Builder @subpackage view.html.php diff --git a/admin/views/components_admin_views/index.html b/admin/views/components_admin_views/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_admin_views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default.php b/admin/views/components_admin_views/tmpl/default.php new file mode 100644 index 000000000..4b1be77a6 --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_admin_views.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_admin_viewsList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default_batch_body.php b/admin/views/components_admin_views/tmpl/default_batch_body.php new file mode 100644 index 000000000..0d3412d6f --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default_batch_footer.php b/admin/views/components_admin_views/tmpl/default_batch_footer.php new file mode 100644 index 000000000..bb1676bae --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default_body.php b/admin/views/components_admin_views/tmpl/default_body.php new file mode 100644 index 000000000..d07850ee4 --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_admin_views&task=component_admin_views.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_admin_views',$item,'components_admin_views'); + ?> + + + get('component_admin_views.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_admin_views.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_admin_views.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_admin_views.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_admin_views.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_admin_views.', true, 'cb'); ?> + + published, $i, 'components_admin_views.', false, 'cb'); ?> + + + published, $i, 'components_admin_views.', true, 'cb'); ?> + + + published, $i, 'components_admin_views.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default_foot.php b/admin/views/components_admin_views/tmpl/default_foot.php new file mode 100644 index 000000000..851adf1fd --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default_head.php b/admin/views/components_admin_views/tmpl/default_head.php new file mode 100644 index 000000000..43886c10d --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/default_toolbar.php b/admin/views/components_admin_views/tmpl/default_toolbar.php new file mode 100644 index 000000000..18561e7bd --- /dev/null +++ b/admin/views/components_admin_views/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_admin_views/tmpl/index.html b/admin/views/components_admin_views/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_admin_views/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_admin_views/view.html.php b/admin/views/components_admin_views/view.html.php new file mode 100644 index 000000000..572c027d7 --- /dev/null +++ b/admin/views/components_admin_views/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_admin_views + */ +class ComponentbuilderViewComponents_admin_views extends JViewLegacy +{ + /** + * Components_admin_views view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_admin_views'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_admin_views'); + $this->canEdit = $this->canDo->get('component_admin_views.edit'); + $this->canState = $this->canDo->get('component_admin_views.edit.state'); + $this->canCreate = $this->canDo->get('component_admin_views.create'); + $this->canDelete = $this->canDo->get('component_admin_views.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_admin_views'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_admin_views.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_admin_views.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_admin_views.publish'); + JToolBarHelper::unpublishList('components_admin_views.unpublish'); + JToolBarHelper::archiveList('components_admin_views.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_admin_views.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_admin_views.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_admin_views.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_admin_views'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_ADMIN_VIEWS')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_admin_views.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_config/index.html b/admin/views/components_config/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_config/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default.php b/admin/views/components_config/tmpl/default.php new file mode 100644 index 000000000..f79927c10 --- /dev/null +++ b/admin/views/components_config/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_config.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_configList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_CONFIG_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default_batch_body.php b/admin/views/components_config/tmpl/default_batch_body.php new file mode 100644 index 000000000..4ca923e57 --- /dev/null +++ b/admin/views/components_config/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default_batch_footer.php b/admin/views/components_config/tmpl/default_batch_footer.php new file mode 100644 index 000000000..a552a0b29 --- /dev/null +++ b/admin/views/components_config/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default_body.php b/admin/views/components_config/tmpl/default_body.php new file mode 100644 index 000000000..a402467b7 --- /dev/null +++ b/admin/views/components_config/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_config&task=component_config.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_config',$item,'components_config'); + ?> + + + get('component_config.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_config.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_config.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_config.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_config.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_config.', true, 'cb'); ?> + + published, $i, 'components_config.', false, 'cb'); ?> + + + published, $i, 'components_config.', true, 'cb'); ?> + + + published, $i, 'components_config.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default_foot.php b/admin/views/components_config/tmpl/default_foot.php new file mode 100644 index 000000000..f34d33ecb --- /dev/null +++ b/admin/views/components_config/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default_head.php b/admin/views/components_config/tmpl/default_head.php new file mode 100644 index 000000000..e2c88d645 --- /dev/null +++ b/admin/views/components_config/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_config/tmpl/default_toolbar.php b/admin/views/components_config/tmpl/default_toolbar.php new file mode 100644 index 000000000..b1b090f55 --- /dev/null +++ b/admin/views/components_config/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_config/tmpl/index.html b/admin/views/components_config/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_config/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_config/view.html.php b/admin/views/components_config/view.html.php new file mode 100644 index 000000000..cc45b8121 --- /dev/null +++ b/admin/views/components_config/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_config + */ +class ComponentbuilderViewComponents_config extends JViewLegacy +{ + /** + * Components_config view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_config'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_config'); + $this->canEdit = $this->canDo->get('component_config.edit'); + $this->canState = $this->canDo->get('component_config.edit.state'); + $this->canCreate = $this->canDo->get('component_config.create'); + $this->canDelete = $this->canDo->get('component_config.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_CONFIG'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_config'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_config.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_config.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_config.publish'); + JToolBarHelper::unpublishList('components_config.unpublish'); + JToolBarHelper::archiveList('components_config.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_config.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_config.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_config.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_config'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_CONFIG')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_config.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_custom_admin_menus/index.html b/admin/views/components_custom_admin_menus/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_custom_admin_menus/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default.php b/admin/views/components_custom_admin_menus/tmpl/default.php new file mode 100644 index 000000000..afbd0d7c1 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_custom_admin_menus.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_custom_admin_menusList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default_batch_body.php b/admin/views/components_custom_admin_menus/tmpl/default_batch_body.php new file mode 100644 index 000000000..f1c723465 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default_batch_footer.php b/admin/views/components_custom_admin_menus/tmpl/default_batch_footer.php new file mode 100644 index 000000000..49c050909 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default_body.php b/admin/views/components_custom_admin_menus/tmpl/default_body.php new file mode 100644 index 000000000..96a4e0d46 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_custom_admin_menus&task=component_custom_admin_menus.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_custom_admin_menus',$item,'components_custom_admin_menus'); + ?> + + + get('component_custom_admin_menus.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_custom_admin_menus.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_custom_admin_menus.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_custom_admin_menus.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_custom_admin_menus.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_custom_admin_menus.', true, 'cb'); ?> + + published, $i, 'components_custom_admin_menus.', false, 'cb'); ?> + + + published, $i, 'components_custom_admin_menus.', true, 'cb'); ?> + + + published, $i, 'components_custom_admin_menus.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default_foot.php b/admin/views/components_custom_admin_menus/tmpl/default_foot.php new file mode 100644 index 000000000..142da91e7 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default_head.php b/admin/views/components_custom_admin_menus/tmpl/default_head.php new file mode 100644 index 000000000..29ffbca3a --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/default_toolbar.php b/admin/views/components_custom_admin_menus/tmpl/default_toolbar.php new file mode 100644 index 000000000..18b222f57 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/tmpl/index.html b/admin/views/components_custom_admin_menus/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_custom_admin_menus/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_custom_admin_menus/view.html.php b/admin/views/components_custom_admin_menus/view.html.php new file mode 100644 index 000000000..d5f4cbc27 --- /dev/null +++ b/admin/views/components_custom_admin_menus/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_custom_admin_menus + */ +class ComponentbuilderViewComponents_custom_admin_menus extends JViewLegacy +{ + /** + * Components_custom_admin_menus view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_custom_admin_menus'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_menus'); + $this->canEdit = $this->canDo->get('component_custom_admin_menus.edit'); + $this->canState = $this->canDo->get('component_custom_admin_menus.edit.state'); + $this->canCreate = $this->canDo->get('component_custom_admin_menus.create'); + $this->canDelete = $this->canDo->get('component_custom_admin_menus.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_custom_admin_menus'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_custom_admin_menus.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_custom_admin_menus.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_custom_admin_menus.publish'); + JToolBarHelper::unpublishList('components_custom_admin_menus.unpublish'); + JToolBarHelper::archiveList('components_custom_admin_menus.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_custom_admin_menus.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_custom_admin_menus.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_custom_admin_menus.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_custom_admin_menus'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_MENUS')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_custom_admin_menus.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_custom_admin_views/index.html b/admin/views/components_custom_admin_views/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_custom_admin_views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default.php b/admin/views/components_custom_admin_views/tmpl/default.php new file mode 100644 index 000000000..630098941 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_custom_admin_views.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_custom_admin_viewsList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default_batch_body.php b/admin/views/components_custom_admin_views/tmpl/default_batch_body.php new file mode 100644 index 000000000..d87bd4619 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default_batch_footer.php b/admin/views/components_custom_admin_views/tmpl/default_batch_footer.php new file mode 100644 index 000000000..df5006f28 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default_body.php b/admin/views/components_custom_admin_views/tmpl/default_body.php new file mode 100644 index 000000000..ec07f8e75 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_custom_admin_views&task=component_custom_admin_views.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_custom_admin_views',$item,'components_custom_admin_views'); + ?> + + + get('component_custom_admin_views.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_custom_admin_views.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_custom_admin_views.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_custom_admin_views.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_custom_admin_views.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_custom_admin_views.', true, 'cb'); ?> + + published, $i, 'components_custom_admin_views.', false, 'cb'); ?> + + + published, $i, 'components_custom_admin_views.', true, 'cb'); ?> + + + published, $i, 'components_custom_admin_views.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default_foot.php b/admin/views/components_custom_admin_views/tmpl/default_foot.php new file mode 100644 index 000000000..448f227c0 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default_head.php b/admin/views/components_custom_admin_views/tmpl/default_head.php new file mode 100644 index 000000000..4ece30690 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/default_toolbar.php b/admin/views/components_custom_admin_views/tmpl/default_toolbar.php new file mode 100644 index 000000000..bf733fd9b --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_custom_admin_views/tmpl/index.html b/admin/views/components_custom_admin_views/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_custom_admin_views/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_custom_admin_views/view.html.php b/admin/views/components_custom_admin_views/view.html.php new file mode 100644 index 000000000..f5cecaea0 --- /dev/null +++ b/admin/views/components_custom_admin_views/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_custom_admin_views + */ +class ComponentbuilderViewComponents_custom_admin_views extends JViewLegacy +{ + /** + * Components_custom_admin_views view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_custom_admin_views'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_custom_admin_views'); + $this->canEdit = $this->canDo->get('component_custom_admin_views.edit'); + $this->canState = $this->canDo->get('component_custom_admin_views.edit.state'); + $this->canCreate = $this->canDo->get('component_custom_admin_views.create'); + $this->canDelete = $this->canDo->get('component_custom_admin_views.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_custom_admin_views'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_custom_admin_views.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_custom_admin_views.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_custom_admin_views.publish'); + JToolBarHelper::unpublishList('components_custom_admin_views.unpublish'); + JToolBarHelper::archiveList('components_custom_admin_views.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_custom_admin_views.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_custom_admin_views.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_custom_admin_views.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_custom_admin_views'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_CUSTOM_ADMIN_VIEWS')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_custom_admin_views.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_dashboard/index.html b/admin/views/components_dashboard/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_dashboard/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default.php b/admin/views/components_dashboard/tmpl/default.php new file mode 100644 index 000000000..9a1795612 --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_dashboard.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_dashboardList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default_batch_body.php b/admin/views/components_dashboard/tmpl/default_batch_body.php new file mode 100644 index 000000000..6c7bff06f --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default_batch_footer.php b/admin/views/components_dashboard/tmpl/default_batch_footer.php new file mode 100644 index 000000000..6175e6c23 --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default_body.php b/admin/views/components_dashboard/tmpl/default_body.php new file mode 100644 index 000000000..70b824c3f --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_dashboard&task=component_dashboard.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_dashboard',$item,'components_dashboard'); + ?> + + + get('component_dashboard.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_dashboard.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_dashboard.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_dashboard.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_dashboard.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_dashboard.', true, 'cb'); ?> + + published, $i, 'components_dashboard.', false, 'cb'); ?> + + + published, $i, 'components_dashboard.', true, 'cb'); ?> + + + published, $i, 'components_dashboard.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default_foot.php b/admin/views/components_dashboard/tmpl/default_foot.php new file mode 100644 index 000000000..25ef372b4 --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default_head.php b/admin/views/components_dashboard/tmpl/default_head.php new file mode 100644 index 000000000..5782c724c --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/default_toolbar.php b/admin/views/components_dashboard/tmpl/default_toolbar.php new file mode 100644 index 000000000..039c9d3da --- /dev/null +++ b/admin/views/components_dashboard/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_dashboard/tmpl/index.html b/admin/views/components_dashboard/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_dashboard/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_dashboard/view.html.php b/admin/views/components_dashboard/view.html.php new file mode 100644 index 000000000..af7ba1080 --- /dev/null +++ b/admin/views/components_dashboard/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_dashboard + */ +class ComponentbuilderViewComponents_dashboard extends JViewLegacy +{ + /** + * Components_dashboard view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_dashboard'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_dashboard'); + $this->canEdit = $this->canDo->get('component_dashboard.edit'); + $this->canState = $this->canDo->get('component_dashboard.edit.state'); + $this->canCreate = $this->canDo->get('component_dashboard.create'); + $this->canDelete = $this->canDo->get('component_dashboard.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_dashboard'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_dashboard.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_dashboard.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_dashboard.publish'); + JToolBarHelper::unpublishList('components_dashboard.unpublish'); + JToolBarHelper::archiveList('components_dashboard.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_dashboard.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_dashboard.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_dashboard.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_dashboard'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_DASHBOARD')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_dashboard.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_files_folders/index.html b/admin/views/components_files_folders/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_files_folders/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default.php b/admin/views/components_files_folders/tmpl/default.php new file mode 100644 index 000000000..35347d60f --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_files_folders.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_files_foldersList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default_batch_body.php b/admin/views/components_files_folders/tmpl/default_batch_body.php new file mode 100644 index 000000000..b815ce3f1 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default_batch_footer.php b/admin/views/components_files_folders/tmpl/default_batch_footer.php new file mode 100644 index 000000000..cd75ce6d3 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default_body.php b/admin/views/components_files_folders/tmpl/default_body.php new file mode 100644 index 000000000..96f1ca8c1 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_files_folders&task=component_files_folders.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_files_folders',$item,'components_files_folders'); + ?> + + + get('component_files_folders.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_files_folders.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_files_folders.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_files_folders.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_files_folders.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_files_folders.', true, 'cb'); ?> + + published, $i, 'components_files_folders.', false, 'cb'); ?> + + + published, $i, 'components_files_folders.', true, 'cb'); ?> + + + published, $i, 'components_files_folders.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default_foot.php b/admin/views/components_files_folders/tmpl/default_foot.php new file mode 100644 index 000000000..8fbd68d73 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default_head.php b/admin/views/components_files_folders/tmpl/default_head.php new file mode 100644 index 000000000..59fa75a97 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/default_toolbar.php b/admin/views/components_files_folders/tmpl/default_toolbar.php new file mode 100644 index 000000000..925764f50 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_files_folders/tmpl/index.html b/admin/views/components_files_folders/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_files_folders/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_files_folders/view.html.php b/admin/views/components_files_folders/view.html.php new file mode 100644 index 000000000..76d36ddb0 --- /dev/null +++ b/admin/views/components_files_folders/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_files_folders + */ +class ComponentbuilderViewComponents_files_folders extends JViewLegacy +{ + /** + * Components_files_folders view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_files_folders'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_files_folders'); + $this->canEdit = $this->canDo->get('component_files_folders.edit'); + $this->canState = $this->canDo->get('component_files_folders.edit.state'); + $this->canCreate = $this->canDo->get('component_files_folders.create'); + $this->canDelete = $this->canDo->get('component_files_folders.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_files_folders'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_files_folders.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_files_folders.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_files_folders.publish'); + JToolBarHelper::unpublishList('components_files_folders.unpublish'); + JToolBarHelper::archiveList('components_files_folders.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_files_folders.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_files_folders.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_files_folders.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_files_folders'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_FILES_FOLDERS')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_files_folders.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_mysql_tweaks/index.html b/admin/views/components_mysql_tweaks/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_mysql_tweaks/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default.php b/admin/views/components_mysql_tweaks/tmpl/default.php new file mode 100644 index 000000000..ce73d5da3 --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_mysql_tweaks.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_mysql_tweaksList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default_batch_body.php b/admin/views/components_mysql_tweaks/tmpl/default_batch_body.php new file mode 100644 index 000000000..51e3a8aa6 --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default_batch_footer.php b/admin/views/components_mysql_tweaks/tmpl/default_batch_footer.php new file mode 100644 index 000000000..e50f21ea5 --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default_body.php b/admin/views/components_mysql_tweaks/tmpl/default_body.php new file mode 100644 index 000000000..de22b3aa6 --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_mysql_tweaks&task=component_mysql_tweaks.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_mysql_tweaks',$item,'components_mysql_tweaks'); + ?> + + + get('component_mysql_tweaks.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_mysql_tweaks.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_mysql_tweaks.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_mysql_tweaks.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_mysql_tweaks.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_mysql_tweaks.', true, 'cb'); ?> + + published, $i, 'components_mysql_tweaks.', false, 'cb'); ?> + + + published, $i, 'components_mysql_tweaks.', true, 'cb'); ?> + + + published, $i, 'components_mysql_tweaks.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default_foot.php b/admin/views/components_mysql_tweaks/tmpl/default_foot.php new file mode 100644 index 000000000..851adf1fd --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default_head.php b/admin/views/components_mysql_tweaks/tmpl/default_head.php new file mode 100644 index 000000000..4b4246a46 --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/default_toolbar.php b/admin/views/components_mysql_tweaks/tmpl/default_toolbar.php new file mode 100644 index 000000000..d14997a1e --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/tmpl/index.html b/admin/views/components_mysql_tweaks/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_mysql_tweaks/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_mysql_tweaks/view.html.php b/admin/views/components_mysql_tweaks/view.html.php new file mode 100644 index 000000000..dab4bf6a3 --- /dev/null +++ b/admin/views/components_mysql_tweaks/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_mysql_tweaks + */ +class ComponentbuilderViewComponents_mysql_tweaks extends JViewLegacy +{ + /** + * Components_mysql_tweaks view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_mysql_tweaks'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_mysql_tweaks'); + $this->canEdit = $this->canDo->get('component_mysql_tweaks.edit'); + $this->canState = $this->canDo->get('component_mysql_tweaks.edit.state'); + $this->canCreate = $this->canDo->get('component_mysql_tweaks.create'); + $this->canDelete = $this->canDo->get('component_mysql_tweaks.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_mysql_tweaks'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_mysql_tweaks.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_mysql_tweaks.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_mysql_tweaks.publish'); + JToolBarHelper::unpublishList('components_mysql_tweaks.unpublish'); + JToolBarHelper::archiveList('components_mysql_tweaks.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_mysql_tweaks.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_mysql_tweaks.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_mysql_tweaks.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_mysql_tweaks'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_MYSQL_TWEAKS')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_mysql_tweaks.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_site_views/index.html b/admin/views/components_site_views/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_site_views/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default.php b/admin/views/components_site_views/tmpl/default.php new file mode 100644 index 000000000..a5eeff54a --- /dev/null +++ b/admin/views/components_site_views/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_site_views.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_site_viewsList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default_batch_body.php b/admin/views/components_site_views/tmpl/default_batch_body.php new file mode 100644 index 000000000..436515b78 --- /dev/null +++ b/admin/views/components_site_views/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default_batch_footer.php b/admin/views/components_site_views/tmpl/default_batch_footer.php new file mode 100644 index 000000000..2422e1a83 --- /dev/null +++ b/admin/views/components_site_views/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default_body.php b/admin/views/components_site_views/tmpl/default_body.php new file mode 100644 index 000000000..c9df15b71 --- /dev/null +++ b/admin/views/components_site_views/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_site_views&task=component_site_views.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_site_views',$item,'components_site_views'); + ?> + + + get('component_site_views.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_site_views.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_site_views.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_site_views.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_site_views.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_site_views.', true, 'cb'); ?> + + published, $i, 'components_site_views.', false, 'cb'); ?> + + + published, $i, 'components_site_views.', true, 'cb'); ?> + + + published, $i, 'components_site_views.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default_foot.php b/admin/views/components_site_views/tmpl/default_foot.php new file mode 100644 index 000000000..f1b50182c --- /dev/null +++ b/admin/views/components_site_views/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default_head.php b/admin/views/components_site_views/tmpl/default_head.php new file mode 100644 index 000000000..b9396af32 --- /dev/null +++ b/admin/views/components_site_views/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/default_toolbar.php b/admin/views/components_site_views/tmpl/default_toolbar.php new file mode 100644 index 000000000..d2e0e27dd --- /dev/null +++ b/admin/views/components_site_views/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_site_views/tmpl/index.html b/admin/views/components_site_views/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_site_views/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_site_views/view.html.php b/admin/views/components_site_views/view.html.php new file mode 100644 index 000000000..dd852d1ee --- /dev/null +++ b/admin/views/components_site_views/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_site_views + */ +class ComponentbuilderViewComponents_site_views extends JViewLegacy +{ + /** + * Components_site_views view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_site_views'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_site_views'); + $this->canEdit = $this->canDo->get('component_site_views.edit'); + $this->canState = $this->canDo->get('component_site_views.edit.state'); + $this->canCreate = $this->canDo->get('component_site_views.create'); + $this->canDelete = $this->canDo->get('component_site_views.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_site_views'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_site_views.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_site_views.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_site_views.publish'); + JToolBarHelper::unpublishList('components_site_views.unpublish'); + JToolBarHelper::archiveList('components_site_views.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_site_views.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_site_views.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_site_views.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_site_views'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_SITE_VIEWS')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_site_views.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/components_updates/index.html b/admin/views/components_updates/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_updates/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default.php b/admin/views/components_updates/tmpl/default.php new file mode 100644 index 000000000..ec5bbfd12 --- /dev/null +++ b/admin/views/components_updates/tmpl/default.php @@ -0,0 +1,99 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// load tooltip behavior +JHtml::_('behavior.tooltip'); +JHtml::_('behavior.multiselect'); +JHtml::_('dropdown.init'); +JHtml::_('formbehavior.chosen', 'select'); + +if ($this->saveOrder) +{ + $saveOrderingUrl = 'index.php?option=com_componentbuilder&task=components_updates.saveOrderAjax&tmpl=component'; + JHtml::_('sortablelist.sortable', 'component_updatesList', 'adminForm', strtolower($this->listDirn), $saveOrderingUrl); +} + +?> + +
+sidebar)): ?> +
+ sidebar; ?> +
+
+ +
+ +items)): ?> + loadTemplate('toolbar');?> +
+ +
+ + loadTemplate('toolbar');?> + + loadTemplate('head');?> + loadTemplate('foot');?> + loadTemplate('body');?> +
+ + canCreate && $this->canEdit) : ?> + JText::_('COM_COMPONENTBUILDER_COMPONENTS_UPDATES_BATCH_OPTIONS'), + 'footer' => $this->loadTemplate('batch_footer') + ), + $this->loadTemplate('batch_body') + ); ?> + + + + +
+ + + + \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default_batch_body.php b/admin/views/components_updates/tmpl/default_batch_body.php new file mode 100644 index 000000000..0021801b6 --- /dev/null +++ b/admin/views/components_updates/tmpl/default_batch_body.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + +

+batchDisplay; ?> \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default_batch_footer.php b/admin/views/components_updates/tmpl/default_batch_footer.php new file mode 100644 index 000000000..aeb31dcf4 --- /dev/null +++ b/admin/views/components_updates/tmpl/default_batch_footer.php @@ -0,0 +1,37 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + + + \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default_body.php b/admin/views/components_updates/tmpl/default_body.php new file mode 100644 index 000000000..9533dd086 --- /dev/null +++ b/admin/views/components_updates/tmpl/default_body.php @@ -0,0 +1,108 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +$edit = "index.php?option=com_componentbuilder&view=components_updates&task=component_updates.edit"; + +?> +items as $i => $item): ?> + user->authorise('core.manage', 'com_checkin') || $item->checked_out == $this->user->id || $item->checked_out == 0; + $userChkOut = JFactory::getUser($item->checked_out); + $canDo = ComponentbuilderHelper::getActions('component_updates',$item,'components_updates'); + ?> + + + get('component_updates.edit.state')): ?> + saveOrder) + { + $iconClass = ' inactive'; + } + else + { + $iconClass = ' inactive tip-top" hasTooltip" title="' . JHtml::tooltipText('JORDERINGDISABLED'); + } + ?> + + + + saveOrder) : ?> + + + + ⋮ + + + + get('component_updates.edit')): ?> + checked_out) : ?> + + id); ?> + + □ + + + id); ?> + + + □ + + + + get('component_updates.edit')): ?> +
+ escape($item->joomla_component_system_name); ?> + checked_out): ?> + name, $item->checked_out_time, 'components_updates.', $canCheckin); ?> + +
+ +
escape($item->joomla_component_system_name); ?>
+ + + + get('component_updates.edit.state')) : ?> + checked_out) : ?> + + published, $i, 'components_updates.', true, 'cb'); ?> + + published, $i, 'components_updates.', false, 'cb'); ?> + + + published, $i, 'components_updates.', true, 'cb'); ?> + + + published, $i, 'components_updates.', false, 'cb'); ?> + + + + id; ?> + + + \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default_foot.php b/admin/views/components_updates/tmpl/default_foot.php new file mode 100644 index 000000000..8aa35e533 --- /dev/null +++ b/admin/views/components_updates/tmpl/default_foot.php @@ -0,0 +1,32 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + pagination->getListFooter(); ?> + \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default_head.php b/admin/views/components_updates/tmpl/default_head.php new file mode 100644 index 000000000..a9161252b --- /dev/null +++ b/admin/views/components_updates/tmpl/default_head.php @@ -0,0 +1,61 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> + + canEdit&& $this->canState): ?> + + ', 'ordering', $this->listDirn, $this->listOrder, null, 'asc', 'JGRID_HEADING_ORDERING'); ?> + + + + + + + ▾ + + + ■ + + + + + + canState): ?> + + listDirn, $this->listOrder); ?> + + + + + + + + listDirn, $this->listOrder); ?> + + \ No newline at end of file diff --git a/admin/views/components_updates/tmpl/default_toolbar.php b/admin/views/components_updates/tmpl/default_toolbar.php new file mode 100644 index 000000000..959047e76 --- /dev/null +++ b/admin/views/components_updates/tmpl/default_toolbar.php @@ -0,0 +1,59 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +?> +
+ +
+ + +
+
+ + pagination->getLimitBox(); ?> +
+
+ + +
+
+ + +
+
+
\ No newline at end of file diff --git a/admin/views/components_updates/tmpl/index.html b/admin/views/components_updates/tmpl/index.html new file mode 100644 index 000000000..fa6d84e80 --- /dev/null +++ b/admin/views/components_updates/tmpl/index.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/admin/views/components_updates/view.html.php b/admin/views/components_updates/view.html.php new file mode 100644 index 000000000..e6abc9ceb --- /dev/null +++ b/admin/views/components_updates/view.html.php @@ -0,0 +1,238 @@ + + @copyright Copyright (C) 2015. All Rights Reserved + @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + + Builds Complex Joomla Components + +/-----------------------------------------------------------------------------------------------------------------------------*/ + +// No direct access to this file +defined('_JEXEC') or die('Restricted access'); + +// import Joomla view library +jimport('joomla.application.component.view'); + +/** + * Componentbuilder View class for the Components_updates + */ +class ComponentbuilderViewComponents_updates extends JViewLegacy +{ + /** + * Components_updates view display method + * @return void + */ + function display($tpl = null) + { + if ($this->getLayout() !== 'modal') + { + // Include helper submenu + ComponentbuilderHelper::addSubmenu('components_updates'); + } + + // Assign data to the view + $this->items = $this->get('Items'); + $this->pagination = $this->get('Pagination'); + $this->state = $this->get('State'); + $this->user = JFactory::getUser(); + $this->listOrder = $this->escape($this->state->get('list.ordering')); + $this->listDirn = $this->escape($this->state->get('list.direction')); + $this->saveOrder = $this->listOrder == 'ordering'; + // get global action permissions + $this->canDo = ComponentbuilderHelper::getActions('component_updates'); + $this->canEdit = $this->canDo->get('component_updates.edit'); + $this->canState = $this->canDo->get('component_updates.edit.state'); + $this->canCreate = $this->canDo->get('component_updates.create'); + $this->canDelete = $this->canDo->get('component_updates.delete'); + $this->canBatch = $this->canDo->get('core.batch'); + + // We don't need toolbar in the modal window. + if ($this->getLayout() !== 'modal') + { + $this->addToolbar(); + $this->sidebar = JHtmlSidebar::render(); + // load the batch html + if ($this->canCreate && $this->canEdit && $this->canState) + { + $this->batchDisplay = JHtmlBatch_::render(); + } + } + + // Check for errors. + if (count($errors = $this->get('Errors'))) + { + throw new Exception(implode("\n", $errors), 500); + } + + // Display the template + parent::display($tpl); + + // Set the document + $this->setDocument(); + } + + /** + * Setting the toolbar + */ + protected function addToolBar() + { + JToolBarHelper::title(JText::_('COM_COMPONENTBUILDER_COMPONENTS_UPDATES'), 'joomla'); + JHtmlSidebar::setAction('index.php?option=com_componentbuilder&view=components_updates'); + JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields'); + + if ($this->canCreate) + { + JToolBarHelper::addNew('component_updates.add'); + } + + // Only load if there are items + if (ComponentbuilderHelper::checkArray($this->items)) + { + if ($this->canEdit) + { + JToolBarHelper::editList('component_updates.edit'); + } + + if ($this->canState) + { + JToolBarHelper::publishList('components_updates.publish'); + JToolBarHelper::unpublishList('components_updates.unpublish'); + JToolBarHelper::archiveList('components_updates.archive'); + + if ($this->canDo->get('core.admin')) + { + JToolBarHelper::checkin('components_updates.checkin'); + } + } + + // Add a batch button + if ($this->canBatch && $this->canCreate && $this->canEdit && $this->canState) + { + // Get the toolbar object instance + $bar = JToolBar::getInstance('toolbar'); + // set the batch button name + $title = JText::_('JTOOLBAR_BATCH'); + // Instantiate a new JLayoutFile instance and render the batch button + $layout = new JLayoutFile('joomla.toolbar.batch'); + // add the button to the page + $dhtml = $layout->render(array('title' => $title)); + $bar->appendButton('Custom', $dhtml, 'batch'); + } + + if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete)) + { + JToolbarHelper::deleteList('', 'components_updates.delete', 'JTOOLBAR_EMPTY_TRASH'); + } + elseif ($this->canState && $this->canDelete) + { + JToolbarHelper::trash('components_updates.trash'); + } + } + + // set help url for this view if found + $help_url = ComponentbuilderHelper::getHelpUrl('components_updates'); + if (ComponentbuilderHelper::checkString($help_url)) + { + JToolbarHelper::help('COM_COMPONENTBUILDER_HELP_MANAGER', false, $help_url); + } + + // add the options comp button + if ($this->canDo->get('core.admin') || $this->canDo->get('core.options')) + { + JToolBarHelper::preferences('com_componentbuilder'); + } + + if ($this->canState) + { + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_PUBLISHED'), + 'filter_published', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions'), 'value', 'text', $this->state->get('filter.published'), true) + ); + // only load if batch allowed + if ($this->canBatch) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_STATE'), + 'batch[published]', + JHtml::_('select.options', JHtml::_('jgrid.publishedOptions', array('all' => false)), 'value', 'text', '', true) + ); + } + } + + JHtmlSidebar::addFilter( + JText::_('JOPTION_SELECT_ACCESS'), + 'filter_access', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text', $this->state->get('filter.access')) + ); + + if ($this->canBatch && $this->canCreate && $this->canEdit) + { + JHtmlBatch_::addListSelection( + JText::_('COM_COMPONENTBUILDER_KEEP_ORIGINAL_ACCESS'), + 'batch[access]', + JHtml::_('select.options', JHtml::_('access.assetgroups'), 'value', 'text') + ); + } + } + + /** + * Method to set up the document properties + * + * @return void + */ + protected function setDocument() + { + $document = JFactory::getDocument(); + $document->setTitle(JText::_('COM_COMPONENTBUILDER_COMPONENTS_UPDATES')); + $document->addStyleSheet(JURI::root() . "administrator/components/com_componentbuilder/assets/css/components_updates.css"); + } + + /** + * Escapes a value for output in a view script. + * + * @param mixed $var The output to escape. + * + * @return mixed The escaped value. + */ + public function escape($var) + { + if(strlen($var) > 50) + { + // use the helper htmlEscape method instead and shorten the string + return ComponentbuilderHelper::htmlEscape($var, $this->_charset, true); + } + // use the helper htmlEscape method instead. + return ComponentbuilderHelper::htmlEscape($var, $this->_charset); + } + + /** + * Returns an array of fields the table can be sorted by + * + * @return array Array containing the field name to sort by as the key and display text as value + */ + protected function getSortFields() + { + return array( + 'a.sorting' => JText::_('JGRID_HEADING_ORDERING'), + 'a.published' => JText::_('JSTATUS'), + 'a.id' => JText::_('JGRID_HEADING_ID') + ); + } +} diff --git a/admin/views/custom_admin_view/submitbutton.js b/admin/views/custom_admin_view/submitbutton.js index 999c0d15c..90600acaa 100644 --- a/admin/views/custom_admin_view/submitbutton.js +++ b/admin/views/custom_admin_view/submitbutton.js @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage submitbutton.js diff --git a/admin/views/custom_admin_view/tmpl/edit.php b/admin/views/custom_admin_view/tmpl/edit.php index 487d58c35..4ccd91e49 100644 --- a/admin/views/custom_admin_view/tmpl/edit.php +++ b/admin/views/custom_admin_view/tmpl/edit.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 32 of this MVC - @build 20th October, 2017 + @build 25th October, 2017 @created 13th August, 2015 @package Component Builder @subpackage edit.php @@ -165,123 +165,123 @@ $componentParams = JComponentHelper::getParams('com_componentbuilder'); diff --git a/admin/views/joomla_component/view.html.php b/admin/views/joomla_component/view.html.php index 23fec6c0e..5dbbc87db 100644 --- a/admin/views/joomla_component/view.html.php +++ b/admin/views/joomla_component/view.html.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage view.html.php @@ -64,16 +64,7 @@ class ComponentbuilderViewJoomla_component extends JViewLegacy } // Get Linked view data - $this->vwnadmin_views = $this->get('Vwnadmin_views'); - - // Get Linked view data - $this->vwocustom_admin_views = $this->get('Vwocustom_admin_views'); - - // Get Linked view data - $this->vwpsite_views = $this->get('Vwpsite_views'); - - // Get Linked view data - $this->vwqtranslation = $this->get('Vwqtranslation'); + $this->vwmtranslation = $this->get('Vwmtranslation'); // Set the toolbar $this->addToolBar(); @@ -217,7 +208,16 @@ class ComponentbuilderViewJoomla_component extends JViewLegacy $document->addScriptDeclaration($footable); $document->addScript(JURI::root() . $this->script); - $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/joomla_component/submitbutton.js"); + $document->addScript(JURI::root() . "administrator/components/com_componentbuilder/views/joomla_component/submitbutton.js"); + // add JavaScripts + $document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit/js/uikit.min.js' ); + $document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit/js/components/lightbox.min.js', 'text/javascript', true); + $document->addScript( JURI::root(true) .'/media/com_componentbuilder/uikit/js/components/notify.min.js', 'text/javascript', true); + // add the style sheets + $document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit/css/uikit.gradient.min.css' ); + $document->addStyleSheet( JURI::root(true) .'/media/com_componentbuilder/uikit/css/components/notify.gradient.min.css' ); + // add var key + $document->addScriptDeclaration("var vastDevMod = '".$this->get('VDM')."';"); JText::script('view not acceptable. Error'); } } diff --git a/admin/views/joomla_components/tmpl/default.php b/admin/views/joomla_components/tmpl/default.php index 060cd0bac..4ebce4dd4 100644 --- a/admin/views/joomla_components/tmpl/default.php +++ b/admin/views/joomla_components/tmpl/default.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default.php diff --git a/admin/views/joomla_components/tmpl/default_batch_body.php b/admin/views/joomla_components/tmpl/default_batch_body.php index e216ec82c..88bfbc39e 100644 --- a/admin/views/joomla_components/tmpl/default_batch_body.php +++ b/admin/views/joomla_components/tmpl/default_batch_body.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default_batch_body.php diff --git a/admin/views/joomla_components/tmpl/default_batch_footer.php b/admin/views/joomla_components/tmpl/default_batch_footer.php index 6c3189335..8d990f64d 100644 --- a/admin/views/joomla_components/tmpl/default_batch_footer.php +++ b/admin/views/joomla_components/tmpl/default_batch_footer.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default_batch_footer.php diff --git a/admin/views/joomla_components/tmpl/default_body.php b/admin/views/joomla_components/tmpl/default_body.php index d7bcd56a0..eddc300a3 100644 --- a/admin/views/joomla_components/tmpl/default_body.php +++ b/admin/views/joomla_components/tmpl/default_body.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default_body.php diff --git a/admin/views/joomla_components/tmpl/default_foot.php b/admin/views/joomla_components/tmpl/default_foot.php index 42c5cac83..457011b89 100644 --- a/admin/views/joomla_components/tmpl/default_foot.php +++ b/admin/views/joomla_components/tmpl/default_foot.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default_foot.php diff --git a/admin/views/joomla_components/tmpl/default_head.php b/admin/views/joomla_components/tmpl/default_head.php index cdde05eba..a21763c96 100644 --- a/admin/views/joomla_components/tmpl/default_head.php +++ b/admin/views/joomla_components/tmpl/default_head.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default_head.php diff --git a/admin/views/joomla_components/tmpl/default_toolbar.php b/admin/views/joomla_components/tmpl/default_toolbar.php index 68c44225e..f5501eac9 100644 --- a/admin/views/joomla_components/tmpl/default_toolbar.php +++ b/admin/views/joomla_components/tmpl/default_toolbar.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage default_toolbar.php diff --git a/admin/views/joomla_components/view.html.php b/admin/views/joomla_components/view.html.php index a81803343..f5be217f9 100644 --- a/admin/views/joomla_components/view.html.php +++ b/admin/views/joomla_components/view.html.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 473 of this MVC - @build 20th October, 2017 + @version @update number 501 of this MVC + @build 26th October, 2017 @created 6th May, 2015 @package Component Builder @subpackage view.html.php diff --git a/admin/views/language/submitbutton.js b/admin/views/language/submitbutton.js index 55d835eb0..e6ee30d31 100644 --- a/admin/views/language/submitbutton.js +++ b/admin/views/language/submitbutton.js @@ -10,7 +10,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage submitbutton.js diff --git a/admin/views/language/tmpl/edit.php b/admin/views/language/tmpl/edit.php index 2ec129591..daa445733 100644 --- a/admin/views/language/tmpl/edit.php +++ b/admin/views/language/tmpl/edit.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage edit.php diff --git a/admin/views/language/view.html.php b/admin/views/language/view.html.php index 0729bd219..4f4c5803c 100644 --- a/admin/views/language/view.html.php +++ b/admin/views/language/view.html.php @@ -11,7 +11,7 @@ /-------------------------------------------------------------------------------------------------------------------------------/ @version @update number 3 of this MVC - @build 3rd April, 2017 + @build 25th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage view.html.php diff --git a/admin/views/language_translation/submitbutton.js b/admin/views/language_translation/submitbutton.js index bada3b3a4..4ebfd88be 100644 --- a/admin/views/language_translation/submitbutton.js +++ b/admin/views/language_translation/submitbutton.js @@ -9,8 +9,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 45 of this MVC - @build 14th October, 2017 + @version @update number 46 of this MVC + @build 26th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage submitbutton.js diff --git a/admin/views/language_translation/tmpl/edit.php b/admin/views/language_translation/tmpl/edit.php index 78bb256b5..d51b06262 100644 --- a/admin/views/language_translation/tmpl/edit.php +++ b/admin/views/language_translation/tmpl/edit.php @@ -10,8 +10,8 @@ |_| /-------------------------------------------------------------------------------------------------------------------------------/ - @version @update number 45 of this MVC - @build 14th October, 2017 + @version @update number 46 of this MVC + @build 26th October, 2017 @created 3rd April, 2017 @package Component Builder @subpackage edit.php @@ -58,7 +58,6 @@ $componentParams = JComponentHelper::getParams('com_componentbuilder');