Compare commits

...

8 Commits

345 changed files with 4959 additions and 3538 deletions

View File

@ -1,4 +1,4 @@
# Component Builder (2.3.5)
# Component Builder (2.3.7)
This is a [Joomla 3.x](http://www.joomla.org/) component.
@ -8,7 +8,7 @@ The Component Builder for [Joomla](http://www.joomla.org/) that is highly advanc
Whether you're a seasoned [Joomla](http://www.joomla.org/) 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.3.5) 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.3.7) with **ALL** its features and **ALL** concepts totally open-source and free!
Once installed upgrades are quick and easy via the default Joomla upgrade area.
@ -104,12 +104,12 @@ 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*: 16th February, 2017
+ *Version*: 2.3.5
+ *Last Build*: 12th March, 2017
+ *Version*: 2.3.7
+ *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*: **92097**
+ *File count*: **595**
+ *Line count*: **92889**
+ *File count*: **602**
+ *Folder count*: **105**
> This **component** was build with a Joomla [Automated Component Builder](http://vdm.bz/component-builder).

View File

@ -1,4 +1,4 @@
# Component Builder (2.3.5)
# Component Builder (2.3.7)
This is a [Joomla 3.x](http://www.joomla.org/) component.
@ -8,7 +8,7 @@ The Component Builder for [Joomla](http://www.joomla.org/) that is highly advanc
Whether you're a seasoned [Joomla](http://www.joomla.org/) 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.3.5) 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.3.7) with **ALL** its features and **ALL** concepts totally open-source and free!
Once installed upgrades are quick and easy via the default Joomla upgrade area.
@ -104,12 +104,12 @@ 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*: 16th February, 2017
+ *Version*: 2.3.5
+ *Last Build*: 12th March, 2017
+ *Version*: 2.3.7
+ *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*: **92097**
+ *File count*: **595**
+ *Line count*: **92889**
+ *File count*: **602**
+ *Folder count*: **105**
> This **component** was build with a Joomla [Automated Component Builder](http://vdm.bz/component-builder).

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 95 of this MVC
@build 3rd February, 2017
@version @update number 104 of this MVC
@build 6th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_view.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 95 of this MVC
@build 3rd February, 2017
@version @update number 104 of this MVC
@build 6th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_views.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 18 of this MVC
@build 16th February, 2017
@version @update number 46 of this MVC
@build 3rd March, 2017
@created 1st February, 2017
@package Component Builder
@subpackage compiler.css

View File

@ -10,7 +10,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 3rd February, 2017
@build 1st March, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_view.css

View File

@ -10,7 +10,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 3rd February, 2017
@build 1st March, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_views.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 55 of this MVC
@build 16th February, 2017
@version @update number 81 of this MVC
@build 1st March, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_code.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 55 of this MVC
@build 16th February, 2017
@version @update number 81 of this MVC
@build 1st March, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_codes.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage dashboard.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 84 of this MVC
@build 16th February, 2017
@version @update number 97 of this MVC
@build 3rd March, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_component.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 84 of this MVC
@build 16th February, 2017
@version @update number 97 of this MVC
@build 3rd March, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_components.css

View File

@ -10,7 +10,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 11th February, 2017
@build 22nd February, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layout.css

View File

@ -10,7 +10,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 11th February, 2017
@build 22nd February, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layouts.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 48 of this MVC
@build 3rd February, 2017
@version @update number 51 of this MVC
@build 6th March, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_view.css

View File

@ -9,8 +9,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 48 of this MVC
@build 3rd February, 2017
@version @update number 51 of this MVC
@build 6th March, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_views.css

View File

@ -10,7 +10,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 3rd February, 2017
@build 22nd February, 2017
@created 26th May, 2015
@package Component Builder
@subpackage template.css

View File

@ -10,7 +10,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 3rd February, 2017
@build 22nd February, 2017
@created 26th May, 2015
@package Component Builder
@subpackage templates.css

View File

@ -146,13 +146,18 @@ abstract class ###Component###Helper
if (self::checkArray($where))
{
// prep main <-- why? well if $main='' is empty then $table can be categories or users
if (self::checkString($main))
{
$main = '_'.ltrim($main, '_');
}
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName(array($what)));
$query->from($db->quoteName('#__'.$main.'_'.$table));
$query->from($db->quoteName('#_'.$main.'_'.$table));
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
$db->setQuery($query);
$db->execute();
@ -681,13 +686,30 @@ abstract class ###Component###Helper
return $string;
}
public static function safeString($string, $type = 'L', $spacer = '_')
public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true)
{
// remove all numbers and replace with english text version (works well only up to millions)
$string = self::replaceNumbers($string);
if ($replaceNumbers === true)
{
// remove all numbers and replace with english text version (works well only up to millions)
$string = self::replaceNumbers($string);
}
// 0nly continue if we have a string
if (self::checkString($string))
{
// create file name without the extention that is safe
if ($type === 'filename')
{
// make sure VDM is not in the string
$string = str_replace('VDM', 'vDm', $string);
// Remove anything which isn't a word, whitespace, number
// or any of the following caracters -_()
// If you don't need to handle multi-byte characters
// you can use preg_replace rather than mb_ereg_replace
// Thanks @Łukasz Rysiak!
$string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
// http://stackoverflow.com/a/2021729/1429677
return preg_replace('/\s+/', ' ', $string);
}
// remove all other characters
$string = trim($string);
$string = preg_replace('/'.$spacer.'+/', ' ', $string);

View File

@ -0,0 +1,35 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@package Component Builder
@subpackage componentbuilder.php
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
@my wife Roline van der Merwe <http://www.vdm.io/>
@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');
?>
###BOM###
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* ###Component### Component Category Tree
*/
###CATEGORY_CLASS_TREES###

View File

@ -0,0 +1,50 @@
<?php
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
__ __ _ _____ _ _ __ __ _ _ _
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
| |
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@package Component Builder
@subpackage componentbuilder.php
@author Llewellyn van der Merwe <https://www.vdm.io/joomla-component-builder>
@my wife Roline van der Merwe <http://www.vdm.io/>
@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');
?>
###BOM###
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
/**
* ###Component### ###View### Component Category Tree
*/
class ###Component######Views###Categories extends JCategories
{
/**
* Class constructor
*
* @param array $options Array of options
*
*/
public function __construct($options = array())
{
$options['table'] = '#__###component###_###view###';
$options['extension'] = 'com_###component###.###views###';
parent::__construct($options);
}
}

View File

@ -320,13 +320,18 @@ abstract class ###Component###Helper
if (self::checkArray($where))
{
// prep main <-- why? well if $main='' is empty then $table can be categories or users
if (self::checkString($main))
{
$main = '_'.ltrim($main, '_');
}
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName(array($what)));
$query->from($db->quoteName('#__'.$main.'_'.$table));
$query->from($db->quoteName('#_'.$main.'_'.$table));
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
$db->setQuery($query);
$db->execute();
@ -673,13 +678,30 @@ abstract class ###Component###Helper
return $string;
}
public static function safeString($string, $type = 'L', $spacer = '_')
public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true)
{
// remove all numbers and replace with english text version (works well only up to millions)
$string = self::replaceNumbers($string);
if ($replaceNumbers === true)
{
// remove all numbers and replace with english text version (works well only up to millions)
$string = self::replaceNumbers($string);
}
// 0nly continue if we have a string
if (self::checkString($string))
{
// create file name without the extention that is safe
if ($type === 'filename')
{
// make sure VDM is not in the string
$string = str_replace('VDM', 'vDm', $string);
// Remove anything which isn't a word, whitespace, number
// or any of the following caracters -_()
// If you don't need to handle multi-byte characters
// you can use preg_replace rather than mb_ereg_replace
// Thanks @Łukasz Rysiak!
$string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
// http://stackoverflow.com/a/2021729/1429677
return preg_replace('/\s+/', ' ', $string);
}
// remove all other characters
$string = trim($string);
$string = preg_replace('/'.$spacer.'+/', ' ', $string);

View File

@ -47,5 +47,5 @@ class ###Component###Controller###Views### extends JControllerAdmin
$model = parent::getModel($name, $prefix, array('ignore_request' => true));
return $model;
}###CONTROLLEREXIMPORTMETHOD### ###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER###
}###CONTROLLEREXIMPORTMETHOD### ###CUSTOM_ADMIN_DYNAMIC_BUTTONS_CONTROLLER### ###ADMIN_CUSTOM_BUTTONS_CONTROLLER_LIST###
}

View File

@ -47,7 +47,7 @@ class ###Component###Model###Views### extends JModelList
}
parent::__construct($config);
}
}###ADMIN_CUSTOM_BUTTONS_METHOD_LIST###
/**
* Method to auto-populate the model state.

View File

@ -52,7 +52,8 @@ class ###Component###ViewImport extends JViewLegacy
}
// Check for errors.
if (count($errors = $this->get('Errors'))){
if (count($errors = $this->get('Errors')))
{
JError::raiseError(500, implode('<br />', $errors));
return false;
}

View File

@ -132,7 +132,7 @@ class ###Component###View###Views### extends JViewLegacy
// add the button to the page
$dhtml = $layout->render(array('title' => $title));
$bar->appendButton('Custom', $dhtml, 'batch');
}###CUSTOM_ADMIN_DYNAMIC_BUTTONS###
}###CUSTOM_ADMIN_DYNAMIC_BUTTONS### ###ADMIN_CUSTOM_BUTTONS_LIST###
if ($this->state->get('filter.published') == -2 && ($this->canState && $this->canDelete))
{

View File

@ -1,6 +1,11 @@
###INSTALL###
--
-- Always insure this column is large enough for all the access control values.
-- Always insure this column rules is large enough for all the access control values.
--
ALTER TABLE `#__assets` CHANGE `rules` `rules` MEDIUMTEXT NOT NULL COMMENT 'JSON encoded access control.';
--
-- Always insure this column name is large enough for long component and view names.
--
ALTER TABLE `#__assets` CHANGE `name` `name` VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'The unique name for the asset.';

View File

@ -157,6 +157,13 @@
"rename": "Helper_site",
"type": "file"
},
"Helper_category.php": {
"naam":"Helper_category.php",
"path": "c0mp0n3nt/site/helpers",
"rename": "new",
"newName": "category.php",
"type": "file"
},
"script.php": {
"naam":"script.php",
"path": "c0mp0n3nt/",
@ -677,6 +684,11 @@
"rename": "new",
"newName": "submitbutton.js",
"type": "custom_form"
},
"Helper_category_view.php": {
"path": "c0mp0n3nt/site/helpers",
"rename": "Helper_category_view",
"type": "category"
}
},
"custom_admin": {

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilder.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage controller.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 95 of this MVC
@build 3rd February, 2017
@version @update number 104 of this MVC
@build 6th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_view.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 95 of this MVC
@build 3rd February, 2017
@version @update number 104 of this MVC
@build 6th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage admin_views.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerAdmin_views extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=admin_views', false), $message, 'error');
return;
}
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage ajax.json.php
@ -44,6 +44,7 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
// load the tasks
$this->registerTask('isNew', 'ajax');
$this->registerTask('isRead', 'ajax');
$this->registerTask('getComponentDetails', 'ajax');
$this->registerTask('tableColumns', 'ajax');
$this->registerTask('fieldSelectOptions', 'ajax');
$this->registerTask('getImportScripts', 'ajax');
@ -147,6 +148,44 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
}
}
break;
case 'getComponentDetails':
try
{
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$idValue = $jinput->get('id', NULL, 'INT');
if($idValue && $user->id != 0)
{
$result = $this->getModel('ajax')->getComponentDetails($idValue);
}
else
{
$result = false;
}
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback . "(".json_encode($result).");";
}
elseif($returnRaw)
{
echo json_encode($result);
}
else
{
echo "(".json_encode($result).");";
}
}
catch(Exception $e)
{
if($callback = $jinput->get('callback', null, 'CMD'))
{
echo $callback."(".json_encode($e).");";
}
else
{
echo "(".json_encode($e).");";
}
}
break;
case 'tableColumns':
try
{
@ -577,9 +616,10 @@ class ComponentbuilderControllerAjax extends JControllerLegacy
$returnRaw = $jinput->get('raw', false, 'BOOLEAN');
$functioNameValue = $jinput->get('functioName', NULL, 'WORD');
$idValue = $jinput->get('id', NULL, 'INT');
if($functioNameValue && $idValue && $user->id != 0)
$targetValue = $jinput->get('target', NULL, 'WORD');
if($functioNameValue && $idValue && $targetValue && $user->id != 0)
{
$result = $this->getModel('ajax')->usedin($functioNameValue, $idValue);
$result = $this->getModel('ajax')->usedin($functioNameValue, $idValue, $targetValue);
}
else
{

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 18 of this MVC
@build 16th February, 2017
@version @update number 46 of this MVC
@build 3rd March, 2017
@created 1st February, 2017
@package Component Builder
@subpackage compiler.php
@ -66,9 +66,9 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
if($user->authorise('core.admin', 'com_componentbuilder'))
{
// get the post values
$jinput = JFactory::getApplication()->input;
$jinput = JFactory::getApplication()->input;
$componentId = $jinput->post->get('component', 0, 'INT');
$version = $jinput->post->get('version', 0, 'INT');
$version = $jinput->post->get('version', 0, 'INT');
$addBackup = $jinput->post->get('backup', 0, 'INT');
$addGit = $jinput->post->get('git', 0, 'INT');
$addPlaceholders = $jinput->post->get('placeholders', 2, 'INT');
@ -93,62 +93,37 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
if (empty($redirect_url) && $componentId > 0)
{
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=compiler', false);
// setup the unrealistic numbers
$counter = $model->getCount();
$folders = $counter['folders'] * 5;
$files = $counter['files'] * 5;
$lines = $counter['lines'] * 10;
$seconds = $folders + $files + $lines;
$totalHours = round($seconds / 3600);
$totalDays = round($totalHours / 8);
// setup the more realistic numbers
$debugging = $seconds / 4;
$planning = $seconds / 7;
$mapping = $seconds / 10;
$office = $seconds / 6;
$seconds = $folders + $files + $lines + $debugging + $planning + $mapping + $office;
$actualTotalHours = round($seconds / 3600);
$actualTotalDays = round($actualTotalHours / 8);
$debuggingHours = round($debugging / 3600);
$planningHours = round($planning / 3600);
$mappingHours = round($mapping / 3600);
$officeHours = round($office / 3600);
// the actual time spent
$actualHoursSpent = $actualTotalHours - $totalHours;
$actualDaysSpent = $actualTotalDays - $totalDays;
// calculate the projects actual time frame of completion
$projectWeekTime = round($actualTotalDays / 5,1);
$projectMonthTime = round($actualTotalDays / 24,1);
if (($pos = strpos($counter['filePath'], "/tmp/")) !== FALSE)
if (($pos = strpos($model->compiler->filepath, "/tmp/")) !== FALSE)
{
$url = JURI::root() . substr($counter['filePath'], $pos + 1);
$url = JURI::root() . substr($model->compiler->filepath, $pos + 1);
}
// Message of successful build
$message = '<h1>The ('.$counter['filename'].') Was Successfully Compiled!</h1>';
$message = '<h1>The ('.$model->compiler->componentFolderName.') Was Successfully Compiled!</h1>';
$message .= '<p><button class="btn btn-small btn-success" onclick="Joomla.submitbutton(\'compiler.installExtention\')">';
$message .= 'Install '.$counter['filename'].' on this <span class="icon-joomla icon-white"></span>Joomla website.</button></p>';
$message .= 'Install '.$model->compiler->componentFolderName.' on this <span class="icon-joomla icon-white"></span>Joomla website.</button></p>';
$message .= '<h2>Total time saved</h2>';
$message .= '<ul>';
$message .= '<li>Total folders created: <b>'.$counter['folders'].'</b></li>';
$message .= '<li>Total files created: <b>'.$counter['files'].'</b></li>';
$message .= '<li>Total lines written: <b>'.$counter['lines'].'</b></li>';
$message .= '<li>Total folders created: <b>'.$model->compiler->folderCount.'</b></li>';
$message .= '<li>Total files created: <b>'.$model->compiler->fileCount.'</b></li>';
$message .= '<li>Total lines written: <b>'.$model->compiler->lineCount.'</b></li>';
$message .= '<li>A4 Book of: <b>'.$model->compiler->pageCount.' pages</b></li>';
$message .= '</ul>';
$message .= '<p><b>'.$totalHours.' Hours</b> or <b>'.$totalDays.' Eight Hour Days</b> <em>(actual time you saved)</em><br />';
$message .= '<p><b>'.$model->compiler->totalHours.' Hours</b> or <b>'.$model->compiler->totalDays.' Eight Hour Days</b> <em>(actual time you saved)</em><br />';
$message .= '<small>(if creating a folder and file took <b>5 seconds</b> and writing one line of code took <b>10 seconds</b>, never making one mistake or taking any coffee break.)</small><br />';
$message .= '<b>'.$actualHoursSpent.' Hours</b> or <b>'.$actualDaysSpent.' Eight Hour Days</b> <em>(the actual time you spent)</em><br />';
$message .= '<small>(with the following break down: <b>debugging @'.$debuggingHours.'hours</b> = codingtime / 4; <b>planning @'.$planningHours.'hours</b> = codingtime / 7; <b>mapping @'.$mappingHours.'hours</b> = codingtime / 10; <b>office @'.$officeHours.'hours</b> = codingtime / 6;)</small></p>';
$message .= '<p><b>'.$actualTotalHours.' Hours</b> or <b>'.$actualTotalDays.' Eight Hour Days</b> <em>(a total of the realistic time frame for this project)</em><br />';
$message .= '<b>'.$model->compiler->actualHoursSpent.' Hours</b> or <b>'.$model->compiler->actualDaysSpent.' Eight Hour Days</b> <em>(the actual time you spent)</em><br />';
$message .= '<small>(with the following break down: <b>debugging @'.$model->compiler->debuggingHours.'hours</b> = codingtime / 4; <b>planning @'.$model->compiler->planningHours.'hours</b> = codingtime / 7; <b>mapping @'.$model->compiler->mappingHours.'hours</b> = codingtime / 10; <b>office @'.$model->compiler->officeHours.'hours</b> = codingtime / 6;)</small></p>';
$message .= '<p><b>'.$model->compiler->actualTotalHours.' Hours</b> or <b>'.$model->compiler->actualTotalDays.' Eight Hour Days</b> <em>(a total of the realistic time frame for this project)</em><br />';
$message .= '<small>(if creating a folder and file took <b>5 seconds</b> and writing one line of code took <b>10 seconds</b>, with the normal everyday realities at the office, that includes the component planning, mapping & debugging.)</small></p>';
$message .= '<p>Project duration: <b>'.$projectWeekTime. ' weeks</b> or <b>'.$projectMonthTime.' months</b></p>';
$message .= '<p>Project duration: <b>'.$model->compiler->projectWeekTime. ' weeks</b> or <b>'.$model->compiler->projectMonthTime.' months</b></p>';
$message .= '<h2>Path to Zip File</h2>';
$message .= '<p><b>Path:</b> <code>'.$counter['filePath'].'</code><br />';
$message .= '<p><b>Path:</b> <code>'.$model->compiler->filepath.'</code><br />';
$message .= '<b>URL:</b> <code>'.$url.'</code><br /><br />';
$message .= '<small>Hey! you can also download the file right now!</small><br /><a class="btn btn-success" href="'.$url.'" ><span class="icon-download icon-white"></span>Download</a></p>';
$message .= '<p><small><b>Remember!</b> This file is in your tmp folder and therefore publicly accessible untill you click [Clear tmp]!</small> </p>';
$message .= '<p><small>Compilation took <b>'.$counter['time'].'</b> seconds to complete.</small> </p>';
$message .= '<p><small>Compilation took <b>'.$model->compiler->secondsCompiled.'</b> seconds to complete.</small> </p>';
// set redirect
$this->setRedirect($redirect_url,$message,'message');
$app->setUserState('com_componentbuilder.extension_name', $counter['filename']);
$app->setUserState('com_componentbuilder.extension_name', $model->compiler->componentFolderName);
}
else
{

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilder.php

View File

@ -11,7 +11,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 3rd February, 2017
@build 1st March, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_view.php

View File

@ -11,7 +11,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 22 of this MVC
@build 3rd February, 2017
@build 1st March, 2017
@created 13th August, 2015
@package Component Builder
@subpackage custom_admin_views.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerCustom_admin_views extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=custom_admin_views', false), $message, 'error');
return;
}
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 55 of this MVC
@build 16th February, 2017
@version @update number 81 of this MVC
@build 1st March, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_code.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 55 of this MVC
@build 16th February, 2017
@version @update number 81 of this MVC
@build 1st March, 2017
@created 11th October, 2016
@package Component Builder
@subpackage custom_codes.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerCustom_codes extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=custom_codes', false), $message, 'error');
return;
}
}
}

View File

@ -107,5 +107,5 @@ class ComponentbuilderControllerDynamic_gets extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=dynamic_gets', false), $message, 'error');
return;
}
}
}

View File

@ -107,5 +107,5 @@ class ComponentbuilderControllerFields extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=fields', false), $message, 'error');
return;
}
}
}

View File

@ -107,5 +107,5 @@ class ComponentbuilderControllerFieldtypes extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=fieldtypes', false), $message, 'error');
return;
}
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage help.php

View File

@ -107,5 +107,5 @@ class ComponentbuilderControllerHelp_documents extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=help_documents', false), $message, 'error');
return;
}
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage import.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 84 of this MVC
@build 16th February, 2017
@version @update number 97 of this MVC
@build 3rd March, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_component.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 84 of this MVC
@build 16th February, 2017
@version @update number 97 of this MVC
@build 3rd March, 2017
@created 6th May, 2015
@package Component Builder
@subpackage joomla_components.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerJoomla_components extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=joomla_components', false), $message, 'error');
return;
}
}
}

View File

@ -11,7 +11,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 11th February, 2017
@build 22nd February, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layout.php

View File

@ -11,7 +11,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 67 of this MVC
@build 11th February, 2017
@build 22nd February, 2017
@created 18th May, 2015
@package Component Builder
@subpackage layouts.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerLayouts extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=layouts', false), $message, 'error');
return;
}
}
}

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 48 of this MVC
@build 3rd February, 2017
@version @update number 51 of this MVC
@build 6th March, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_view.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 48 of this MVC
@build 3rd February, 2017
@version @update number 51 of this MVC
@build 6th March, 2017
@created 29th May, 2015
@package Component Builder
@subpackage site_views.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerSite_views extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=site_views', false), $message, 'error');
return;
}
}
}

View File

@ -107,5 +107,5 @@ class ComponentbuilderControllerSnippets extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=snippets', false), $message, 'error');
return;
}
}
}

View File

@ -11,7 +11,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 3rd February, 2017
@build 22nd February, 2017
@created 26th May, 2015
@package Component Builder
@subpackage template.php

View File

@ -11,7 +11,7 @@
/-------------------------------------------------------------------------------------------------------------------------------/
@version @update number 40 of this MVC
@build 3rd February, 2017
@build 22nd February, 2017
@created 26th May, 2015
@package Component Builder
@subpackage templates.php
@ -107,5 +107,5 @@ class ComponentbuilderControllerTemplates extends JControllerAdmin
$message = JText::_('COM_COMPONENTBUILDER_IMPORT_FAILED');
$this->setRedirect(JRoute::_('index.php?option=com_componentbuilder&view=templates', false), $message, 'error');
return;
}
}
}

View File

@ -107,6 +107,8 @@ class Compiler extends Infusion
$this->setLangFileData();
// move the update server into place
$this->setUpdateServer();
// set the global counters
$this->setCountingStuff();
// build read me
$this->buildReadMe();
// zip the component
@ -302,6 +304,38 @@ class Compiler extends Infusion
$this->fileContentStatic['###BUILDDATE###'] = $this->fileContentStatic['###BUILDDATE###GLOBAL'];
$this->fileContentStatic['###VERSION###'] = $this->fileContentStatic['###VERSION###GLOBAL'];
}
// set all global numbers
protected function setCountingStuff()
{
// what is the size in terms of an A4 book
$this->pageCount = round($this->lineCount / 56);
// setup the unrealistic numbers
$this->folderSeconds = $this->folderCount * 5;
$this->fileSeconds = $this->fileCount * 5;
$this->lineSeconds = $this->lineCount * 10;
$this->seconds = $this->folderSeconds + $this->fileSeconds + $this->lineSeconds;
$this->totalHours = round($this->seconds / 3600);
$this->totalDays = round($this->totalHours / 8);
// setup the more realistic numbers
$this->secondsDebugging = $this->seconds / 4;
$this->secondsPlanning = $this->seconds / 7;
$this->secondsMapping = $this->seconds / 10;
$this->secondsOffice = $this->seconds / 6;
$this->actualSeconds = $this->folderSeconds + $this->fileSeconds + $this->lineSeconds + $this->secondsDebugging + $this->secondsPlanning + $this->secondsMapping + $this->secondsOffice;
$this->actualTotalHours = round($this->actualSeconds / 3600);
$this->actualTotalDays = round($this->actualTotalHours / 8);
$this->debuggingHours = round($this->secondsDebugging / 3600);
$this->planningHours = round($this->secondsPlanning / 3600);
$this->mappingHours = round($this->secondsMapping / 3600);
$this->officeHours = round($this->secondsOffice / 3600);
// the actual time spent
$this->actualHoursSpent = $this->actualTotalHours - $this->totalHours;
$this->actualDaysSpent = $this->actualTotalDays - $this->totalDays;
// calculate the projects actual time frame of completion
$this->projectWeekTime = round($this->actualTotalDays / 5,1);
$this->projectMonthTime = round($this->actualTotalDays / 24,1);
}
private function buildReadMe()
{
@ -339,55 +373,39 @@ class Compiler extends Infusion
private function buildReadMeData()
{
// setup the unrealistic numbers
$folders = $this->folderCount * 5;
$files = $this->fileCount * 5;
$lines = $this->lineCount * 10;
$seconds = $folders + $files + $lines;
$totalHours = round($seconds / 3600);
$totalDays = round($totalHours / 8);
// setup the more realistic numbers
$debugging = $seconds / 4;
$planning = $seconds / 7;
$mapping = $seconds / 10;
$office = $seconds / 6;
$seconds = $folders + $files + $lines + $debugging + $planning + $mapping + $office;
$actualTotalHours = round($seconds / 3600);
$actualTotalDays = round($actualTotalHours / 8);
$debuggingHours = round($debugging / 3600);
$planningHours = round($planning / 3600);
$mappingHours = round($mapping / 3600);
$officeHours = round($office / 3600);
// the actual time spent
$actualHoursSpent = $actualTotalHours - $totalHours;
$actualDaysSpent = $actualTotalDays - $totalDays;
// calculate the projects actual time frame of completion
$projectWeekTime = round($actualTotalDays / 5,1);
$projectMonthTime = round($actualTotalDays / 24,1);
// set some defaults
$this->fileContentStatic['###LINE_COUNT###'] = $this->lineCount;
$this->fileContentStatic['###FILE_COUNT###'] = $this->fileCount;
$this->fileContentStatic['###FOLDER_COUNT###'] = $this->folderCount;
$this->fileContentStatic['###folders###'] = $folders;
$this->fileContentStatic['###files###'] = $files;
$this->fileContentStatic['###lines###'] = $lines;
$this->fileContentStatic['###seconds###'] = $seconds;
$this->fileContentStatic['###totalHours###'] = $totalHours;
$this->fileContentStatic['###totalDays###'] = $totalDays;
$this->fileContentStatic['###debugging###'] = $debugging;
$this->fileContentStatic['###planning###'] = $planning;
$this->fileContentStatic['###mapping###'] = $mapping;
$this->fileContentStatic['###office###'] = $office;
$this->fileContentStatic['###actualTotalHours###'] = $actualTotalHours;
$this->fileContentStatic['###actualTotalDays###'] = $actualTotalDays;
$this->fileContentStatic['###debuggingHours###'] = $debuggingHours;
$this->fileContentStatic['###planningHours###'] = $planningHours;
$this->fileContentStatic['###mappingHours###'] = $mappingHours;
$this->fileContentStatic['###officeHours###'] = $officeHours;
$this->fileContentStatic['###actualHoursSpent###'] = $actualHoursSpent;
$this->fileContentStatic['###actualDaysSpent###'] = $actualDaysSpent;
$this->fileContentStatic['###projectWeekTime###'] = $projectWeekTime;
$this->fileContentStatic['###projectMonthTime###'] = $projectMonthTime;
$this->fileContentStatic['###LINE_COUNT###'] = $this->lineCount;
$this->fileContentStatic['###FILE_COUNT###'] = $this->fileCount;
$this->fileContentStatic['###FOLDER_COUNT###'] = $this->folderCount;
$this->fileContentStatic['###PAGE_COUNT###'] = $this->pageCount;
$this->fileContentStatic['###folders###'] = $this->folderSeconds;
$this->fileContentStatic['###foldersSeconds###'] = $this->folderSeconds;
$this->fileContentStatic['###files###'] = $this->fileSeconds;
$this->fileContentStatic['###filesSeconds###'] = $this->fileSeconds;
$this->fileContentStatic['###lines###'] = $this->lineSeconds;
$this->fileContentStatic['###linesSeconds###'] = $this->lineSeconds;
$this->fileContentStatic['###seconds###'] = $this->actualSeconds;
$this->fileContentStatic['###actualSeconds###'] = $this->actualSeconds;
$this->fileContentStatic['###totalHours###'] = $this->totalHours;
$this->fileContentStatic['###totalDays###'] = $this->totalDays;
$this->fileContentStatic['###debugging###'] = $this->secondsDebugging;
$this->fileContentStatic['###secondsDebugging###'] = $this->secondsDebugging;
$this->fileContentStatic['###planning###'] = $this->secondsPlanning;
$this->fileContentStatic['###secondsPlanning###'] = $this->secondsPlanning;
$this->fileContentStatic['###mapping###'] = $this->secondsMapping;
$this->fileContentStatic['###secondsMapping###'] = $this->secondsMapping;
$this->fileContentStatic['###office###'] = $this->secondsOffice;
$this->fileContentStatic['###secondsOffice###'] = $this->secondsOffice;
$this->fileContentStatic['###actualTotalHours###'] = $this->actualTotalHours;
$this->fileContentStatic['###actualTotalDays###'] = $this->actualTotalDays;
$this->fileContentStatic['###debuggingHours###'] = $this->debuggingHours;
$this->fileContentStatic['###planningHours###'] = $this->planningHours;
$this->fileContentStatic['###mappingHours###'] = $this->mappingHours;
$this->fileContentStatic['###officeHours###'] = $this->officeHours;
$this->fileContentStatic['###actualHoursSpent###'] = $this->actualHoursSpent;
$this->fileContentStatic['###actualDaysSpent###'] = $this->actualDaysSpent;
$this->fileContentStatic['###projectWeekTime###'] = $this->projectWeekTime;
$this->fileContentStatic['###projectMonthTime###'] = $this->projectMonthTime;
}
private function zipComponent()

View File

@ -529,6 +529,14 @@ class Get
// Load the results as a list of stdClass objects
$component = $this->db->loadObject();
// set component place holders
$this->placeholders['###component###'] = ComponentbuilderHelper::safeString($component->name_code);
$this->placeholders['###Component###'] = ComponentbuilderHelper::safeString($component->name_code, 'F');
$this->placeholders['###COMPONENT###'] = ComponentbuilderHelper::safeString($component->name_code, 'U');
$this->placeholders['[[[component]]]'] = $this->placeholders['###component###'];
$this->placeholders['[[[Component]]]'] = $this->placeholders['###Component###'];
$this->placeholders['[[[COMPONENT]]]'] = $this->placeholders['###COMPONENT###'];
// set component sales name
$component->sales_name = ComponentbuilderHelper::safeString($component->system_name);
// ensure version naming is correct
@ -669,7 +677,7 @@ class Get
}
// set the site_view data
$site_views = json_decode($component->addsite_views,true);
$site_views = json_decode($component->addsite_views,true);
if (ComponentbuilderHelper::checkArray($site_views))
{
foreach ($site_views as $option => $values)
@ -690,11 +698,14 @@ class Get
$this->lang = 'site';
$this->target = 'site';
// load the view and field data
foreach ($component->site_views as $key => &$view)
if (isset($component->site_views) && ComponentbuilderHelper::checkArray($component->site_views))
{
// TODO this is a temp fix until front view is added
$view['view'] = $view['siteview'];
$view['settings'] = $this->getCustomViewData($view['view']);
foreach ($component->site_views as $key => &$view)
{
// has become a lacacy issue, can't remove this
$view['view'] = $view['siteview'];
$view['settings'] = $this->getCustomViewData($view['view']);
}
}
}
@ -720,11 +731,14 @@ class Get
$this->lang = 'admin';
$this->target = 'custom_admin';
// load the view and field data
foreach ($component->custom_admin_views as $key => &$view)
if (isset($component->custom_admin_views) && ComponentbuilderHelper::checkArray($component->custom_admin_views))
{
// TODO this is a temp fix until front view is added
$view['view'] = $view['customadminview'];
$view['settings'] = $this->getCustomViewData($view['view'], 'custom_admin_view');
foreach ($component->custom_admin_views as $key => &$view)
{
// has become a lacacy issue, can't remove this
$view['view'] = $view['customadminview'];
$view['settings'] = $this->getCustomViewData($view['view'], 'custom_admin_view');
}
}
}
@ -1266,14 +1280,24 @@ class Get
// add the custom buttons
if (isset($view->add_custom_button) && $view->add_custom_button == 1)
{
if (ComponentbuilderHelper::checkString($view->php_model) && $view->php_mode !== '//')
// set for the edit views
if (ComponentbuilderHelper::checkString($view->php_model))
{
$view->php_model = $this->setDynamicValues(base64_decode($view->php_model));
}
if (ComponentbuilderHelper::checkString($view->php_controller) && trim($view->php_controller) !== '//')
if (ComponentbuilderHelper::checkString($view->php_controller))
{
$view->php_controller = $this->setDynamicValues(base64_decode($view->php_controller));
}
// set for the list views
if (isset($view->php_model_list) && ComponentbuilderHelper::checkString($view->php_model_list))
{
$view->php_model_list = $this->setDynamicValues(base64_decode($view->php_model_list));
}
if (isset($view->php_controller_list) && ComponentbuilderHelper::checkString($view->php_controller_list))
{
$view->php_controller_list = $this->setDynamicValues(base64_decode($view->php_controller_list));
}
// set the button array
$buttons = json_decode($view->custom_button,true);
unset($view->custom_button);
@ -1491,6 +1515,18 @@ class Get
$this->getModule[$this->target][$view->code] = true;
}
}
// (TODO) we may want to automate this .... lets see if someone asks
// if (strpos($view->$scripter,"token") !== false || strpos($view->$scripter,"task=ajax") !== false)
// {
// if(!isset($this->customScriptBuilder['token']))
// {
// $this->customScriptBuilder['token'] = array();
// }
// if (!isset($this->customScriptBuilder['token'][$this->target.$view->code]) || !$this->customScriptBuilder['token'][$this->target.$view->code])
// {
// $this->customScriptBuilder['token'][$this->target.$view->code] = true;
// }
// }
}
}
// add_Ajax for this view
@ -1584,7 +1620,7 @@ class Get
$field->type = $field->fieldtype;
// load the values form params
$field->xml = json_decode($field->xml);
$field->xml = $this->setDynamicValues(json_decode($field->xml));
// load the type values form type params
$properties = json_decode($field->type_properties,true);
@ -2282,7 +2318,11 @@ class Get
$langHolders["JText::sprintf('".$string."',"] = "JText::sprintf('".$keyLang."',";
$langHolders['JText::sprintf("'.$string.'",'] = 'JText::sprintf("'.$keyLang.'",';
}
$content = $this->setPlaceholders($content, $langHolders);
// only continue if we have value to replace
if (isset($langHolders) && ComponentbuilderHelper::checkArray($langHolders))
{
$content = $this->setPlaceholders($content, $langHolders);
}
}
}
return $content;
@ -2697,7 +2737,11 @@ class Get
*/
public function setDynamicValues($string)
{
return $this->setLangStrings($this->setCustomCodeData($string));
if (ComponentbuilderHelper::checkString($string))
{
return $this->setLangStrings($this->setCustomCodeData($string));
}
return $string;
}
/**

View File

@ -45,6 +45,13 @@ class Structure extends Get
*/
public $fileCount = 0;
/**
* The page counter
*
* @var int
*/
public $pageCount = 0;
/**
* The line counter
*
@ -52,6 +59,153 @@ class Structure extends Get
*/
public $lineCount = 0;
/**
* The seconds counter
*
* @var int
*/
public $seconds = 0;
/**
* The actual seconds counter
*
* @var int
*/
public $actualSeconds = 0;
/**
* The folder seconds counter
*
* @var int
*/
public $folderSeconds = 0;
/**
* The file seconds counter
*
* @var int
*/
public $fileSeconds = 0;
/**
* The line seconds counter
*
* @var int
*/
public $lineSeconds = 0;
/**
* The seconds debugging counter
*
* @var int
*/
public $secondsDebugging = 0;
/**
* The seconds planning counter
*
* @var int
*/
public $secondsPlanning = 0;
/**
* The seconds mapping counter
*
* @var int
*/
public $secondsMapping = 0;
/**
* The seconds office counter
*
* @var int
*/
public $secondsOffice = 0;
/**
* The total hours counter
*
* @var int
*/
public $totalHours = 0;
/**
* The debugging hours counter
*
* @var int
*/
public $debuggingHours = 0;
/**
* The planning hours counter
*
* @var int
*/
public $planningHours = 0;
/**
* The mapping hours counter
*
* @var int
*/
public $mappingHours = 0;
/**
* The office hours counter
*
* @var int
*/
public $officeHours = 0;
/**
* The actual Total Hours counter
*
* @var int
*/
public $actualTotalHours = 0;
/**
* The actual hours spent counter
*
* @var int
*/
public $actualHoursSpent = 0;
/**
* The actual days spent counter
*
* @var int
*/
public $actualDaysSpent = 0;
/**
* The total days counter
*
* @var int
*/
public $totalDays = 0;
/**
* The actual Total Days counter
*
* @var int
*/
public $actualTotalDays = 0;
/**
* The project week time counter
*
* @var int
*/
public $projectWeekTime = 0;
/**
* The project month time counter
*
* @var int
*/
public $projectMonthTime = 0;
/**
* The Joomla Version
*

View File

@ -311,7 +311,14 @@ class Fields extends Structure
*
* @var array
*/
public $fieldsNames = array();
public $fieldsNames = array();
/**
* Set unique Names
*
* @var array
*/
public $uniqueNames = array();
/**
* Default Fields
@ -368,6 +375,19 @@ class Fields extends Structure
// setup the list view and single view name
$listViewName = ComponentbuilderHelper::safeString($view['settings']->name_list);
$viewName = ComponentbuilderHelper::safeString($view['settings']->name_single);
// set some place holder for this view
$this->placeholders['###view###'] = $viewName;
$this->placeholders['###VIEW###'] = strtoupper($viewName);
$this->placeholders['###View###'] = ucfirst($viewName);
$this->placeholders['[[[view]]]'] = $this->placeholders['###view###'];
$this->placeholders['[[[VIEW]]]'] = $this->placeholders['###VIEW###'];
$this->placeholders['[[[View]]]'] = $this->placeholders['###View###'];
$this->placeholders['###views###'] = $listViewName;
$this->placeholders['###VIEWS###'] = strtoupper($listViewName);
$this->placeholders['###Views###'] = ucfirst($listViewName);
$this->placeholders['[[[views]]]'] = $this->placeholders['###views###'];
$this->placeholders['[[[VIEWS]]]'] = $this->placeholders['###VIEWS###'];
$this->placeholders['[[[Views]]]'] = $this->placeholders['###Views###'];
// add metadata to the view
if ($view['metadata'])
{
@ -385,12 +405,12 @@ class Fields extends Structure
$readOnly = "\t\t\t" . 'readonly="true"' . PHP_EOL."\t\t\t" . 'disabled="true"';
}
// main lang prefix
$langView = $this->langPrefix . '_' . ComponentbuilderHelper::safeString($view['settings']->name_single, 'U');
$langViews = $this->langPrefix . '_' . ComponentbuilderHelper::safeString($view['settings']->name_list, 'U');
$langView = $this->langPrefix . '_' . $this->placeholders['###VIEW###'];
$langViews = $this->langPrefix . '_' . $this->placeholders['###VIEWS###'];
// set default lang
$this->langContent[$this->lang][$langView] = $view['settings']->name_single;
$this->langContent[$this->lang][$langViews] = $view['settings']->name_list;
// set the singel name
// set the single name
$viewSingleName = ComponentbuilderHelper::safeString($view['settings']->name_single, 'W');
// set global item strings
$this->langContent[$this->lang][$langViews . '_N_ITEMS_ARCHIVED'] = "%s " . $view['settings']->name_list . " archived.";
@ -427,20 +447,21 @@ class Fields extends Structure
$this->langContent[$this->lang][$langView . '_VERSION_DESC'] = "A count of the number of times this " . $view['settings']->name_single . " has been revised.";
$this->langContent[$this->lang][$langView . '_SAVE_WARNING'] = "Alias already existed so a number was added at the end. You can re-edit the " . $view['settings']->name_single . " to customise the alias.";
// check if the same field is added multiple times
foreach ($view['settings']->fields as $field)
{
$name = ComponentbuilderHelper::safeString($field['settings']->name);
$this->setUniqueNameKeeper($field, $view['settings']->type, $name, $viewName);
}
// start adding dynamc fields
$dynamcfields = '';
// place holders
$placeholders = array(
'###component###' => $component,
'###view###' => $viewName,
'###views###' => $listViewName);
$spacerCounter = 'a';
// set the custom table key
$dbkey = 'g';
// TODO we should add the global and local view switch if field for front end
foreach ($view['settings']->fields as $field)
{
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $placeholders, $dbkey, true);
$dynamcfields .= $this->setDynamicField($field, $view, $view['settings']->type, $langView, $viewName, $listViewName, $spacerCounter, $this->placeholders, $dbkey, true);
}
// set the defautl fields
@ -633,6 +654,8 @@ class Fields extends Structure
$fieldSet[] = "\t\t</fieldset>";
$fieldSet[] = "\t</fields>";
}
// just to be safe, lets clear the view placeholders
$this->clearFromPlaceHolders('view');
// retunr the set
return implode(PHP_EOL, $fieldSet);
}
@ -1135,18 +1158,18 @@ class Fields extends Structure
/**
* set field attributes
*
* @param array $field The field data
* @param int $viewType The view type
* @param string $name The field name
* @param string $typeName The field type
* @param boolean $multiple The switch to set multiple selection option
* @param string $langLabel The language string for field label
* @param string $langView The language string of the view
* @param array $field The field data
* @param int $viewType The view type
* @param string $name The field name
* @param string $typeName The field type
* @param boolean $multiple The switch to set multiple selection option
* @param string $langLabel The language string for field label
* @param string $langView The language string of the view
* @param string $spacerCounter The space counter value
* @param string $listViewName The list view name
* @param string $viewName The singel view name
* @param array $placeholders The place holder and replace values
* @param boolean $repeatable The repeatable field switch
* @param string $listViewName The list view name
* @param string $viewName The singel view name
* @param array $placeholders The place holder and replace values
* @param boolean $repeatable The repeatable field switch
*
* @return array The field attributes
*
@ -1219,7 +1242,7 @@ class Fields extends Structure
{
// quick check if this is a category linked to view page
$requeSt_id = ComponentbuilderHelper::getBetween($field['settings']->xml, 'name="', '"');
if (strpos($requeSt_id, '_request_id') !== false)
if (strpos($requeSt_id, '_request_id') !== false || strpos($requeSt_id, '_request_catid') !== false)
{
// keep it then, don't change
$xmlValue = $requeSt_id;
@ -1264,12 +1287,16 @@ class Fields extends Structure
// use field core name only if not found in xml
if (!ComponentbuilderHelper::checkString($xmlValue))
{
// make sure the XML name is uniqe, so we can add one field multiple times
$name = $this->uniqueName($name, $viewName);
$xmlValue = $name;
}
// set the name if found
else
{
$name = $xmlValue;
// make sure the XML name is uniqe, so we can add one field multiple times
$xmlValue = $this->uniqueName($xmlValue, $viewName);
$name = $this->setPlaceholders($xmlValue, $placeholders);
}
}
elseif ($property['name'] === 'extension' || $property['name'] === 'directory')
@ -1381,6 +1408,14 @@ class Fields extends Structure
// check if translatable
if (ComponentbuilderHelper::checkString($xmlValue) && $property['translatable'] == 1)
{
// update lable if field use multiple times
if ($property['name'] === 'label')
{
if (isset($fieldAttributes['name']) && isset($this->uniqueNames[$viewName]['names'][$fieldAttributes['name']]))
{
$xmlValue .= ' (' . ComponentbuilderHelper::safeString($this->uniqueNames[$viewName]['names'][$fieldAttributes['name']]) . ')';
}
}
// replace placeholders
$xmlValue = $this->setPlaceholders($xmlValue, $placeholders);
// insure custom lables dont get messed up
@ -1432,18 +1467,17 @@ class Fields extends Structure
$xmlValue = $property['example'];
}
}
$fieldAttributes[$property['name']] = $xmlValue;
// load to langBuilder down the line
if ($property['name'] === 'label')
{
$langLabel = $xmlValue;
if ($setCustom)
{
$fieldAttributes['custom']['label'] = $customLabel;
}
$langLabel = $xmlValue;
}
// now set the value
$fieldAttributes[$property['name']] = $xmlValue;
}
}
// do some nice twigs beyond the default
@ -1460,6 +1494,123 @@ class Fields extends Structure
return $fieldAttributes;
}
/**
* Keep track of the field names, to see if it used multiple times
*
* @param array $field The field data
* @param string $typeName The field type
* @param string $name The field name
* @param string $viewName The singel view name
*
* @return void
*
*/
protected function setUniqueNameKeeper(&$field, &$typeName, &$name, $viewName)
{
// setup a default field
if (ComponentbuilderHelper::checkArray($field['settings']->properties))
{
foreach ($field['settings']->properties as $property)
{
// reset
$xmlValue = '';
if ($property['name'] === 'name')
{
// if category then name must be catid (only one per view)
if ($typeName === 'category')
{
// only one allowed
return;
}
// if tag is set then enable all tag options for this view (only one per view)
elseif ($typeName === 'tag')
{
// only one allowed
return;
}
// if the field is set as alias it must be called alias
elseif (isset($field['alias']) && $field['alias'])
{
// only one allowed
return;
}
elseif ($typeName === 'spacer')
{
// not needed here
return;
}
else
{
$xmlValue = ComponentbuilderHelper::safeString(ComponentbuilderHelper::getBetween($field['settings']->xml, 'name="', '"'));
}
// use field core name only if not found in xml
if (!ComponentbuilderHelper::checkString($xmlValue))
{
$xmlValue = $name;
}
// make sure the XML name is uniqe, so we can add one field multiple times
return $this->setUniqueNameCounter($xmlValue, $viewName);
}
}
}
}
/**
* Count how many times the same field is used per view
*
* @param string $name The name of the field
* @param string $view The name of the view
*
* @return void
*
*/
protected function setUniqueNameCounter($name, $view)
{
if (!isset($this->uniqueNames[$view]))
{
$this->uniqueNames[$view] = array();
$this->uniqueNames[$view]['counter'] = array();
$this->uniqueNames[$view]['names'] = array();
}
if (!isset($this->uniqueNames[$view]['counter'][$name]))
{
$this->uniqueNames[$view]['counter'][$name] = 1;
return;
}
// count how many times the field is used
$this->uniqueNames[$view]['counter'][$name]++;
return;
}
/**
* Naming each field with an unique name
*
* @param string $name The name of the field
* @param string $view The name of the view
*
* @return string the name
*
*/
protected function uniqueName($name, $view)
{
// only increment if the field name is used multiple times
if (isset($this->uniqueNames[$view]['counter'][$name]) && $this->uniqueNames[$view]['counter'][$name] > 1)
{
$counter = $this->uniqueNames[$view]['counter'][$name];
$uniqueName = ComponentbuilderHelper::safeString($name . '_' . $counter);
while (isset($this->uniqueNames[$view]['names'][$uniqueName]))
{
$counter--;
$uniqueName = ComponentbuilderHelper::safeString($name . '_' . $counter);
}
// set the new name
$this->uniqueNames[$view]['names'][$uniqueName] = $counter;
return $uniqueName;
}
return $name;
}
/**
* set Builders

View File

@ -48,6 +48,9 @@ class Interpretation extends Fields
public $otherWhere = array();
public $DashboardGetCustomData = array();
public $customAdminAdded = array();
protected $hasCatIdRequest = array();
protected $hasIdRequest = array();
/**
* Constructor
@ -1073,15 +1076,27 @@ class Interpretation extends Fields
$xml .= PHP_EOL."\t\t\t".'<![CDATA['.$lang.'_DESC]]>';
$xml .= PHP_EOL."\t\t".'</message>';
$xml .= PHP_EOL."\t".'</layout>';
if (isset($this->hasIdRequest[$view['settings']->code]))
if (isset($this->hasIdRequest[$view['settings']->code]) || isset($this->hasCatIdRequest[$view['settings']->code]))
{
$requestField = str_replace($view['settings']->code.'_request_id', 'id', $this->hasIdRequest[$view['settings']->code]);
$xml .= PHP_EOL."\t".'<!--'.$this->setLine(__LINE__).' Add fields to the request variables for the layout. -->';
$xml .= PHP_EOL."\t".'<fields name="request">';
$xml .= PHP_EOL."\t\t".'<fieldset name="request"';
$xml .= PHP_EOL."\t\t\t".'addfieldpath="/administrator/components/com_'.$this->fileContentStatic['###component###'].'/models/fields">';
$xml .= PHP_EOL."\t\t\t".$requestField;
if (isset($this->hasIdRequest[$view['settings']->code]) && ComponentbuilderHelper::checkArray($this->hasIdRequest[$view['settings']->code]))
{
foreach($this->hasIdRequest[$view['settings']->code] as $requestFieldXML)
{
$xml .= PHP_EOL."\t\t\t".$requestFieldXML;
}
}
if (isset($this->hasCatIdRequest[$view['settings']->code]) && ComponentbuilderHelper::checkArray($this->hasCatIdRequest[$view['settings']->code]))
{
foreach($this->hasCatIdRequest[$view['settings']->code] as $requestFieldXML)
{
$xml .= PHP_EOL."\t\t\t".$requestFieldXML;
}
}
$xml .= PHP_EOL."\t\t".'</fieldset>';
$xml .= PHP_EOL."\t".'</fields>';
}
@ -1469,15 +1484,15 @@ class Interpretation extends Fields
break;
case 5:
// COM_COMPONENTBUILDER_DYNAMIC_GET_CATEGORIES
$string = "";
$string = PHP_EOL."\t\t".$tab."//".$this->setLine(__LINE__)." (TODO) The dynamic category filter is not ready.";
break;
case 6:
// COM_COMPONENTBUILDER_DYNAMIC_GET_TAGS
$string = "";
$string = PHP_EOL."\t\t".$tab."//".$this->setLine(__LINE__)." (TODO) The dynamic tags filter is not ready.";
break;
case 7:
// COM_COMPONENTBUILDER_DYNAMIC_GET_DATE
$string = "";
$string = PHP_EOL."\t\t".$tab."//".$this->setLine(__LINE__)." (TODO) The dynamic date filter is not ready.";
break;
case 8:
// COM_COMPONENTBUILDER_DYNAMIC_GET_FUNCTIONVAR
@ -2728,20 +2743,33 @@ class Interpretation extends Fields
public function setCustomButtons(&$view, $type = 1, $tab = '')
{
if (1 == $type)
{
$viewName = $view['settings']->code;
}
if (2 == $type)
{
$viewName = ComponentbuilderHelper::safeString($view['settings']->name_single);
}
// ensure correct target is set
$TARGET = ComponentbuilderHelper::safeString($this->target,'U');
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER###'] = '';
// set the custom buttons ###CUSTOM_BUTTONS_METHOD###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD###'] = '';
if (1 == $type || 2 == $type)
{
if (1 == $type)
{
$viewName = $view['settings']->code;
}
if (2 == $type)
{
$viewName = ComponentbuilderHelper::safeString($view['settings']->name_single);
}
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER###'] = '';
// set the custom buttons ###CUSTOM_BUTTONS_METHOD###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD###'] = '';
}
elseif (3 == $type)
{
// set the names
$viewName = ComponentbuilderHelper::safeString($view['settings']->name_single);
$viewsName = ComponentbuilderHelper::safeString($view['settings']->name_list);
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER_LIST###
$this->fileContentDynamic[$viewsName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER_LIST###'] = '';
// set the custom buttons ###CUSTOM_BUTTONS_METHOD_LIST###
$this->fileContentDynamic[$viewsName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD_LIST###'] = '';
}
// if site add buttons to view
if ($this->target === 'site')
{
@ -2778,30 +2806,10 @@ class Interpretation extends Fields
// check if custom button should be added
if (isset($view['settings']->add_custom_button) && $view['settings']->add_custom_button == 1)
{
// insure the controller and model strings are added
if (ComponentbuilderHelper::checkString($view['settings']->php_controller) && $view['settings']->php_controller != '//')
{
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER###'] =
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_controller, $this->placeholders);
if ('site' === $this->target)
{
// add the controller for this view
// build the file
$target = array($this->target => $viewName);
$this->buildDynamique($target,'custom_form');
###GET_FORM_CUSTOM###
}
}
if (ComponentbuilderHelper::checkString($view['settings']->php_model) && $view['settings']->php_model != '//')
{
// set the custom buttons ###CUSTOM_BUTTONS_METHOD###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD###'] =
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_model, $this->placeholders);
}
$buttons = array();
$functionNames = array();
if (isset($view['settings']->custom_buttons) && ComponentbuilderHelper::checkArray($view['settings']->custom_buttons))
{
$buttons = array();
foreach ($view['settings']->custom_buttons as $custom_button)
{
if ($custom_button['target'] != 2 || $this->target === 'site')
@ -2811,17 +2819,82 @@ class Interpretation extends Fields
$keyCode = ComponentbuilderHelper::safeString($custom_button['name']);
$this->langContent[$this->lang][$keyLang] = trim($custom_button['name']);
// add cpanel button TODO does not work well on site with permissions
$buttons[] = "\t".$tab."\tif (\$this->canDo->get('".$viewName.".".$keyCode."'))";
if ($custom_button['target'] == 2)
{
$buttons[] = "\t".$tab."\tif (\$this->user->authorise('".$viewName.".".$keyCode."'))";
}
else
{
$buttons[] = "\t".$tab."\tif (\$this->canDo->get('".$viewName.".".$keyCode."'))";
}
$buttons[] = "\t".$tab."\t{";
$buttons[] = "\t".$tab."\t\t//".$this->setLine(__LINE__)." add ".$custom_button['name']." button.";
$buttons[] = "\t".$tab."\t\tJToolBarHelper::custom('".$viewName.".".$custom_button['method']."', '".$custom_button['icomoon']."', '', '".$keyLang."', false);";
$buttons[] = "\t".$tab."\t}";
}
// load the list button
elseif (3 == $type && ($custom_button['target'] == 2 || $custom_button['target'] == 3))
{
// Load to lang
$keyLang = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($custom_button['name'],'U');
$keyCode = ComponentbuilderHelper::safeString($custom_button['name']);
$this->langContent[$this->lang][$keyLang] = trim($custom_button['name']);
// add cpanel button TODO does not work well on site with permissions
$buttons[] = "\t".$tab."\tif (\$this->user->authorise('".$viewName.".".$keyCode."'))";
$buttons[] = "\t".$tab."\t{";
$buttons[] = "\t".$tab."\t\t//".$this->setLine(__LINE__)." add ".$custom_button['name']." button.";
$buttons[] = "\t".$tab."\t\tJToolBarHelper::custom('".$viewsName.".".$custom_button['method']."', '".$custom_button['icomoon']."', '', '".$keyLang."', false);";
$buttons[] = "\t".$tab."\t}";
}
}
if (ComponentbuilderHelper::checkArray($buttons))
}
// load the model and controller
if (3 == $type)
{
// insure the controller and model strings are added
if (isset($view['settings']->php_controller_list) && ComponentbuilderHelper::checkString($view['settings']->php_controller_list) && $view['settings']->php_controller_list != '//')
{
return PHP_EOL.implode(PHP_EOL,$buttons);
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER###
$this->fileContentDynamic[$viewsName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER_LIST###'] =
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_controller_list, $this->placeholders);
}
// load the model
if (isset($view['settings']->php_model_list) && ComponentbuilderHelper::checkString($view['settings']->php_model_list) && $view['settings']->php_model_list != '//')
{
// set the custom buttons ###CUSTOM_BUTTONS_METHOD###
$this->fileContentDynamic[$viewsName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD_LIST###'] =
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_model_list, $this->placeholders);
}
}
else
{
// insure the controller and model strings are added
if (ComponentbuilderHelper::checkString($view['settings']->php_controller) && $view['settings']->php_controller != '//')
{
// set the custom buttons ###CUSTOM_BUTTONS_CONTROLLER###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_CONTROLLER###'] =
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_controller, $this->placeholders);
if ('site' === $this->target)
{
// add the controller for this view
// build the file
$target = array($this->target => $viewName);
$this->buildDynamique($target,'custom_form');
###GET_FORM_CUSTOM###
}
}
// load the model
if (ComponentbuilderHelper::checkString($view['settings']->php_model) && $view['settings']->php_model != '//')
{
// set the custom buttons ###CUSTOM_BUTTONS_METHOD###
$this->fileContentDynamic[$viewName]['###'.$TARGET.'_CUSTOM_BUTTONS_METHOD###'] =
PHP_EOL.PHP_EOL.$this->setPlaceholders($view['settings']->php_model, $this->placeholders);
}
}
// return buttons if they were build
if (ComponentbuilderHelper::checkArray($buttons))
{
return PHP_EOL.implode(PHP_EOL,$buttons);
}
}
return '';
@ -9157,6 +9230,31 @@ class Interpretation extends Fields
$otherViews = $viewName_list;
$otherView = $viewName_single;
}
// load the category helper details in not already loaded
if (!isset($this->fileContentDynamic['category'.$otherViews]['###view###']))
{
// lets also set the category helper for this view
$target = array('site' => 'category'.$viewName_list);
$this->buildDynamique($target, 'category');
// insure the file gets updated
$this->fileContentDynamic['category'.$otherViews]['###view###'] = $otherView;
$this->fileContentDynamic['category'.$otherViews]['###View###'] = ucfirst($otherView);
$this->fileContentDynamic['category'.$otherViews]['###views###'] = $otherViews;
$this->fileContentDynamic['category'.$otherViews]['###Views###'] = ucfirst($otherViews);
// set script to global helper file
$includeHelper = array();
$includeHelper[] = "\n//".$this->setLine(__LINE__)."Insure this view category file is loaded.";
$includeHelper[] = "\$classname = '".$this->fileContentStatic['###component###'] . ucfirst($viewName_list) . "Categories';";
$includeHelper[] = "if (!class_exists(\$classname))";
$includeHelper[] = "{";
$includeHelper[] = "\t\$path = JPATH_SITE . '/components/com_".$this->fileContentStatic['###component###']."/helpers/category" . $viewName_list . ".php';";
$includeHelper[] = "\tif (is_file(\$path))";
$includeHelper[] = "\t{";
$includeHelper[] = "\t\tinclude_once \$path;";
$includeHelper[] = "\t}";
$includeHelper[] = "}";
$this->fileContentStatic['###CATEGORY_CLASS_TREES###'] .= implode("\n",$includeHelper);
}
// return category view string
if (isset($this->fileContentStatic['###ROUTER_CATEGORY_VIEWS###']) && ComponentbuilderHelper::checkString($this->fileContentStatic['###ROUTER_CATEGORY_VIEWS###']))
{
@ -11807,25 +11905,43 @@ class Interpretation extends Fields
$tabCode = ComponentbuilderHelper::safeString($tab).'_custom_config';
$tabUpper = ComponentbuilderHelper::safeString($tab,'U');
$tabLower = ComponentbuilderHelper::safeString($tab);
// load the regust id setters for menu views
$viewRequest = 'name="'.$tabLower.'_request_id"';
// load the request id setters for menu views
$viewRequest = 'name="'.$tabLower.'_request_id';
foreach($tabFields as $et => $id_field)
{
if(strpos($id_field,$viewRequest) !== false)
{
// set the values needed to insure route is done correclty
$this->hasIdRequest[$tabLower] = $id_field;
$this->setRequestValues($tabLower, $id_field, $viewRequest, 'id', 'hasIdRequest');
unset($tabFields[$et]);
}
elseif (strpos($id_field,'_request_id"') !== false)
elseif (strpos($id_field,'_request_id') !== false)
{
// not loaded to a tab "view" name
$_viewRequest = ComponentbuilderHelper::getBetween($id_field,'name="','_request_id"');
// set the values needed to insure route is done correclty
$this->hasIdRequest[$_viewRequest] = $id_field;
$_viewRequest = ComponentbuilderHelper::getBetween($id_field,'name="','_request_id');
$searchIdKe = 'name="'.$_viewRequest.'_request_id';
$this->setRequestValues($_viewRequest, $id_field, $searchIdKe, 'id', 'hasIdRequest');
unset($tabFields[$et]);
}
}
// load the request catid setters for menu views
$viewRequestC = 'name="'.$tabLower.'_request_catid';
foreach($tabFields as $ci => $catid_field)
{
if(strpos($catid_field,$viewRequestC) !== false)
{
$this->setRequestValues($tabLower, $catid_field, $viewRequestC, 'catid', 'hasCatIdRequest');
unset($tabFields[$ci]);
}
elseif (strpos($catid_field,'_request_catid') !== false)
{
// not loaded to a tab "view" name
$_viewRequestC = ComponentbuilderHelper::getBetween($catid_field,'name="','_request_catid');
$searchCatidKe = 'name="'.$_viewRequestC.'_request_catid';
$this->setRequestValues($_viewRequestC, $catid_field, $searchCatidKe, 'catid', 'hasCatIdRequest');
unset($tabFields[$ci]);
}
}
// load the global menu setters for single fields
$menuSetter = $tabLower.'_menu';
$pageSettings = array();
@ -11856,6 +11972,29 @@ class Interpretation extends Fields
}
}
}
protected function setRequestValues($view, $field, $search, $target, $store)
{
$key = ComponentbuilderHelper::getBetween($field, $search, '"');
if (!ComponentbuilderHelper::checkString($key))
{
// is not having special var
$key = $target;
// update field
$field = str_replace($search . '"', 'name="'. $key . '"', $field);
}
else
{
// update field
$field = str_replace($search . $key . '"', 'name="'. $key . '"', $field);
}
if (!isset($this->{$store}[$view]))
{
$this->{$store}[$view] = array();
}
// set the values needed for view requests to be made
$this->{$store}[$view][$key] = $field;
}
public function setCustomControlConfigFieldsets($lang)
{
@ -13315,30 +13454,8 @@ function vdm_dkim() {
$this->langContent['admin'][$siteDesc] = ' Allows the users in this group to access site '.ComponentbuilderHelper::safeString($siteName,'w').'.';
$this->componentGlobal[$sortKey] = "\t\t".'<action name="site.'.$siteCode.'.access" title="'.$siteTitle.'" description="'.$siteDesc.'" />';
}
// add the custom permissions to use the buttons of this view
/* if (ComponentbuilderHelper::checkArray($site_view['settings']->custom_buttons))
{
foreach ($site_view['settings']->custom_buttons as $custom_buttons)
{
$siteButtonName = $custom_buttons['name'];
$siteButtonCode = ComponentbuilderHelper::safeString($siteButtonName);
$siteButtonTitle = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($siteName.' '.$siteButtonName.' Button Access','U');
$siteButtonDesc = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($siteName.' '.$siteButtonName.' Button Access','U').'_DESC';
$sortButtonKey = ComponentbuilderHelper::safeString($siteButtonTitle);
$this->langContent['admin'][$siteButtonTitle] = $siteName.' '.$siteButtonName.' Button Access';
$this->langContent['admin'][$siteButtonDesc] = ' Allows the users in this group to access the '.ComponentbuilderHelper::safeString($siteButtonName,'w').' button.';
$this->componentGlobal[$sortButtonKey] = "\t\t".'<action name="'.$siteCode.'.'.$siteButtonCode.'" title="'.$siteButtonTitle.'" description="'.$siteButtonDesc.'" />';
}
}
// add menu controll view that has menus options
foreach ($menuControllers as $menuController)
{
// add menu controll view that has menus options
if ($site_view[$menuController])
{
// TODO for CUSTOM MENUS!!!
}
} */
// add the custom permissions to use the buttons of this view
$this->addCustomButtonPermissions($site_view['settings'], $siteName, $siteCode);
}
}
if (isset($this->componentData->admin_views) && ComponentbuilderHelper::checkArray($this->componentData->admin_views))

