Moves the Pro features into the Public version of JCB.

This commit is contained in:
Llewellyn van der Merwe 2022-07-09 17:16:21 +02:00
parent 9e4a6e0c53
commit 4e30fcb967
Signed by: Llewellyn
GPG Key ID: A9201372263741E7
110 changed files with 11383 additions and 3669 deletions

View File

@ -12,7 +12,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 save 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.13.1) 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 (3.1.2) 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://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -143,14 +143,14 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 11th June, 2022
+ *Version*: 2.13.1
+ *Last Build*: 9th July, 2022
+ *Version*: 3.1.2
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **287256**
+ *Field count*: **1581**
+ *File count*: **1853**
+ *Folder count*: **261**
+ *Line count*: **312818**
+ *Field count*: **2002**
+ *File count*: **2049**
+ *Folder count*: **349**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -12,7 +12,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 save 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.13.1) 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 (3.1.2) 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://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -143,14 +143,14 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015
+ *Last Build*: 11th June, 2022
+ *Version*: 2.13.1
+ *Last Build*: 9th July, 2022
+ *Version*: 3.1.2
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **287256**
+ *Field count*: **1581**
+ *File count*: **1853**
+ *Folder count*: **261**
+ *Line count*: **312818**
+ *Field count*: **2002**
+ *File count*: **2049**
+ *Folder count*: **349**
> This **component** was build with a [Joomla](https://extensions.joomla.org/extension/component-builder/) [Automated Component Builder](http://joomlacomponentbuilder.com).
> Developed by [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)

View File

@ -274,6 +274,7 @@
<action name="field.access" title="COM_COMPONENTBUILDER_FIELDS_ACCESS" description="COM_COMPONENTBUILDER_FIELDS_ACCESS_DESC" />
<action name="field.batch" title="COM_COMPONENTBUILDER_FIELDS_BATCH_USE" description="COM_COMPONENTBUILDER_FIELDS_BATCH_USE_DESC" />
<action name="field.create" title="COM_COMPONENTBUILDER_FIELDS_CREATE" description="COM_COMPONENTBUILDER_FIELDS_CREATE_DESC" />
<action name="field.dashboard_add" title="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_ADD" description="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_ADD_DESC" />
<action name="field.dashboard_list" title="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_FIELDS_DASHBOARD_LIST_DESC" />
<action name="field.delete" title="COM_COMPONENTBUILDER_FIELDS_DELETE" description="COM_COMPONENTBUILDER_FIELDS_DELETE_DESC" />
<action name="field.edit" title="COM_COMPONENTBUILDER_FIELDS_EDIT" description="COM_COMPONENTBUILDER_FIELDS_EDIT_DESC" />
@ -347,6 +348,7 @@
<action name="joomla_module.edit.own" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_OWN" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_OWN_DESC" />
<action name="joomla_module.edit.state" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_STATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_STATE_DESC" />
<action name="joomla_module.version" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_VERSION_DESC" />
<action name="joomla_module.export" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_EXPORT" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_EXPORT_DESC" />
<action name="joomla_module_files_folders_urls.access" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_ACCESS_DESC" />
<action name="joomla_module_files_folders_urls.batch" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_BATCH_USE_DESC" />
<action name="joomla_module_files_folders_urls.create" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_CREATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_CREATE_DESC" />
@ -357,6 +359,7 @@
<action name="joomla_module_files_folders_urls.edit.own" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_EDIT_OWN" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_EDIT_OWN_DESC" />
<action name="joomla_module_files_folders_urls.edit.state" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_EDIT_STATE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_EDIT_STATE_DESC" />
<action name="joomla_module_files_folders_urls.version" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_EDIT_VERSION_DESC" />
<action name="joomla_module.import" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_IMPORT" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_IMPORT_DESC" />
<action name="joomla_module.submenu" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_SUBMENU" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_SUBMENU_DESC" />
<action name="joomla_module_updates.access" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_ACCESS_DESC" />
<action name="joomla_module_updates.batch" title="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_BATCH_USE" description="COM_COMPONENTBUILDER_JOOMLA_MODULES_UPDATES_BATCH_USE_DESC" />
@ -482,6 +485,19 @@
<action name="placeholder.export" title="COM_COMPONENTBUILDER_PLACEHOLDERS_EXPORT" description="COM_COMPONENTBUILDER_PLACEHOLDERS_EXPORT_DESC" />
<action name="placeholder.import" title="COM_COMPONENTBUILDER_PLACEHOLDERS_IMPORT" description="COM_COMPONENTBUILDER_PLACEHOLDERS_IMPORT_DESC" />
<action name="placeholder.submenu" title="COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU" description="COM_COMPONENTBUILDER_PLACEHOLDERS_SUBMENU_DESC" />
<action name="power.run_expansion" title="COM_COMPONENTBUILDER_POWER_RUN_EXPANSION_BUTTON_ACCESS" description="COM_COMPONENTBUILDER_POWER_RUN_EXPANSION_BUTTON_ACCESS_DESC" />
<action name="power.access" title="COM_COMPONENTBUILDER_POWERS_ACCESS" description="COM_COMPONENTBUILDER_POWERS_ACCESS_DESC" />
<action name="power.batch" title="COM_COMPONENTBUILDER_POWERS_BATCH_USE" description="COM_COMPONENTBUILDER_POWERS_BATCH_USE_DESC" />
<action name="power.create" title="COM_COMPONENTBUILDER_POWERS_CREATE" description="COM_COMPONENTBUILDER_POWERS_CREATE_DESC" />
<action name="power.dashboard_list" title="COM_COMPONENTBUILDER_POWERS_DASHBOARD_LIST" description="COM_COMPONENTBUILDER_POWERS_DASHBOARD_LIST_DESC" />
<action name="power.delete" title="COM_COMPONENTBUILDER_POWERS_DELETE" description="COM_COMPONENTBUILDER_POWERS_DELETE_DESC" />
<action name="power.edit" title="COM_COMPONENTBUILDER_POWERS_EDIT" description="COM_COMPONENTBUILDER_POWERS_EDIT_DESC" />
<action name="power.edit.created_by" title="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_BY_DESC" />
<action name="power.edit.created" title="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_DATE_DESC" />
<action name="power.edit.own" title="COM_COMPONENTBUILDER_POWERS_EDIT_OWN" description="COM_COMPONENTBUILDER_POWERS_EDIT_OWN_DESC" />
<action name="power.edit.state" title="COM_COMPONENTBUILDER_POWERS_EDIT_STATE" description="COM_COMPONENTBUILDER_POWERS_EDIT_STATE_DESC" />
<action name="power.version" title="COM_COMPONENTBUILDER_POWERS_EDIT_VERSION" description="COM_COMPONENTBUILDER_POWERS_EDIT_VERSION_DESC" />
<action name="power.submenu" title="COM_COMPONENTBUILDER_POWERS_SUBMENU" description="COM_COMPONENTBUILDER_POWERS_SUBMENU_DESC" />
<action name="server.access" title="COM_COMPONENTBUILDER_SERVERS_ACCESS" description="COM_COMPONENTBUILDER_SERVERS_ACCESS_DESC" />
<action name="server.batch" title="COM_COMPONENTBUILDER_SERVERS_BATCH_USE" description="COM_COMPONENTBUILDER_SERVERS_BATCH_USE_DESC" />
<action name="server.create" title="COM_COMPONENTBUILDER_SERVERS_CREATE" description="COM_COMPONENTBUILDER_SERVERS_CREATE_DESC" />
@ -578,6 +594,17 @@
<action name="joomla_plugin.access" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_ACCESS_DESC" />
<action name="joomla_plugin.version" title="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_EDIT_VERSION" description="COM_COMPONENTBUILDER_JOOMLA_PLUGINS_EDIT_VERSION_DESC" />
</section>
<section name="power">
<action name="power.edit" title="COM_COMPONENTBUILDER_POWERS_EDIT" description="COM_COMPONENTBUILDER_POWERS_EDIT_DESC" />
<action name="power.edit.own" title="COM_COMPONENTBUILDER_POWERS_EDIT_OWN" description="COM_COMPONENTBUILDER_POWERS_EDIT_OWN_DESC" />
<action name="power.edit.state" title="COM_COMPONENTBUILDER_POWERS_EDIT_STATE" description="COM_COMPONENTBUILDER_POWERS_EDIT_STATE_DESC" />
<action name="power.edit.created_by" title="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_BY" description="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_BY_DESC" />
<action name="power.edit.created" title="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_DATE" description="COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_DATE_DESC" />
<action name="power.create" title="COM_COMPONENTBUILDER_POWERS_CREATE" description="COM_COMPONENTBUILDER_POWERS_CREATE_DESC" />
<action name="power.delete" title="COM_COMPONENTBUILDER_POWERS_DELETE" description="COM_COMPONENTBUILDER_POWERS_DELETE_DESC" />
<action name="power.access" title="COM_COMPONENTBUILDER_POWERS_ACCESS" description="COM_COMPONENTBUILDER_POWERS_ACCESS_DESC" />
<action name="power.version" title="COM_COMPONENTBUILDER_POWERS_EDIT_VERSION" description="COM_COMPONENTBUILDER_POWERS_EDIT_VERSION_DESC" />
</section>
<section name="admin_view">
<action name="admin_view.edit" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_DESC" />
<action name="admin_view.edit.own" title="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_OWN" description="COM_COMPONENTBUILDER_ADMIN_VIEWS_EDIT_OWN_DESC" />

View File

@ -1,4 +1,3 @@
<?php
/**
* @package Joomla.Component.Builder
*
@ -10,8 +9,6 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/* CSS Document */
?>
<?php echo $this->proboard; ?>

View File

@ -1,4 +1,3 @@
<?php
/**
* @package Joomla.Component.Builder
*
@ -10,8 +9,6 @@
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/* CSS Document */
?>
<?php echo $this->github->tagreleases; ?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -134,6 +134,22 @@
folder="editors"
filter="cmd"
/>
<!-- Gitea_token Field. Type: Password. (joomla) -->
<field
type="password"
name="gitea_token"
label="COM_COMPONENTBUILDER_CONFIG_GITEA_TOKEN_LABEL"
size="128"
description="COM_COMPONENTBUILDER_CONFIG_GITEA_TOKEN_DESCRIPTION"
message="Error! Please add token here."
class="text_area"
readonly="false"
disabled="false"
required="false"
filter="STRING"
hint="COM_COMPONENTBUILDER_CONFIG_GITEA_TOKEN_HINT"
autocomplete="off"
/>
<!-- Github_access_token Field. Type: Password. (joomla) -->
<field
type="password"
@ -1074,6 +1090,20 @@
name="folder_paths_custom_config"
label="COM_COMPONENTBUILDER_CONFIG_FOLDER_PATHS">
<!-- Jcb_powers_path Field. Type: Text. (joomla) -->
<field
type="text"
name="jcb_powers_path"
label="COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_LABEL"
size="70"
maxlength="150"
description="COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_DESCRIPTION"
class="text_area"
filter="PATH"
message="COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_MESSAGE"
hint="COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_HINT"
autocomplete="on"
/>
<!-- Note_compiler_folder_path Field. Type: Note. A None Database Field. (joomla) -->
<field type="note" name="note_compiler_folder_path" label="COM_COMPONENTBUILDER_CONFIG_NOTE_COMPILER_FOLDER_PATH_LABEL" description="COM_COMPONENTBUILDER_CONFIG_NOTE_COMPILER_FOLDER_PATH_DESCRIPTION" heading="h4" class="alert alert-info note_compiler_folder_path" />
<!-- Compiler_folder_path Field. Type: Text. (joomla) -->

View File

@ -97,6 +97,7 @@ class ComponentbuilderController extends BaseController
'joomla_component' => 'joomla_components',
'joomla_module' => 'joomla_modules',
'joomla_plugin' => 'joomla_plugins',
'power' => 'powers',
'admin_view' => 'admin_views',
'custom_admin_view' => 'custom_admin_views',
'site_view' => 'site_views',

View File

@ -35,6 +35,7 @@ class ComponentbuilderControllerAjax extends BaseController
$this->registerTask('isRead', 'ajax');
$this->registerTask('getComponentDetails', 'ajax');
$this->registerTask('getCronPath', 'ajax');
$this->registerTask('getWiki', 'ajax');
$this->registerTask('getJCBpackageInfo', 'ajax');
$this->registerTask('getCrowdinDetails', 'ajax');
$this->registerTask('getModuleCode', 'ajax');
@ -254,6 +255,47 @@ class ComponentbuilderControllerAjax extends BaseController
}
}
break;
case 'getWiki':
try
{
$nameValue = $jinput->get('name', NULL, 'WORD');
if($nameValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getWiki($nameValue);
}
else
{
$result = false;
}
if($callback)
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback)
{
echo $callback."(".json_encode($e).");";
}
elseif($returnRaw)
{
echo json_encode($e);
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'getJCBpackageInfo':
try
{

View File

@ -45,6 +45,69 @@ class ComponentbuilderControllerJoomla_modules extends AdminController
return parent::getModel($name, $prefix, $config);
}
public function exportData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if export is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('joomla_module.export', 'com_componentbuilder') && $user->authorise('core.export', 'com_componentbuilder'))
{
// Get the input
$input = JFactory::getApplication()->input;
$pks = $input->post->get('cid', array(), 'array');
// Sanitize the input
$pks = ArrayHelper::toInteger($pks);
// Get the model
$model = $this->getModel('Joomla_modules');
// get the data to export
$data = $model->getExportData($pks);
if (ComponentbuilderHelper::checkArray($data))
{
// now set the data to the spreadsheet
$date = JFactory::getDate();
ComponentbuilderHelper::xls($data,'Joomla_modules_'.$date->format('jS_F_Y'),'Joomla modules exported ('.$date->format('jS F, Y').')','joomla modules');
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_EXPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_modules', false), $message, 'error');
return;
}
public function importData()
{
// Check for request forgeries
JSession::checkToken() or die(JText::_('JINVALID_TOKEN'));
// check if import is allowed for this user.
$user = JFactory::getUser();
if ($user->authorise('joomla_module.import', 'com_componentbuilder') && $user->authorise('core.import', 'com_componentbuilder'))
{
// Get the import model
$model = $this->getModel('Joomla_modules');
// get the headers to import
$headers = $model->getExImPortHeaders();
if (ComponentbuilderHelper::checkObject($headers))
{
// Load headers to session.
$session = JFactory::getSession();
$headers = json_encode($headers);
$session->set('joomla_module_VDM_IMPORTHEADERS', $headers);
$session->set('backto_VDM_IMPORT', 'joomla_modules');
$session->set('dataType_VDM_IMPORTINTO', 'joomla_module');
// Redirect to import view.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_JOOMLA_MODULES');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=import', false), $message);
return;
}
}
// Redirect to the list screen with error.
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_modules', false), $message, 'error');
return;
}
public function getSnippets()
{
// Check for request forgeries

325
admin/controllers/power.php Normal file
View File

@ -0,0 +1,325 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @gitea Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\MVC\Controller\FormController;
use Joomla\Utilities\ArrayHelper;
/**
* Power Form Controller
*/
class ComponentbuilderControllerPower extends FormController
{
/**
* Current or most recently performed task.
*
* @var string
* @since 12.2
* @note Replaces _task.
*/
protected $task;
/**
* Class constructor.
*
* @param array $config A named array of configuration variables.
*
* @since 1.6
*/
public function __construct($config = array())
{
$this->view_list = 'Powers'; // 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())
{
// Get user object.
$user = JFactory::getUser();
// Access check.
$access = $user->authorise('power.access', 'com_componentbuilder');
if (!$access)
{
return false;
}
// In the absense of better information, revert to the component permissions.
return $user->authorise('power.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('power.access', 'com_componentbuilder.power.' . (int) $recordId) && $user->authorise('power.access', 'com_componentbuilder'));
if (!$access)
{
return false;
}
if ($recordId)
{
// The record has been set. Check the record permissions.
$permission = $user->authorise('power.edit', 'com_componentbuilder.power.' . (int) $recordId);
if (!$permission)
{
if ($user->authorise('power.edit.own', 'com_componentbuilder.power.' . $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('power.edit.own', 'com_componentbuilder'))
{
return true;
}
}
}
return false;
}
}
// Since there is no permission, revert to the component permissions.
return $user->authorise('power.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 1.6
*/
protected function getRedirectToItemAppend($recordId = null, $urlVar = 'id')
{
// get the referral options (old method use return instead see parent)
$ref = $this->input->get('ref', 0, 'string');
$refid = $this->input->get('refid', 0, 'int');
// get redirect info.
$append = parent::getRedirectToItemAppend($recordId, $urlVar);
// set the referral options
if ($refid && $ref)
{
$append = '&ref=' . (string)$ref . '&refid='. (int)$refid . $append;
}
elseif ($ref)
{
$append = '&ref='. (string)$ref . $append;
}
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('Power', '', array());
// Preset the redirect
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=powers' . $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 referral options
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
// Check if there is a return value
$return = $this->input->get('return', null, 'base64');
$cancel = parent::cancel($key);
if (!is_null($return) && JUri::isInternal(base64_decode($return)))
{
$redirect = base64_decode($return);
// Redirect to the return value.
$this->setRedirect(
JRoute::_(
$redirect, false
)
);
}
elseif ($this->refid && $this->ref)
{
$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
)
);
}
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 referral options
$this->ref = $this->input->get('ref', 0, 'word');
$this->refid = $this->input->get('refid', 0, 'int');
// Check if there is a return value
$return = $this->input->get('return', null, 'base64');
$canReturn = (!is_null($return) && JUri::isInternal(base64_decode($return)));
if ($this->ref || $this->refid || $canReturn)
{
// to make sure the item is checkedin on redirect
$this->task = 'save';
}
$saved = parent::save($key, $urlVar);
// This is not needed since parent save already does this
// Due to the ref and refid implementation we need to add this
if ($canReturn)
{
$redirect = base64_decode($return);
// Redirect to the return value.
$this->setRedirect(
JRoute::_(
$redirect, false
)
);
}
elseif ($this->refid && $this->ref)
{
$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
)
);
}
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;
}
}

View File

@ -0,0 +1,88 @@
<?php
/**
* @package Joomla.Component.Builder
*
* @created 30th April, 2015
* @author Llewellyn van der Merwe <http://www.joomlacomponentbuilder.com>
* @gitea Joomla Component Builder <https://git.vdm.dev/joomla/Component-Builder>
* @github Joomla Component Builder <https://github.com/vdm-io/Joomla-Component-Builder>
* @copyright Copyright (C) 2015 Vast Development Method. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
use Joomla\CMS\MVC\Controller\AdminController;
use Joomla\Utilities\ArrayHelper;
/**
* Powers Admin Controller
*/
class ComponentbuilderControllerPowers extends AdminController
{
/**
* The prefix to use with controller messages.
*
* @var string
* @since 1.6
*/
protected $text_prefix = 'COM_COMPONENTBUILDER_POWERS';
/**
* Method to get a model object, loading it if required.
*
* @param string $name The model name. Optional.
* @param string $prefix The class prefix. Optional.
* @param array $config Configuration array for model. Optional.
*
* @return JModelLegacy The model.
*
* @since 1.6
*/
public function getModel($name = 'Power', $prefix = 'ComponentbuilderModel', $config = array('ignore_request' => true))
{
return parent::getModel($name, $prefix, $config);
}
/**
* Run the Expansion
*
* @return void
*/
public function runExpansion()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// check if user has the right
$user = JFactory::getUser();
// set page redirect
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=powers', false);
// set massage
$message = JText::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RUN_THE_EXPANSION_MODULE');
// check if this user has the right to run expansion
if($user->authorise('powers.run_expansion', 'com_componentbuilder'))
{
// set massage
$message = JText::_('COM_COMPONENTBUILDER_EXPANSION_FAILED_PLEASE_CHECK_YOUR_SETTINGS_IN_THE_GLOBAL_OPTIONS_OF_JCB_UNDER_THE_DEVELOPMENT_METHOD_TAB');
// run expansion via API
$result = ComponentbuilderHelper::getFileContents(JURI::root() . 'index.php?option=com_componentbuilder&task=api.expand');
// is there a message returned
if (!is_numeric($result) && ComponentbuilderHelper::checkString($result))
{
$this->setRedirect($redirect_url, $result);
return true;
}
elseif (is_numeric($result) && 1 == $result)
{
$message = JText::_('COM_COMPONENTBUILDER_BTHE_EXPANSION_WAS_SUCCESSFULLYB_TO_SEE_MORE_INFORMATION_CHANGE_THE_BRETURN_OPTIONS_FOR_BUILDB_TO_BDISPLAY_MESSAGEB_IN_THE_GLOBAL_OPTIONS_OF_JCB_UNDER_THE_DEVELOPMENT_METHOD_TABB');
$this->setRedirect($redirect_url, $message, 'message');
return true;
}
}
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
}

View File

@ -29128,32 +29128,33 @@ function vdm_dkim() {
{
// check if we are using a plugin
$use_plugin = isset($this->fileContentStatic[$this->hhh . 'PLUGIN_POWER_AUTOLOADER' . $this->hhh]);
// build the helper method
$helperMethod = array();
// build the methods
$autoloadNotSiteMethod = array();
$autoloadMethod = array();
// add only if we are not using a plugin
$tab_space = 2;
if (!$use_plugin)
{
$helperMethod[] = PHP_EOL . PHP_EOL;
$autoloadNotSiteMethod[] = PHP_EOL . PHP_EOL;
$tab_space = 0;
}
elseif (!$loadSite)
{
// we add code to prevent this plugin from triggering on the site area
$helperMethod[] = PHP_EOL . $this->_t(2) . '//'
$autoloadNotSiteMethod[] = PHP_EOL . $this->_t(2) . '//'
. $this->setLine(__LINE__) . ' do not run the autoloader in the site area';
$helperMethod[] = $this->_t(2) . 'if ($this->app->isClient(\'site\'))';
$helperMethod[] = $this->_t(2) . '{';
$helperMethod[] = $this->_t(3) . 'return;';
$helperMethod[] = $this->_t(2) . '}' . PHP_EOL;
$autoloadNotSiteMethod[] = $this->_t(2) . 'if ($this->app->isClient(\'site\'))';
$autoloadNotSiteMethod[] = $this->_t(2) . '{';
$autoloadNotSiteMethod[] = $this->_t(3) . 'return;';
$autoloadNotSiteMethod[] = $this->_t(2) . '}' . PHP_EOL;
}
// we start building the spl_autoload_register function call
$helperMethod[] = $this->_t($tab_space) . '//'
$autoloadMethod[] = $this->_t($tab_space) . '//'
. $this->setLine(__LINE__) . ' register this component namespace';
$helperMethod[] = $this->_t($tab_space) . 'spl_autoload_register(function ($class) {';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
$autoloadMethod[] = $this->_t($tab_space) . 'spl_autoload_register(function ($class) {';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
. $this->setLine(__LINE__) . ' project-specific base directories and namespace prefix';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '$search = array(';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '$search = array(';
// ==== IMPORTANT NOTICE =====
// make sure the name space values are sorted from the longest string to the shortest
// so that the search do not mistakenly match a shorter namespace before a longer one
@ -29175,74 +29176,78 @@ function vdm_dkim() {
// don't add the ending comma on last value
if ($size == $counter)
{
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . "'$this->jcbPowersPath/$base_dir' => '" . implode('\\\\', $prefix) . "'";
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . "'$this->jcbPowersPath/$base_dir' => '" . implode('\\\\', $prefix) . "'";
}
else
{
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . "'$this->jcbPowersPath/$base_dir' => '" . implode('\\\\', $prefix) . "',";
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . "'$this->jcbPowersPath/$base_dir' => '" . implode('\\\\', $prefix) . "',";
}
$counter++;
}
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . ');';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '// Start the search and load if found';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '$found = false;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '$found_base_dir = "";';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '$found_len = 0;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . 'foreach ($search as $base_dir => $prefix)';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '{';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . ');';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '// Start the search and load if found';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '$found = false;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '$found_base_dir = "";';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '$found_len = 0;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . 'foreach ($search as $base_dir => $prefix)';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '{';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . '//'
. $this->setLine(__LINE__) . ' does the class use the namespace prefix?';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . '$len = strlen($prefix);';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . 'if (strncmp($prefix, $class, $len) === 0)';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . '{';
$helperMethod[] = $this->_t($tab_space) . $this->_t(3) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . '$len = strlen($prefix);';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . 'if (strncmp($prefix, $class, $len) === 0)';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . '{';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(3) . '//'
. $this->setLine(__LINE__) . ' we have a match so load the values';
$helperMethod[] = $this->_t($tab_space) . $this->_t(3) . '$found = true;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(3) . '$found_base_dir = $base_dir;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(3) . '$found_len = $len;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(3) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(3) . '$found = true;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(3) . '$found_base_dir = $base_dir;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(3) . '$found_len = $len;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(3) . '//'
. $this->setLine(__LINE__) . ' done here';
$helperMethod[] = $this->_t($tab_space) . $this->_t(3) . 'break;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . '}';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '}';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(3) . 'break;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . '}';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '}';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
. $this->setLine(__LINE__) . ' check if we found a match';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . 'if (!$found)';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '{';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . 'if (!$found)';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '{';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . '//'
. $this->setLine(__LINE__) . ' no, move to the next registered autoloader';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . 'return;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '}';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . 'return;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '}';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
. $this->setLine(__LINE__) . ' get the relative class name';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '$relative_class = substr($class, $found_len);';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '$relative_class = substr($class, $found_len);';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
. $this->setLine(__LINE__) . ' replace the namespace prefix with the base directory, replace namespace';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '// separators with directory separators in the relative class name, append';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '// with .php';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . "\$file = JPATH_ROOT . '/' . \$found_base_dir . '/src' . str_replace('\\\\', '/', \$relative_class) . '.php';";
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '// separators with directory separators in the relative class name, append';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '// with .php';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . "\$file = JPATH_ROOT . '/' . \$found_base_dir . '/src' . str_replace('\\\\', '/', \$relative_class) . '.php';";
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '//'
. $this->setLine(__LINE__) . ' if the file exists, require it';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . 'if (file_exists($file))';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '{';
$helperMethod[] = $this->_t($tab_space) . $this->_t(2) . 'require $file;';
$helperMethod[] = $this->_t($tab_space) . $this->_t(1) . '}';
$helperMethod[] = $this->_t($tab_space) . '});';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . 'if (file_exists($file))';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '{';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(2) . 'require $file;';
$autoloadMethod[] = $this->_t($tab_space) . $this->_t(1) . '}';
$autoloadMethod[] = $this->_t($tab_space) . '});';
// create the method string
$autoloader = implode(PHP_EOL, $autoloadNotSiteMethod) . implode(PHP_EOL, $autoloadMethod);
// check if we are using a plugin
if ($use_plugin)
{
$this->fileContentStatic[$this->hhh . 'PLUGIN_POWER_AUTOLOADER' . $this->hhh] = PHP_EOL . implode(PHP_EOL, $helperMethod);
$this->fileContentStatic[$this->hhh . 'PLUGIN_POWER_AUTOLOADER' . $this->hhh] = PHP_EOL . $autoloader;
}
else
{
// load to events placeholders
$this->fileContentStatic[$this->hhh . 'ADMIN_POWER_HELPER' . $this->hhh] .= implode(PHP_EOL, $helperMethod);
$this->fileContentStatic[$this->hhh . 'ADMIN_POWER_HELPER' . $this->hhh] .= $autoloader;
// load to site if needed
if ($loadSite)
{
$this->fileContentStatic[$this->hhh . 'SITE_POWER_HELPER' . $this->hhh] .= implode(PHP_EOL, $helperMethod);
$this->fileContentStatic[$this->hhh . 'SITE_POWER_HELPER' . $this->hhh] .= $autoloader;
}
}
// to add to custom files
$this->fileContentStatic[$this->hhh . 'CUSTOM_POWER_AUTOLOADER' . $this->hhh] .= PHP_EOL . implode(PHP_EOL, $autoloadMethod);
}
}

View File

@ -2316,6 +2316,7 @@ class Infusion extends Interpretation
// remove all the power placeholders
$this->fileContentStatic[$this->hhh . 'ADMIN_POWER_HELPER' . $this->hhh] = '';
$this->fileContentStatic[$this->hhh . 'SITE_POWER_HELPER' . $this->hhh] = '';
$this->fileContentStatic[$this->hhh . 'CUSTOM_POWER_AUTOLOADER' . $this->hhh] = '';
// infuse powers data if set
if (ArrayHelper::check($this->powers))
{

View File

@ -13,12 +13,12 @@
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
// register this component namespace
spl_autoload_register(function ($class) {
// project-specific base directories and namespace prefix
$search = array(
'libraries/jcb_powers/VDM.Joomla' => 'VDM\\Joomla'
'libraries/jcb_powers/VDM.Joomla' => 'VDM\\Joomla',
'libraries/jcb_powers/VDM.Gitea' => 'VDM\\Gitea'
);
// Start the search and load if found
$found = false;
@ -3524,13 +3524,13 @@ abstract class ComponentbuilderHelper
'accesslevel', 'cachehandler', 'calendar', 'captcha', 'category', 'checkbox', 'checkboxes', 'chromestyle',
'color', 'combo', 'componentlayout', 'contentlanguage', 'contenttype', 'databaseconnection', 'components',
'editor', 'editors', 'email', 'file', 'file', 'filelist', 'folderlist', 'groupedlist', 'headertag', 'helpsite', 'hidden', 'imagelist',
'integer', 'language', 'list', 'media', 'menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition',
'integer', 'language', 'list', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'moduleorder', 'moduleposition',
'moduletag', 'note', 'number', 'password', 'plugins', 'predefinedlist', 'radio', 'range', 'repeatable', 'rules',
'sessionhandler', 'spacer', 'sql', 'subform', 'tag', 'tel', 'templatestyle', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup'
),
'plain' => array(
'cachehandler', 'calendar', 'checkbox', 'chromestyle', 'color', 'componentlayout', 'contenttype', 'editor', 'editors', 'captcha',
'email', 'file', 'headertag', 'helpsite', 'hidden', 'integer', 'language', 'media', 'menu', 'menuitem', 'meter', 'modulelayout', 'templatestyle',
'email', 'file', 'headertag', 'helpsite', 'hidden', 'integer', 'language', 'media', 'menu', 'modal_menu', 'menuitem', 'meter', 'modulelayout', 'templatestyle',
'moduleorder', 'moduletag', 'number', 'password', 'range', 'rules', 'tag', 'tel', 'text', 'textarea', 'timezone', 'url', 'user', 'usergroup'
),
'option' => array(
@ -6327,6 +6327,10 @@ abstract class ComponentbuilderHelper
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_JOOMLA_PLUGINS'), 'index.php?option=com_componentbuilder&view=joomla_plugins', $submenu === 'joomla_plugins');
}
if ($user->authorise('power.access', 'com_componentbuilder') && $user->authorise('power.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_POWERS'), 'index.php?option=com_componentbuilder&view=powers', $submenu === 'powers');
}
if ($user->authorise('admin_view.access', 'com_componentbuilder') && $user->authorise('admin_view.submenu', 'com_componentbuilder'))
{
JHtmlSidebar::addEntry(JText::_('COM_COMPONENTBUILDER_SUBMENU_ADMIN_VIEWS'), 'index.php?option=com_componentbuilder&view=admin_views', $submenu === 'admin_views');

View File

@ -1317,8 +1317,6 @@ COM_COMPONENTBUILDER_AUTHOR_NAME="Author Name"
COM_COMPONENTBUILDER_AUTHOR_WEBSITE="Author Website"
COM_COMPONENTBUILDER_AUTO_CHECKIN="Auto Check-in"
COM_COMPONENTBUILDER_AVAILABLE_LIBRARIES="Available Libraries"
COM_COMPONENTBUILDER_A_FEW_CLOSED_ISSUES_FROM_GITHUB_IS_LOADING="A few closed issues from Github is loading"
COM_COMPONENTBUILDER_A_FEW_OPEN_ISSUES_FROM_GITHUB_IS_LOADING="A few open issues from Github is loading"
COM_COMPONENTBUILDER_A_S_SPAN_CLASSICONFLAG_SPANREPORT_BROKEN_PACKAGEA="<a %s ><span class="icon-flag"> </span>Report Broken Package</a>"
COM_COMPONENTBUILDER_BACK="Back"
COM_COMPONENTBUILDER_BACKUP="Backup"
@ -3487,6 +3485,9 @@ COM_COMPONENTBUILDER_CONFIG_FORCE_LOAD="Force"
COM_COMPONENTBUILDER_CONFIG_FROMNAME_DESCRIPTION="Text displayed in the header &quot;From:&quot; field when sending a site email. Usually the site name."
COM_COMPONENTBUILDER_CONFIG_FROMNAME_HINT="From Name Here"
COM_COMPONENTBUILDER_CONFIG_FROMNAME_LABEL="From Name"
COM_COMPONENTBUILDER_CONFIG_GITEA_TOKEN_DESCRIPTION="To get updates, add your access token from VDM here."
COM_COMPONENTBUILDER_CONFIG_GITEA_TOKEN_HINT="API Access Tokens"
COM_COMPONENTBUILDER_CONFIG_GITEA_TOKEN_LABEL="VDM Access Token<br /><small>Get <a href='https://git.vdm.dev/user/settings/applications' target='_blank'>token</a> from VDM.</small>"
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_DESCRIPTION="This is only needed when you are on a shared IP or/and have reached the public free limit of API queries to gitHub. So unless you have seen some kind of error that directed you here to add an <b>access token</b> you can just ignore this field."
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_HINT="OAUTH-TOKEN"
COM_COMPONENTBUILDER_CONFIG_GITHUB_ACCESS_TOKEN_LABEL="gitHub Access Token<br /><small>Check <a href='https://developer.github.com/v3/#authentication' target='_blank'>https://developer.github.com/v3/#authentication</a> for more info.</small>"
@ -3508,6 +3509,10 @@ COM_COMPONENTBUILDER_CONFIG_JCB_COMMUNITY_PACKAGES="JCB Community Packages"
COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGES="JCB Packages"
COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGE_DIRECTORIES_DESCRIPTION="Here you can manage what package directories show in the JCB package import area."
COM_COMPONENTBUILDER_CONFIG_JCB_PACKAGE_DIRECTORIES_LABEL="Directories"
COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_DESCRIPTION="Here you can set the path to the powers folder. Recommended that you always place it inside the <b>libraries</b>. You don't need to add a full path here, so <b>libraries/jcb_powers</b> will mean <i>/home/username/public_html/libraries/jcb_powers</i> when installed. You should always use two folders here, libraries + one more for example: <br /><code>libraries/jcb_powers</code>"
COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_HINT="libraries/jcb_powers"
COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_LABEL="JCB Powers Path<br /><small>example: <code>libraries/jcb_powers</code></small>"
COM_COMPONENTBUILDER_CONFIG_JCB_POWERS_PATH_MESSAGE="Error! Please add folder path here."
COM_COMPONENTBUILDER_CONFIG_JOOMLA_MODULE_UPDATES_VERSION_UPDATE="Joomla Module Updates (version_update)"
COM_COMPONENTBUILDER_CONFIG_JOOMLA_PLUGIN_UPDATES_VERSION_UPDATE="Joomla Plugin Updates (version_update)"
COM_COMPONENTBUILDER_CONFIG_LANGUAGE_LABEL="Language"
@ -4362,6 +4367,7 @@ COM_COMPONENTBUILDER_DASHBOARD_FIELDS="Fields<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_FIELDS_CATID="Categories&nbsp;For<br />Fields"
COM_COMPONENTBUILDER_DASHBOARD_FIELDTYPES="Fieldtypes<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_FIELDTYPES_CATID="Categories&nbsp;For<br />Fieldtypes"
COM_COMPONENTBUILDER_DASHBOARD_FIELD_ADD="Add&nbsp;Field<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_GET_SNIPPETS="Get Snippets<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_HELP_DOCUMENTS="Help Documents<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_IMPORTJCBPACKAGES="Import JCB Packages<br /><br />"
@ -4373,6 +4379,7 @@ COM_COMPONENTBUILDER_DASHBOARD_LAYOUTS="Layouts<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_LIBRARIES="Libraries<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_LIST_OF_RECORDS="Dashboard (list of records)"
COM_COMPONENTBUILDER_DASHBOARD_PLACEHOLDERS="Placeholders<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_POWERS="Powers<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_SERVERS="Servers<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_SITE_VIEWS="Site Views<br /><br />"
COM_COMPONENTBUILDER_DASHBOARD_SITE_VIEW_ADD="Add&nbsp;Site View<br /><br />"
@ -4391,7 +4398,7 @@ COM_COMPONENTBUILDER_DISPLAY_SWITCH_FOR_DYNAMIC_PLACEMENT_IN_RELATION_TO_THE_USE
COM_COMPONENTBUILDER_DIVERGED="Diverged"
COM_COMPONENTBUILDER_DIVERGED_MEANS_YOUR_BLOCAL_SNIPPETB_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_HAS_A_BDIVERGEDB_FROM_THE_COMMUNITY_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_IN_THAT_IT_DOES_NOT_HAVE_THE_SAME_BCREATIONB_OR_BMODIFIED_DATEB="Diverged means your <b>local snippet</b> (with the same name, library and type) has a <b>diverged</b> from the community snippet (with the same name, library and type) in that it does not have the same <b>creation</b> or <b>modified date</b>."
COM_COMPONENTBUILDER_DOES_THIS_PACKAGE_REQUIRE_A_KEY_TO_INSTALL="Does this package require a key to install."
COM_COMPONENTBUILDER_DOWNLOAD="download"
COM_COMPONENTBUILDER_DOWNLOAD_UPDATE="Download Update"
COM_COMPONENTBUILDER_DO_NOT_ADD="Do not add"
COM_COMPONENTBUILDER_DTCOMPANYDTDDSDD="<dt>Company</dt><dd>%s</dd>"
COM_COMPONENTBUILDER_DTCOPYRIGHTDTDDSDD="<dt>Copyright</dt><dd>%s</dd>"
@ -4734,6 +4741,7 @@ COM_COMPONENTBUILDER_EXPORT_DATA_DESC="Allows users in this group to export data
COM_COMPONENTBUILDER_EXPORT_FAILED="Export Failed"
COM_COMPONENTBUILDER_EXPORT_FAILED_PLEASE_TRY_AGAIN_LATTER="Export failed, please try again latter!"
COM_COMPONENTBUILDER_EXPORT_JCB_PACKAGES="Export JCB Packages"
COM_COMPONENTBUILDER_EXTENDS="Extends"
COM_COMPONENTBUILDER_EXTRA_PROPERTIES_LIKE_LISTCLASS_ESCAPE_DISPLAY_VALIDATEBR_SMALLHERE_YOU_CAN_SET_THE_EXTRA_PROPERTIES_FOR_THIS_FIELDSMALL="Extra properties like (listclass, escape, display, validate)<br /><small>Here you can set the extra properties for this field</small>"
COM_COMPONENTBUILDER_FADE_IN="Fade In"
COM_COMPONENTBUILDER_FIELD="Field"
@ -4746,6 +4754,8 @@ COM_COMPONENTBUILDER_FIELDS_BATCH_USE="Fields Batch Use"
COM_COMPONENTBUILDER_FIELDS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch fields"
COM_COMPONENTBUILDER_FIELDS_CREATE="Fields Create"
COM_COMPONENTBUILDER_FIELDS_CREATE_DESC="Allows the users in this group to create create fields"
COM_COMPONENTBUILDER_FIELDS_DASHBOARD_ADD="Fields Dashboard Add"
COM_COMPONENTBUILDER_FIELDS_DASHBOARD_ADD_DESC="Allows the users in this group to dashboard add of field"
COM_COMPONENTBUILDER_FIELDS_DASHBOARD_LIST="Fields Dashboard List"
COM_COMPONENTBUILDER_FIELDS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of field"
COM_COMPONENTBUILDER_FIELDS_DELETE="Fields Delete"
@ -5251,6 +5261,8 @@ COM_COMPONENTBUILDER_FILTER_MODELING_METHOD_ASCENDING="Modeling Method ascending
COM_COMPONENTBUILDER_FILTER_MODELING_METHOD_DESCENDING="Modeling Method descending"
COM_COMPONENTBUILDER_FILTER_MODIFIED_DATE_ASCENDING="Modified Date ascending"
COM_COMPONENTBUILDER_FILTER_MODIFIED_DATE_DESCENDING="Modified Date descending"
COM_COMPONENTBUILDER_FILTER_NAMESPACE_ASCENDING="Namespace ascending"
COM_COMPONENTBUILDER_FILTER_NAMESPACE_DESCENDING="Namespace descending"
COM_COMPONENTBUILDER_FILTER_NAME_ASCENDING="Name ascending"
COM_COMPONENTBUILDER_FILTER_NAME_DESCENDING="Name descending"
COM_COMPONENTBUILDER_FILTER_NAME_IN_CODE_NAMING_CONVENTIONS_ASCENDING="Name in Code
@ -5307,6 +5319,7 @@ COM_COMPONENTBUILDER_FILTER_PUBLISHED_LIBRARIES="Status options for libraries"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_LIBRARIES_CONFIG="Status options for libraries config"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_LIBRARIES_FILES_FOLDERS_URLS="Status options for libraries files folders urls"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_PLACEHOLDERS="Status options for placeholders"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_POWERS="Status options for powers"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_SERVERS="Status options for servers"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_SITE_VIEWS="Status options for site views"
COM_COMPONENTBUILDER_FILTER_PUBLISHED_SNIPPETS="Status options for snippets"
@ -5355,6 +5368,7 @@ COM_COMPONENTBUILDER_FILTER_SEARCH_LIBRARIES="Search the library items. Prefix w
COM_COMPONENTBUILDER_FILTER_SEARCH_LIBRARIES_CONFIG="Search the library config items. Prefix with ID: to search for an item by ID."
COM_COMPONENTBUILDER_FILTER_SEARCH_LIBRARIES_FILES_FOLDERS_URLS="Search the library files folders urls items. Prefix with ID: to search for an item by ID."
COM_COMPONENTBUILDER_FILTER_SEARCH_PLACEHOLDERS="Search the placeholder items. Prefix with ID: to search for an item by ID."
COM_COMPONENTBUILDER_FILTER_SEARCH_POWERS="Search the power items. Prefix with ID: to search for an item by ID."
COM_COMPONENTBUILDER_FILTER_SEARCH_SERVERS="Search the server items. Prefix with ID: to search for an item by ID."
COM_COMPONENTBUILDER_FILTER_SEARCH_SITE_VIEWS="Search the site view items. Prefix with ID: to search for an item by ID."
COM_COMPONENTBUILDER_FILTER_SEARCH_SNIPPETS="Search the snippet items. Prefix with ID: to search for an item by ID."
@ -5396,6 +5410,8 @@ COM_COMPONENTBUILDER_FILTER_SELECT_TARGET_AREA="Select Target Area"
COM_COMPONENTBUILDER_FILTER_SELECT_TARGET_FOLDER="Select Target Folder"
COM_COMPONENTBUILDER_FILTER_SELECT_TYPE="Select Type"
COM_COMPONENTBUILDER_FILTER_SELECT_TYPE_BEHAVIOR="Select Type Behavior"
COM_COMPONENTBUILDER_FILTER_SELECT_TYPE_OF_POWER="Select Type of Power"
COM_COMPONENTBUILDER_FILTER_SELECT_VERSION="Select Version"
COM_COMPONENTBUILDER_FILTER_SELECT_VISIBILITY="Select Visibility"
COM_COMPONENTBUILDER_FILTER_SET_STRING_VALUE_ASCENDING="Set String Value ascending"
COM_COMPONENTBUILDER_FILTER_SET_STRING_VALUE_DESCENDING="Set String Value descending"
@ -5419,8 +5435,12 @@ COM_COMPONENTBUILDER_FILTER_TYPE_ASCENDING="Type ascending"
COM_COMPONENTBUILDER_FILTER_TYPE_BEHAVIOR_ASCENDING="Type Behavior ascending"
COM_COMPONENTBUILDER_FILTER_TYPE_BEHAVIOR_DESCENDING="Type Behavior descending"
COM_COMPONENTBUILDER_FILTER_TYPE_DESCENDING="Type descending"
COM_COMPONENTBUILDER_FILTER_TYPE_OF_POWER_ASCENDING="Type of Power ascending"
COM_COMPONENTBUILDER_FILTER_TYPE_OF_POWER_DESCENDING="Type of Power descending"
COM_COMPONENTBUILDER_FILTER_URL_ASCENDING="URL ascending"
COM_COMPONENTBUILDER_FILTER_URL_DESCENDING="URL descending"
COM_COMPONENTBUILDER_FILTER_VERSION_ASCENDING="Version ascending"
COM_COMPONENTBUILDER_FILTER_VERSION_DESCENDING="Version descending"
COM_COMPONENTBUILDER_FILTER_VISIBILITY_ASCENDING="Visibility ascending"
COM_COMPONENTBUILDER_FILTER_VISIBILITY_DESCENDING="Visibility descending"
COM_COMPONENTBUILDER_FOLDER="Folder"
@ -5462,6 +5482,8 @@ COM_COMPONENTBUILDER_GET_SNIPPETS_TEMPLATES_BUTTON_ACCESS="Get Snippets Template
COM_COMPONENTBUILDER_GET_SNIPPETS_TEMPLATES_BUTTON_ACCESS_DESC="Allows the users in this group to access the templates button."
COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_INSTALL_IT_LOCALLY="Get the snippet from gitHub and install it locally"
COM_COMPONENTBUILDER_GET_THE_SNIPPET_FROM_GITHUB_AND_UPDATE_THE_LOCAL_VERSION="Get the snippet from gitHub and update the local version"
COM_COMPONENTBUILDER_GET_TOKEN="Get Token"
COM_COMPONENTBUILDER_GET_TOKEN_FROM_VDM_FOR_UPDATES_AND_ADD_IT_TO_YOUR_GLOBAL_OPTIONS="Get token from VDM for updates, and add it to your global options"
COM_COMPONENTBUILDER_GLOBAL="Global"
COM_COMPONENTBUILDER_GLUECODE="Glue/Code"
COM_COMPONENTBUILDER_GREAT_THIS_FUNCTION_NAME_WILL_WORK="Great, this function name will work!"
@ -5627,6 +5649,7 @@ COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_FIELDS="Select the file to import da
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_FIELDTYPES="Select the file to import data to fieldtypes."
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_HELP_DOCUMENTS="Select the file to import data to help_documents."
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_JOOMLA_COMPONENTS="Select the file to import data to joomla_components."
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_JOOMLA_MODULES="Select the file to import data to joomla_modules."
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LANGUAGES="Select the file to import data to languages."
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LANGUAGE_TRANSLATIONS="Select the file to import data to language_translations."
COM_COMPONENTBUILDER_IMPORT_SELECT_FILE_FOR_LAYOUTS="Select the file to import data to layouts."
@ -5646,7 +5669,6 @@ COM_COMPONENTBUILDER_IMPORT_UPLOAD_BOTTON="Upload File"
COM_COMPONENTBUILDER_INACTIVE="Inactive"
COM_COMPONENTBUILDER_IN_SYNC="In Sync"
COM_COMPONENTBUILDER_ISOLATE="Isolate"
COM_COMPONENTBUILDER_ISSUE="issue"
COM_COMPONENTBUILDER_IS_BEING_COMPILED="is being compiled"
COM_COMPONENTBUILDER_IS_NOT_ONLY_FOUR_LISTRADIOCHECKBOXES="Is Not (only 4 list/radio/checkboxes)"
COM_COMPONENTBUILDER_IS_ONLY_FOUR_LISTRADIOCHECKBOXES="Is (only 4 list/radio/checkboxes)"
@ -6140,6 +6162,8 @@ COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_STATE="Joomla Modules Edit State"
COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_STATE_DESC="Allows the users in this group to update the state of the joomla module"
COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_VERSION="Joomla Modules Edit Version"
COM_COMPONENTBUILDER_JOOMLA_MODULES_EDIT_VERSION_DESC="Allows users in this group to edit versions of version joomla modules"
COM_COMPONENTBUILDER_JOOMLA_MODULES_EXPORT="Joomla Modules Export"
COM_COMPONENTBUILDER_JOOMLA_MODULES_EXPORT_DESC="Allows the users in this group to export export joomla modules"
COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS="Joomla Modules Files, Folders & URLs"
COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_ACCESS="Joomla Modules Files Folders Urls Access"
COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_ACCESS_DESC="Allows the users in this group to access access joomla modules files folders urls"
@ -6182,6 +6206,8 @@ COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_N_ITEMS_UNFEATURED="%s Jo
COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_N_ITEMS_UNFEATURED_1="%s Joomla Module Files, Folders & URLs unfeatured."
COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_N_ITEMS_UNPUBLISHED="%s Joomla Modules Files, Folders & URLs unpublished."
COM_COMPONENTBUILDER_JOOMLA_MODULES_FILES_FOLDERS_URLS_N_ITEMS_UNPUBLISHED_1="%s Joomla Module Files, Folders & URLs unpublished."
COM_COMPONENTBUILDER_JOOMLA_MODULES_IMPORT="Joomla Modules Import"
COM_COMPONENTBUILDER_JOOMLA_MODULES_IMPORT_DESC="Allows the users in this group to import import joomla modules"
COM_COMPONENTBUILDER_JOOMLA_MODULES_N_ITEMS_ARCHIVED="%s Joomla Modules archived."
COM_COMPONENTBUILDER_JOOMLA_MODULES_N_ITEMS_ARCHIVED_1="%s Joomla Module archived."
COM_COMPONENTBUILDER_JOOMLA_MODULES_N_ITEMS_CHECKED_IN_0="No Joomla Module successfully checked in."
@ -7216,8 +7242,6 @@ COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_VERSION_DESC="A count of the number of
COM_COMPONENTBUILDER_LANGUAGE_TRANSLATION_VERSION_LABEL="Version"
COM_COMPONENTBUILDER_LANGUAGE_VERSION_DESC="A count of the number of times this Language has been revised."
COM_COMPONENTBUILDER_LANGUAGE_VERSION_LABEL="Version"
COM_COMPONENTBUILDER_LAST_FEW_RELEASES_FROM_GITHUB_IS_LOADING="Last few releases from Github is loading"
COM_COMPONENTBUILDER_LATEST_RELEASE="Latest Release"
COM_COMPONENTBUILDER_LAYOUT="Layout"
COM_COMPONENTBUILDER_LAYOUTS="Layouts"
COM_COMPONENTBUILDER_LAYOUTS_ACCESS="Layouts Access"
@ -7740,12 +7764,12 @@ COM_COMPONENTBUILDER_NAME_DESC="Name (Desc)"
COM_COMPONENTBUILDER_NAME_OF_DYNAMICGET="Name of dynamicGet"
COM_COMPONENTBUILDER_NEED_HELP="Need help?"
COM_COMPONENTBUILDER_NEW="New"
COM_COMPONENTBUILDER_NEW_ISSUE="New Issue"
COM_COMPONENTBUILDER_NEW_MEANS_THAT_WE_COULD_NOT_FIND_A_LOCAL_SNIPPET_WITH_THE_SAME_NAME_LIBRARY_AND_TYPE_AND_SO_HAVE_MARKED_THIS_SNIPPET_AS_NEW="New means that we could not find a local snippet with the same name, library and type, and so have marked this snippet as new."
COM_COMPONENTBUILDER_NEW_NOTICE="New Notice"
COM_COMPONENTBUILDER_NO="No"
COM_COMPONENTBUILDER_NONE="None"
COM_COMPONENTBUILDER_NONE_DB="None DB"
COM_COMPONENTBUILDER_NONE_FOUND="None found"
COM_COMPONENTBUILDER_NONE_SELECTED="None selected"
COM_COMPONENTBUILDER_NOTICE_BOARD="Notice Board"
COM_COMPONENTBUILDER_NOTRANSLATION="no-translation"
@ -7781,12 +7805,7 @@ COM_COMPONENTBUILDER_ONLY_IN_LINKED_LIST_VIEWS="Only in Linked List Views"
COM_COMPONENTBUILDER_ONLY_ONE_COMPONENT_CAN_BE_CLONED_AT_A_TIME_PLEASE_SELECT_ONE_AND_TRY_AGAIN="Only one component can be cloned at a time, please select one and try again!"
COM_COMPONENTBUILDER_ONLY_SZIP_FILE_WAS_REMOVED_THE_FROM_TMP_FOLDER_DURING_INSTALLATION="Only (%s.zip) file was removed the from tmp folder during installation!"
COM_COMPONENTBUILDER_ONLY_USE_THE_BNONE_DBB_OPTION_IF_YOU_ARE_PLANNING_ON_TARGETING_THIS_FIELD_WITH_JAVASCRIPTCUSTOM_PHP_TO_MOVE_ITS_VALUE_INTO_ANOTHER_FIELD_THAT_DOES_GET_SAVED_TO_THE_DATABASE="Only use the <b>None DB</b> option if you are planning on targeting this field with JavaScript/Custom PHP to move its value into another field that does get saved to the database."
COM_COMPONENTBUILDER_ON_GITHUB="on Github"
COM_COMPONENTBUILDER_OPEN="Open"
COM_COMPONENTBUILDER_OPENED="opened"
COM_COMPONENTBUILDER_OPENED_THIS="opened this"
COM_COMPONENTBUILDER_OPEN_LIBRARY_SNIPPETS="Open Library Snippets"
COM_COMPONENTBUILDER_OPEN_ON_GITHUB="Open on Github"
COM_COMPONENTBUILDER_OPTIONS="Options"
COM_COMPONENTBUILDER_ORDER_BEFORE="Order Before"
COM_COMPONENTBUILDER_ORDER_IN_EDIT="Order in Edit"
@ -7923,6 +7942,172 @@ COM_COMPONENTBUILDER_PLEASE_WAIT="Please wait!"
COM_COMPONENTBUILDER_PLEASE_WAIT_LOADING="Please wait, loading"
COM_COMPONENTBUILDER_PLUGIN="Plugin"
COM_COMPONENTBUILDER_PLUGINS="Plugins"
COM_COMPONENTBUILDER_POWER="Power"
COM_COMPONENTBUILDER_POWERS="Powers"
COM_COMPONENTBUILDER_POWERS_ACCESS="Powers Access"
COM_COMPONENTBUILDER_POWERS_ACCESS_DESC="Allows the users in this group to access access powers"
COM_COMPONENTBUILDER_POWERS_A_HREFS_TARGET_BLANK_TITLEOPEN_POWERSA_WITH_VERSION_S_ALREADY_EXIST="Power:%s [<a href='%s' target='_blank' title='open power'>%s</a>] with version (%s) already exist."
COM_COMPONENTBUILDER_POWERS_BATCH_OPTIONS="Batch process the selected Powers"
COM_COMPONENTBUILDER_POWERS_BATCH_TIP="All changes will be applied to all selected Powers"
COM_COMPONENTBUILDER_POWERS_BATCH_USE="Powers Batch Use"
COM_COMPONENTBUILDER_POWERS_BATCH_USE_DESC="Allows users in this group to use batch copy/update method of batch powers"
COM_COMPONENTBUILDER_POWERS_CREATE="Powers Create"
COM_COMPONENTBUILDER_POWERS_CREATE_DESC="Allows the users in this group to create create powers"
COM_COMPONENTBUILDER_POWERS_DASHBOARD_LIST="Powers Dashboard List"
COM_COMPONENTBUILDER_POWERS_DASHBOARD_LIST_DESC="Allows the users in this group to dashboard list of power"
COM_COMPONENTBUILDER_POWERS_DELETE="Powers Delete"
COM_COMPONENTBUILDER_POWERS_DELETE_DESC="Allows the users in this group to delete delete powers"
COM_COMPONENTBUILDER_POWERS_DETAILS="Details"
COM_COMPONENTBUILDER_POWERS_EDIT="Powers Edit"
COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_BY="Powers Edit Created By"
COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_BY_DESC="Allows the users in this group to update the created by of the edit created by powers"
COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_DATE="Powers Edit Created Date"
COM_COMPONENTBUILDER_POWERS_EDIT_CREATED_DATE_DESC="Allows the users in this group to update the created date of the edit created powers"
COM_COMPONENTBUILDER_POWERS_EDIT_DESC="Allows the users in this group to edit the power"
COM_COMPONENTBUILDER_POWERS_EDIT_OWN="Powers Edit Own"
COM_COMPONENTBUILDER_POWERS_EDIT_OWN_DESC="Allows the users in this group to edit edit own powers created by them"
COM_COMPONENTBUILDER_POWERS_EDIT_STATE="Powers Edit State"
COM_COMPONENTBUILDER_POWERS_EDIT_STATE_DESC="Allows the users in this group to update the state of the power"
COM_COMPONENTBUILDER_POWERS_EDIT_VERSION="Powers Edit Version"
COM_COMPONENTBUILDER_POWERS_EDIT_VERSION_DESC="Allows users in this group to edit versions of version powers"
COM_COMPONENTBUILDER_POWERS_NAME="Name"
COM_COMPONENTBUILDER_POWERS_N_ITEMS_ARCHIVED="%s Powers archived."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_ARCHIVED_1="%s Power archived."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_CHECKED_IN_0="No Power successfully checked in."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_CHECKED_IN_1="%d Power successfully checked in."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_CHECKED_IN_MORE="%d Powers successfully checked in."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_DELETED="%s Powers deleted."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_DELETED_1="%s Power deleted."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_FAILED_PUBLISHING="%s Powers failed publishing."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_FAILED_PUBLISHING_1="%s Power failed publishing."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_FEATURED="%s Powers featured."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_FEATURED_1="%s Power featured."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_PUBLISHED="%s Powers published."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_PUBLISHED_1="%s Power published."
COM_COMPONENTBUILDER_POWERS_N_ITEMS_TRASHED="%s Powers trashed."