View File

@ -80,13 +80,13 @@ class Infusion extends Interpretation
if (isset($this->componentData->admin_views) && ComponentbuilderHelper::checkArray($this->componentData->admin_views))
{
// ###COMPONENT###
$this->fileContentStatic['###COMPONENT###'] = ComponentbuilderHelper::safeString($this->componentData->name_code, 'U');
$this->fileContentStatic['###COMPONENT###'] = $this->placeholders['###COMPONENT###'];
// ###Component###
$this->fileContentStatic['###Component###'] = ComponentbuilderHelper::safeString($this->componentData->name_code, 'F');
$this->fileContentStatic['###Component###'] = $this->placeholders['###Component###'];
// ###component###
$this->fileContentStatic['###component###'] = ComponentbuilderHelper::safeString($this->componentData->name_code);
$this->fileContentStatic['###component###'] = $this->placeholders['###component###'];
// ###COMPANYNAME###
$this->fileContentStatic['###COMPANYNAME###'] = trim(JFilterOutput::cleanText($this->componentData->companyname));
@ -132,20 +132,13 @@ class Infusion extends Interpretation
// ###ACCESS_SECTIONS###
$this->fileContentStatic['###ACCESS_SECTIONS###'] = $this->setAccessSections();
// set component place holders
$this->placeholders = array(
'###Component###' => $this->fileContentStatic['###Component###'],
'###component###' => $this->fileContentStatic['###component###'],
'###COMPONENT###' => $this->fileContentStatic['###COMPONENT###'],
'[[[Component]]]' => $this->fileContentStatic['###Component###'],
'[[[component]]]' => $this->fileContentStatic['###component###'],
'[[[COMPONENT]]]' => $this->fileContentStatic['###COMPONENT###']
);
// ###CONFIG_FIELDSETS###
$keepLang = $this->lang;
$this->lang = 'admin';
// start loading the category tree scripts
$this->fileContentStatic['###CATEGORY_CLASS_TREES###'] = '';
// run the field sets for first time
$this->setConfigFieldsets(1);
$this->lang = $keepLang;
@ -216,6 +209,9 @@ class Infusion extends Interpretation
// start dynamic build
foreach ($this->componentData->admin_views as $view)
{
// just to be safe, lets clear the view placeholders
$this->clearFromPlaceHolders('view');
// set the target
$this->target = 'admin';
$this->lang = 'admin';
// set main keys
@ -253,11 +249,11 @@ class Infusion extends Interpretation
// set some place holder for the views
$this->placeholders['###view###'] = $viewName_single;
$this->placeholders['###VIEW###'] = $viewName_u;
$this->placeholders['###View###'] = $viewName_f;
$this->placeholders['###VIEW###'] = $viewName_u;
$this->placeholders['[[[view]]]'] = $viewName_single;
$this->placeholders['[[[VIEW]]]'] = $viewName_u;
$this->placeholders['[[[View]]]'] = $viewName_f;
$this->placeholders['[[[VIEW]]]'] = $viewName_u;
// set license per view if needed
$this->setLockLicensePer($viewName_single, $this->target);
@ -389,11 +385,11 @@ class Infusion extends Interpretation
// set some place holder for the views
$this->placeholders['###views###'] = $viewName_list;
$this->placeholders['###VIEWS###'] = $viewsName_u;
$this->placeholders['###Views###'] = $viewsName_f;
$this->placeholders['###VIEWS###'] = $viewsName_u;
$this->placeholders['[[[views]]]'] = $viewName_list;
$this->placeholders['[[[VIEWS]]]'] = $viewsName_u;
$this->placeholders['[[[Views]]]'] = $viewsName_f;
$this->placeholders['[[[VIEWS]]]'] = $viewsName_u;
// set the export/import option
if ($view['port'])
@ -426,6 +422,8 @@ class Infusion extends Interpretation
// ###CHECKINCALL### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###CHECKINCALL###'] = '';
}
// ###ADMIN_CUSTOM_BUTTONS_LIST###
$this->fileContentDynamic[$viewName_list]['###ADMIN_CUSTOM_BUTTONS_LIST###'] = $this->setCustomButtons($view, 3, "\t");
// ###GET_ITEMS_METHOD_STRING_FIX### <<<DYNAMIC>>>
$this->fileContentDynamic[$viewName_list]['###GET_ITEMS_METHOD_STRING_FIX###'] = $this->setGetItemsMethodStringFix($viewName_single,$this->fileContentStatic['###Component###']);

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage componentbuilder.php
@ -798,13 +798,18 @@ abstract class ComponentbuilderHelper
if (self::checkArray($where))
{
// prep main <-- why? well if $main='' is empty then $table can be categories or users
if (self::checkString($main))
{
$main = '_'.ltrim($main, '_');
}
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query->select($db->quoteName(array($what)));
$query->from($db->quoteName('#__'.$main.'_'.$table));
$query->from($db->quoteName('#_'.$main.'_'.$table));
$query->where($db->quoteName($whereString) . ' '.$operator.' (' . implode(',',$where) . ')');
$db->setQuery($query);
$db->execute();
@ -1333,13 +1338,30 @@ abstract class ComponentbuilderHelper
return $string;
}
public static function safeString($string, $type = 'L', $spacer = '_')
public static function safeString($string, $type = 'L', $spacer = '_', $replaceNumbers = true)
{
// remove all numbers and replace with english text version (works well only up to millions)
$string = self::replaceNumbers($string);
if ($replaceNumbers === true)
{
// remove all numbers and replace with english text version (works well only up to millions)
$string = self::replaceNumbers($string);
}
// 0nly continue if we have a string
if (self::checkString($string))
{
// create file name without the extention that is safe
if ($type === 'filename')
{
// make sure VDM is not in the string
$string = str_replace('VDM', 'vDm', $string);
// Remove anything which isn't a word, whitespace, number
// or any of the following caracters -_()
// If you don't need to handle multi-byte characters
// you can use preg_replace rather than mb_ereg_replace
// Thanks @Łukasz Rysiak!
$string = mb_ereg_replace("([^\w\s\d\-_\(\)])", '', $string);
// http://stackoverflow.com/a/2021729/1429677
return preg_replace('/\s+/', ' ', $string);
}
// remove all other characters
$string = trim($string);
$string = preg_replace('/'.$spacer.'+/', ' ', $string);

View File

@ -69,12 +69,12 @@ class Mapping
* The datatypes and it linked field types (basic)
* (TODO) We may need to set this dynamicly
*/
protected $dataTypes = array( 'CHAR' => 'Text', 'VARCHAR' => 'Text',
'TEXT' => 'Textarea', 'MEDIUMTEXT' => 'Textarea',
'LONGTEXT' => 'Textarea', 'DATE' => 'Text', 'TIME' => 'Text',
'DATETIME' => 'Calendar', 'INT' => 'Text', 'TINYINT' => 'Text',
'BIGINT' => 'Text', 'FLOAT' => 'Text', 'DECIMAL' => 'Text',
'DOUBLE' => 'Text');
protected $dataTypes = array( 'VARCHAR' => 'Text', 'CHAR' => 'Text',
'MEDIUMTEXT' => 'Textarea', 'LONGTEXT' => 'Textarea',
'TEXT' => 'Textarea', 'DATETIME' => 'Calendar',
'DATE' => 'Text', 'TIME' => 'Text', 'TINYINT' => 'Text',
'BIGINT' => 'Text', 'INT' => 'Text', 'FLOAT' => 'Text',
'DECIMAL' => 'Text', 'DOUBLE' => 'Text');
/**
* The datasize identifiers

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage headercheck.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage batch_.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage indenter.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage js.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage minify.php

View File

@ -487,6 +487,10 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER="Php Controller"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_HINT="// PHP methods for the controller that the button will target"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LABEL="PHP (controller methods)"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST="Php Controller List"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST_HINT="// PHP methods for the controller that the button will target"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_CONTROLLER_LIST_LABEL="PHP <b>List view</b> (controller methods)"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_DOCUMENT="Php Document"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_DOCUMENT_DESCRIPTION="PHP script to the document method."
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_DOCUMENT_HINT="// add custom PHP script to the document method."
@ -527,6 +531,10 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL="Php Model"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_HINT="// PHP methods for the model that the controller will use"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LABEL="PHP (model methods)"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST="Php Model List"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST_HINT="// PHP methods for the model that the controller will use"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_MODEL_LIST_LABEL="PHP <b>List view</b> (model methods)"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_POSTSAVEHOOK="Php Postsavehook"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_POSTSAVEHOOK_DESCRIPTION="Add your PHP here! [Do not add the php tags]"
COM_COMPONENTBUILDER_ADMIN_VIEW_PHP_POSTSAVEHOOK_HINT="// PHP Here that should run in the postSaveHook Method (object) $model is the data model object and (array) $validData is the validated data."
@ -683,11 +691,13 @@ COM_COMPONENTBUILDER_ADMIN_VIEW_YOUTUBE="Youtube"
COM_COMPONENTBUILDER_ADMIN_VIEW_ZOOM_IN="Zoom In"
COM_COMPONENTBUILDER_ADMIN_VIEW_ZOOM_OUT="Zoom Out"
COM_COMPONENTBUILDER_ALL_IS_GOOD_PLEASE_CHECK_AGAIN_LATTER="All is good, please check again latter."
COM_COMPONENTBUILDER_ALL_IS_GOOD_THERE_IN_NO_NOTICE_AT_THIS_TIME="All is good, there in no notice at this time."
COM_COMPONENTBUILDER_AUTHOR="Author"
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_BACK="Back"
COM_COMPONENTBUILDER_CLEAR_TMP="Clear tmp"
COM_COMPONENTBUILDER_COMPANY="Company"
COM_COMPONENTBUILDER_COMPILER="Compiler"
COM_COMPONENTBUILDER_COMPILER_ACCESS="Compiler Access"
COM_COMPONENTBUILDER_COMPILER_ACCESS_DESC=" Allows the users in this group to access compiler."
@ -698,7 +708,9 @@ COM_COMPONENTBUILDER_COMPILER_DASHBOARD_LIST_DESC="Allows the users in this grou
COM_COMPONENTBUILDER_COMPILER_DESC="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_COMPILE_COMPONENT="Compile Component"
COM_COMPONENTBUILDER_COMPONENTS="Components"
COM_COMPONENTBUILDER_COMPONENT_GLOBAL_SETTINGS="Component Global Settings"
COM_COMPONENTBUILDER_CONFIG_ALMOST_FLAT_LOAD="Almost Flat"
COM_COMPONENTBUILDER_CONFIG_AUTHOR="Author Info"
COM_COMPONENTBUILDER_CONFIG_AUTHOR_EMAIL_DESC="The email address of the author of this component."
@ -782,6 +794,7 @@ COM_COMPONENTBUILDER_CONFIG_UIKIT_STYLE_LABEL="css Style"
COM_COMPONENTBUILDER_CONFIG_YES="Yes"
COM_COMPONENTBUILDER_CONTRIBUTOR="Contributor"
COM_COMPONENTBUILDER_CONTRIBUTORS="Contributors"
COM_COMPONENTBUILDER_COPYRIGHT="Copyright"
COM_COMPONENTBUILDER_CREATE_NEW_S="Create New %s"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW="Custom Admin View"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEWS="Custom Admin Views"
@ -1040,7 +1053,7 @@ COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB="New Tab"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEW_TAB_TWO="New Tab 2"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NEXT="Next"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NO="No"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_('Text'); ?&gt;</code>"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_(&apos;Text&apos;); ?&gt;</code>"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
COM_COMPONENTBUILDER_CUSTOM_ADMIN_VIEW_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
@ -1261,25 +1274,109 @@ COM_COMPONENTBUILDER_CUSTOM_CODE_MODIFIED_DATE_LABEL="Modified Date"
COM_COMPONENTBUILDER_CUSTOM_CODE_NEW="A New Custom Code"
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_JCB_PLACEHOLDER_DESCRIPTION="<span id='jcb-placeholder'><code>[save to see placeholder]</code></span><br />You can also pass values to this code like this: <span id='jcb-placeholder-arg'><code>[save to see placeholder trick]</code></span> <br />Those values will be replace placeholders called args. These placeholders are zero based and should look like this: [[[arg0]]], [[[arge1]]] ... as many as you like. If you use 5 args in your code, you must always pass 5 values, since they are zero based your fifth arg will look like this [[[arg4]]]<br />Please note that you can not use this placeholder in other custom code views, but in all other custom code areas in JCB found in other views like the admin, site and custom admin views.<br />Another important note, all code with args will not be reversed updated from the changes in the editor out side of JCB at this time, since that will remove all the arg placeholders this means you will only be able to update the code here in the JCB UI. <br />This note will change once we have resolved these limitations."
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_JCB_PLACEHOLDER_LABEL="You can use this code in any JCB code area, simply add this PlaceHolder."
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_DESCRIPTION="<div class='span6'><h1>Understand how the placeholders work</h1><h2>Comment Type PHP/JS</h2>
<p>New Insert Code = <code>/***[INSERT&lt;&gt;$$$$]***/</code> &lt;YOUR CODE HERE&gt; <code>/***[/INSERT&lt;&gt;$$$$]***/</code>
<br />New Replace Codec= <code>/***[REPLACE&lt;&gt;$$$$]***/</code> &lt;YOUR CODE HERE&gt; <code>/***[/REPLACE&lt;&gt;$$$$]***/</code></p>
<h3>When JCB adds it back</h3>
<p>JCB Add Inserted Code = <code>/***[INSERTED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> &lt;YOUR CODE HERE&gt; <code>/***[/INSERTED$$$$]***/</code>
<br />JCB Add Replaced Code = <code>/***[REPLACED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> &lt;YOUR CODE HERE&gt; <code>/***[/REPLACED$$$$]***/</code></p>
<h3>To changing existing custom code</h3>
<p>Update Inserted Code = <code>/***[INSERTED&lt;&gt;$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> &lt;YOUR CODE HERE&gt; <code>/***[/INSERTED&lt;&gt;$$$$]***/</code>
<br />Update Replaced Code = <code>/***[REPLACED&lt;&gt;$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code> &lt;YOUR CODE HERE&gt; <code>/***[/REPLACED&lt;&gt;$$$$]***/</code></p>
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_DESCRIPTION="<div class='span6'>
<h1>Understand how the placeholders work in (IDE)</h1>
<div id='phpjs-comment-info'>
<h2>Comment Type PHP/JS</h2>
<h3>How You Can Add New Code in the IDE</h3>
<table>
<legend>Add New Insert Code</legend>
<tr><td><code>/***[INSERT&lt;&gt;$$$$]***/</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>/***[/INSERT&lt;&gt;$$$$]***/</code></td><td>&nbsp;</td></tr>
</table>
<table>
<legend>Add New Replace Code</legend>
<tr><td><code>/***[REPLACE&lt;&gt;$$$$]***/</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>/***[/REPLACE&lt;&gt;$$$$]***/</code></td><td>&nbsp;</td></tr>
</table>
<h3>When JCB Adds it Back</h3>
<table>
<legend>JCB Add Inserted Code</legend>
<tr><td><code>/***[INSERTED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>/***[/INSERTED$$$$]***/</code></td><td>&nbsp;</td></tr>
</table>
<table>
<legend>JCB Add Replaced Code</legend>
<tr><td><code>/***[REPLACED$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>/***[/REPLACED$$$$]***/</code></td><td>&nbsp;</td></tr>
</table>
<h3>When You Want to Changing Existing Custom Code in the IDE</h3>
<table>
<legend>Update Inserted Code</legend>
<tr><td><code>/***[INSERTED&lt;&gt;$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>/***[/INSERTED&lt;&gt;$$$$]***/</code></td><td>&nbsp;</td></tr>
</table>
<table>
<legend>Update Replaced Code</legend>
<tr><td><code>/***[REPLACED&lt;&gt;$$$$]***//*<span class='placeholder-key-id'>x</span>*/</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>/***[/REPLACED&lt;&gt;$$$$]***/</code></td><td>&nbsp;</td></tr>
</table>
</div>
<div id='html-comment-info'>
<h2>Comment Type HTML</h2>
<p>New Insert Code = <code>&lt;!--[INSERT&lt;&gt;$$$$]--&gt;</code> &lt;YOUR CODE HERE&gt; <code>&lt;!--[/INSERT&lt;&gt;$$$$]--&gt;</code>
<br />New Replace Code = <code>&lt;!--[REPLACE&lt;&gt;$$$$]--&gt;</code> &lt;YOUR CODE HERE&gt; <code>&lt;!--[/REPLACE&lt;&gt;$$$$]--&gt;</code></p>
<h3>When JCB adds it back</h3>
<p>JCB Add Inserted Code = <code>&lt;!--[INSERTED$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code> &lt;YOUR CODE HERE&gt; <code>&lt;!--[/INSERTED$$$$]--&gt;</code>
<br />JCB Add Replaced Code = <code>&lt;!--[REPLACED$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code> &lt;YOUR CODE HERE&gt; <code>&lt;!--[/REPLACED$$$$]--&gt;</code></p>
<h3>To changing existing custom code</h3>
<p>Update Inserted Code = <code>&lt;!--[INSERTED&lt;&gt;$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code> &lt;YOUR CODE HERE&gt; <code>&lt;!--[/INSERTED&lt;&gt;$$$$]--&gt;</code>
<br />Update Replaced Code = <code>&lt;!--[REPLACED&lt;&gt;$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code> &lt;YOUR CODE HERE&gt; <code>&lt;!--[/REPLACED&lt;&gt;$$$$]--&gt;</code></p>
<p><span class='placeholder-key-id'>x</span> is the ID of the code in the system don&apos;t change it when you edit the code in your IDE outside of JCB!</p></div><div class='span6' id='usedin'></div>"
<h3>How You Can Add New Code in the IDE</h3>
<table>
<legend>Add New Insert Code</legend>
<tr><td><code>&lt;!--[INSERT&lt;&gt;$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>&lt;!--[/INSERT&lt;&gt;$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
</table>
<table>
<legend>Add New Replace Code</legend>
<tr><td><code>&lt;!--[REPLACE&lt;&gt;$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>&lt;!--[/REPLACE&lt;&gt;$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
</table>
<h3>When JCB Adds it Back</h3>
<table>
<legend>JCB Add Inserted Code</legend>
<tr><td><code>&lt;!--[INSERTED$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>&lt;!--[/INSERTED$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
</table>
<table>
<legend>JCB Add Replaced Code</legend>
<tr><td><code>&lt;!--[REPLACED$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>&lt;!--[/REPLACED$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
</table>
<h3>When You Want to Changing Existing Custom Code in the IDE</h3>
<table>
<legend>Update Inserted Code</legend>
<tr><td><code>&lt;!--[INSERTED&lt;&gt;$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>&lt;!--[/INSERTED&lt;&gt;$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
</table>
<table>
<legend>Update Replaced Code</legend>
<tr><td><code>&lt;!--[REPLACED&lt;&gt;$$$$]--&gt;&lt;!--<span class='placeholder-key-id'>x</span>--&gt;</code></td><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td><td>&lt;YOUR CODE HERE&gt;</td></tr>
<tr><td><code>&lt;!--[/REPLACED&lt;&gt;$$$$]--&gt;</code></td><td>&nbsp;</td></tr>
</table>
</div>
<p><b><span class='placeholder-key-id'>x</span> is the ID of the code in the system don&apos;t change it when you edit the code in your IDE outside of JCB!</b></p>
</div>
<div class='span6' id='usedin' style='display: none;'>
<h1>USED IN</h1>
<div id='before-usedin'>Soon as enough data is available we will display all the areas where this code is used.</div>
<div id='usedin-a' style='display: none;'><h2>Components</h2><div id='area-a'></div></div>
<div id='usedin-b' style='display:none;'><h2>Admin Views</h2><div id='area-b'></div></div>
<div id='usedin-c' style='display:none;'><h2>Custom Admin Views</h2><div id='area-c'></div></div>
<div id='usedin-d' style='display:none;'><h2>Site Views</h2><div id='area-d'></div></div>
<div id='usedin-e' style='display:none;'><h2>Fields</h2><div id='area-e'></div></div>
<div id='usedin-f' style='display:none;'><h2>Dynamic Gets</h2><div id='area-f'></div></div>
<div id='usedin-g' style='display:none;'><h2>Templates</h2><div id='area-g'></div></div>
<div id='usedin-h' style='display:none;'><h2>Layouts</h2><div id='area-h'></div></div>
<div id='loading-usedin' style='display: none;'><h2>Scanning Database<span class='loading-dots'>..</span></h2></div>
<div id='note-usedin-found' style='display: none;'><small>You can edit the above areas where this code is used.</small></div>
<div id='note-usedin-not' style='display: none;'><small>This code is not used in any area of the JCB custom code blocks at this time.</small></div>
</div>"
COM_COMPONENTBUILDER_CUSTOM_CODE_NOTE_PLACEHOLDERS_EXPLAINED_LABEL="Information Area."
COM_COMPONENTBUILDER_CUSTOM_CODE_NOT_REQUIRED="Not Required"
COM_COMPONENTBUILDER_CUSTOM_CODE_ORDERING_LABEL="Ordering"
@ -1636,6 +1733,7 @@ COM_COMPONENTBUILDER_DYNAMIC_GET_YES="Yes"
COM_COMPONENTBUILDER_DYNAMIC_GET_YY="yy"
COM_COMPONENTBUILDER_DYNAMIC_GET_Z="z"
COM_COMPONENTBUILDER_DYNAMIC_GET_ZZ="zz"
COM_COMPONENTBUILDER_EDIT="Edit"
COM_COMPONENTBUILDER_EDIT_CREATED_BY="Edit Created By"
COM_COMPONENTBUILDER_EDIT_CREATED_BY_DESC=" Allows users in this group to edit created by."
COM_COMPONENTBUILDER_EDIT_CREATED_DATE="Edit Created Date"
@ -1643,6 +1741,7 @@ COM_COMPONENTBUILDER_EDIT_CREATED_DATE_DESC=" Allows users in this group to edit
COM_COMPONENTBUILDER_EDIT_S="Edit %s"
COM_COMPONENTBUILDER_EDIT_VERSIONS="Edit Version"
COM_COMPONENTBUILDER_EDIT_VERSIONS_DESC=" Allows users in this group to edit versions."
COM_COMPONENTBUILDER_EMAIL="Email"
COM_COMPONENTBUILDER_EXPORT_DATA="Export Data"
COM_COMPONENTBUILDER_EXPORT_DATA_DESC=" Allows users in this group to export data."
COM_COMPONENTBUILDER_EXPORT_FAILED="Export Failed"
@ -2050,6 +2149,7 @@ COM_COMPONENTBUILDER_HELP_DOCUMENT_URL_LABEL="URL"
COM_COMPONENTBUILDER_HELP_DOCUMENT_VERSION_DESC="A count of the number of times this Help Document has been revised."
COM_COMPONENTBUILDER_HELP_DOCUMENT_VERSION_LABEL="Revision"
COM_COMPONENTBUILDER_HELP_MANAGER="Help"
COM_COMPONENTBUILDER_HI="Hi"
COM_COMPONENTBUILDER_IMPORT_CONTINUE="Continue"
COM_COMPONENTBUILDER_IMPORT_DATA="Import Data"
COM_COMPONENTBUILDER_IMPORT_DATA_DESC=" Allows users in this group to import data."
@ -2363,9 +2463,9 @@ 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"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_LABEL="Email"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_DESCRIPTION="Enter Author Email"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_HINT="Author Email Here"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_EMAIL_LABEL="Author 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"
@ -2792,7 +2892,7 @@ 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"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_LABEL="Website"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WEBSITE_LABEL="Author Website"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY="Whmcs Key"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_DESCRIPTION="Add your WHMCS Secret Key here that is needed for this license"
COM_COMPONENTBUILDER_JOOMLA_COMPONENT_WHMCS_KEY_HINT="Secret Key"
@ -2895,7 +2995,7 @@ COM_COMPONENTBUILDER_LAYOUT_NAME_HINT="Name Here"
COM_COMPONENTBUILDER_LAYOUT_NAME_LABEL="Name"
COM_COMPONENTBUILDER_LAYOUT_NEW="A New Layout"
COM_COMPONENTBUILDER_LAYOUT_NO="No"
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_('Text'); ?&gt;</code>"
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_(&apos;Text&apos;); ?&gt;</code>"
COM_COMPONENTBUILDER_LAYOUT_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
COM_COMPONENTBUILDER_LAYOUT_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
COM_COMPONENTBUILDER_LAYOUT_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
@ -2917,10 +3017,16 @@ COM_COMPONENTBUILDER_LAYOUT_YES="Yes"
COM_COMPONENTBUILDER_LICENSE="License"
COM_COMPONENTBUILDER_NEW="New"
COM_COMPONENTBUILDER_NEW_ISSUE="New Issue"
COM_COMPONENTBUILDER_NEW_NOTICE="New Notice"
COM_COMPONENTBUILDER_NO="No"
COM_COMPONENTBUILDER_NO_ACCESS_GRANTED="No Access Granted!"
COM_COMPONENTBUILDER_OPENED_BY="opened by"
COM_COMPONENTBUILDER_PLEASE_ADD_FILES_TO_S="Please add files to (%s)"
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_READY_TO_COMPILE_A_COMPONENT="Ready to compile a component"
COM_COMPONENTBUILDER_RESPOND_TO_THIS_ISSUE_ON_GITHUB="Respond to this issue on Github"
COM_COMPONENTBUILDER_REVIEW_THIS_ISSUE_ON_GITHUB="Review this issue on Github"
COM_COMPONENTBUILDER_SAVE_SUCCESS="Great! Item successfully saved."
@ -3211,8 +3317,9 @@ COM_COMPONENTBUILDER_SITE_VIEW_NEW_TAB_TWO="New Tab 2"
COM_COMPONENTBUILDER_SITE_VIEW_NEXT="Next"
COM_COMPONENTBUILDER_SITE_VIEW_NO="No"
COM_COMPONENTBUILDER_SITE_VIEW_NONE="None"
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_('Text'); ?&gt;</code>"
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_(&apos;Text&apos;); ?&gt;</code>"
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_CUSTOM_TOOLBAR_PLACEHOLDER_DESCRIPTION="Use this placeholder in the body <code>[[[SITE_TOOLBAR]]]</code> to add the custom position of the toolbar."
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
COM_COMPONENTBUILDER_SITE_VIEW_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
COM_COMPONENTBUILDER_SITE_VIEW_NOTIFICATION="Notification"
@ -3476,6 +3583,7 @@ COM_COMPONENTBUILDER_SUBMENU_LAYOUTS="Layouts"
COM_COMPONENTBUILDER_SUBMENU_SITE_VIEWS="Site Views"
COM_COMPONENTBUILDER_SUBMENU_SNIPPETS="Snippets"
COM_COMPONENTBUILDER_SUBMENU_TEMPLATES="Templates"
COM_COMPONENTBUILDER_S_PLEASE_WAIT_THE_COMPONENT_IS_BEING_COMPILED="%s, please wait! The component is being compiled"
COM_COMPONENTBUILDER_TEMPLATE="Template"
COM_COMPONENTBUILDER_TEMPLATES="Templates"
COM_COMPONENTBUILDER_TEMPLATES_ACCESS="Templates Access"
@ -3557,7 +3665,7 @@ COM_COMPONENTBUILDER_TEMPLATE_NAME_HINT="Name Here"
COM_COMPONENTBUILDER_TEMPLATE_NAME_LABEL="Name"
COM_COMPONENTBUILDER_TEMPLATE_NEW="A New Template"
COM_COMPONENTBUILDER_TEMPLATE_NO="No"
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_('Text'); ?&gt;</code>"
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_DESCRIPTION="<code>&lt;?php echo JText::_(&apos;Text&apos;); ?&gt;</code>"
COM_COMPONENTBUILDER_TEMPLATE_NOTE_ADD_LANGUAGE_STRING_LABEL="Add Language String"
COM_COMPONENTBUILDER_TEMPLATE_NOTE_SNIPPET_USAGE_LABEL="Snippet Usage"
COM_COMPONENTBUILDER_TEMPLATE_NOTE_UIKIT_SNIPPET_LABEL="Snippet Details"
@ -3584,8 +3692,10 @@ COM_COMPONENTBUILDER_THE_README_IS_LOADING="The readme is loading"
COM_COMPONENTBUILDER_THE_WIKI_IS_LOADING="The wiki is loading"
COM_COMPONENTBUILDER_USE_BATCH="Use Batch"
COM_COMPONENTBUILDER_USE_BATCH_DESC=" Allows users in this group to use batch copy/update method."
COM_COMPONENTBUILDER_VDM_NOTICE_BOARD="VDM Notice Board"
COM_COMPONENTBUILDER_VERSION="Version"
COM_COMPONENTBUILDER_VIEW_MORE_ISSUES_ON_GITHUB="View more issues on Github"
COM_COMPONENTBUILDER_WEBSITE="Website"
COM_COMPONENTBUILDER_YES="Yes"
COM_COMPONENTBUILDER_YOU_MUST_SELECT_A_COMPONENT="You must select a component!"
COM_COMPONENTBUILDER__SELECT_COMPONENT_="- Select Component -"

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage css_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage custom_buttons_fullwidth.php
@ -31,7 +31,9 @@ $form = $displayData->getForm();
$fields = $displayData->get('fields') ?: array(
'php_controller',
'php_model'
'php_controller_list',
'php_model',
'php_model_list'
);
?>

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage custom_buttons_left.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage custom_import_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 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->vxtfields;
$items = $displayData->vxvfields;
$user = JFactory::getUser();
$id = $displayData->item->id;
$edit = "index.php?option=com_componentbuilder&view=fields&task=field.edit";

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage javascript_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 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->vxulinked_components;
$items = $displayData->vxwlinked_components;
$user = JFactory::getUser();
$id = $displayData->item->id;
$edit = "index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit";

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage mysql_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage mysql_left.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage php_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage publishing.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage publlshing.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage settings_above.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage settings_left.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage settings_right.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage settings_under.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage batchselection.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage custom_buttons_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage custom_buttons_left.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage custom_script_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_above.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_fullwidth.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_left.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_right.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_rightside.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_under.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 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->vyelinked_components;
$items = $displayData->vyglinked_components;
$user = JFactory::getUser();
$id = $displayData->item->id;
$edit = "index.php?option=com_componentbuilder&view=joomla_components&task=joomla_component.edit";

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage publishing.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage publlshing.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_above.php

View File

@ -10,8 +10,8 @@
|_|
/-------------------------------------------------------------------------------------------------------------------------------/
@version 2.3.5
@build 16th February, 2017
@version 2.3.7
@build 12th March, 2017
@created 30th April, 2015
@package Component Builder
@subpackage details_fullwidth.php

Some files were not shown because too many files have changed in this diff Show More