Adds new helper classes.

This commit is contained in:
Llewellyn van der Merwe 2022-04-04 17:35:08 +02:00
parent ec827b7369
commit c5be4ff5fa
Signed by untrusted user: Llewellyn
GPG Key ID: EFC0C720A240551C
15 changed files with 320 additions and 355 deletions

View File

@ -12,7 +12,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.12.15) 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.12.16) with **ALL** its features and **ALL** concepts totally open-source and free!
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -143,11 +143,11 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 12th March, 2022 + *Last Build*: 4th April, 2022
+ *Version*: 2.12.15 + *Version*: 2.12.16
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **286346** + *Line count*: **286290**
+ *Field count*: **1580** + *Field count*: **1580**
+ *File count*: **1850** + *File count*: **1850**
+ *Folder count*: **260** + *Folder count*: **260**

View File

@ -12,7 +12,7 @@ The Component Builder for [Joomla](https://extensions.joomla.org/extension/compo
Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have! Whether you're a seasoned [Joomla](https://extensions.joomla.org/extension/component-builder/) developer, or have just started, Component Builder will save you lots of time and money. A real must have!
You can install it quite easily and with no limitations. On [github](https://github.com/vdm-io/Joomla-Component-Builder/releases) is the latest release (2.12.15) 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.12.16) with **ALL** its features and **ALL** concepts totally open-source and free!
> Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45) > Watch Quick Build of a Hello World component in [JCB on Youtube](https://www.youtube.com/watch?v=IQfsLYIeblk&list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE&index=45)
@ -143,11 +143,11 @@ TODO
+ *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com) + *Author*: [Llewellyn van der Merwe](mailto:llewellyn@joomlacomponentbuilder.com)
+ *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder) + *Name*: [Component Builder](https://github.com/vdm-io/Joomla-Component-Builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 12th March, 2022 + *Last Build*: 4th April, 2022
+ *Version*: 2.12.15 + *Version*: 2.12.16
+ *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved. + *Copyright*: Copyright (C) 2015 Vast Development Method. All rights reserved.
+ *License*: GNU General Public License version 2 or later; see LICENSE.txt + *License*: GNU General Public License version 2 or later; see LICENSE.txt
+ *Line count*: **286346** + *Line count*: **286290**
+ *Field count*: **1580** + *Field count*: **1580**
+ *File count*: **1850** + *File count*: **1850**
+ *Folder count*: **260** + *Folder count*: **260**

View File

@ -18,6 +18,7 @@ use Joomla\CMS\Filesystem\Folder;
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\FileHelper;
use VDM\Joomla\Utilities\MathHelper; use VDM\Joomla\Utilities\MathHelper;
// Use the component builder autoloader // Use the component builder autoloader
@ -1103,7 +1104,7 @@ class Compiler extends Infusion
&$this->componentFolderName, &$this->componentData) &$this->componentFolderName, &$this->componentData)
); );
//create the zip file //create the zip file
if (ComponentbuilderHelper::zip( if (FileHelper::zip(
$this->componentPath, $this->filepath['component'] $this->componentPath, $this->filepath['component']
)) ))
{ {
@ -1195,7 +1196,7 @@ class Compiler extends Infusion
&$this->tempPath, &$module->zip_name, &$module) &$this->tempPath, &$module->zip_name, &$module)
); );
//create the zip file //create the zip file
if (ComponentbuilderHelper::zip( if (FileHelper::zip(
$module->folder_path, $module->folder_path,
$this->filepath['modules'][$module->id] $this->filepath['modules'][$module->id]
)) ))
@ -1289,7 +1290,7 @@ class Compiler extends Infusion
&$this->tempPath, &$plugin->zip_name, &$plugin) &$this->tempPath, &$plugin->zip_name, &$plugin)
); );
//create the zip file //create the zip file
if (ComponentbuilderHelper::zip( if (FileHelper::zip(
$plugin->folder_path, $plugin->folder_path,
$this->filepath['plugins'][$plugin->id] $this->filepath['plugins'][$plugin->id]
)) ))

View File

@ -20,6 +20,7 @@ use VDM\Joomla\Utilities\JsonHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\GetHelper; use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Utilities\FileHelper;
use VDM\Joomla\Utilities\String\FieldHelper; use VDM\Joomla\Utilities\String\FieldHelper;
use VDM\Joomla\Utilities\String\TypeHelper; use VDM\Joomla\Utilities\String\TypeHelper;
use VDM\Joomla\Utilities\String\ClassfunctionHelper; use VDM\Joomla\Utilities\String\ClassfunctionHelper;
@ -182,6 +183,13 @@ class Get
*/ */
public $componentData; public $componentData;
/**
* The Switch to add Powers data
*
* @var boolean
*/
protected $addPower;
/** /**
* The Powers data * The Powers data
* *
@ -1044,6 +1052,10 @@ class Get
) == 1) ? true : false; ) == 1) ? true : false;
$this->debugLinenr = ((int) $config['debuglinenr'] == 0) ? false $this->debugLinenr = ((int) $config['debuglinenr'] == 0) ? false
: (((int) $config['debuglinenr'] == 1) ? true : $global); : (((int) $config['debuglinenr'] == 1) ? true : $global);
// set if powers should be added to component (default is true)
$global = true;
$this->addPower = (isset($config['powers']) && (int) $config['powers'] == 0)
? false : ((isset($config['powers']) && (int) $config['powers'] == 1) ? true : $global);
// set the current user // set the current user
$this->user = JFactory::getUser(); $this->user = JFactory::getUser();
// Get a db connection. // Get a db connection.
@ -2853,14 +2865,14 @@ class Get
{ {
// load the field details // load the field details
$required $required
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$fieldValues['settings']->xml, $fieldValues['settings']->xml,
'required="', '"' 'required="', '"'
); );
$required = ($required === 'true' $required = ($required === 'true'
|| $required === '1') ? 'yes' : 'no'; || $required === '1') ? 'yes' : 'no';
$filter $filter
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$fieldValues['settings']->xml, $fieldValues['settings']->xml,
'filter="', '"' 'filter="', '"'
); );
@ -2909,7 +2921,7 @@ class Get
if (!ComponentbuilderHelper::fieldCheck($type)) if (!ComponentbuilderHelper::fieldCheck($type))
{ {
$conditionValue['match_extends'] $conditionValue['match_extends']
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$fieldValue['settings']->xml, $fieldValue['settings']->xml,
'extends="', '"' 'extends="', '"'
); );
@ -3850,7 +3862,7 @@ class Get
$field->xml = $this->setDynamicValues(json_decode($field->xml)); $field->xml = $this->setDynamicValues(json_decode($field->xml));
// check if we have validate (validation rule set) // check if we have validate (validation rule set)
$validationRule = ComponentbuilderHelper::getBetween( $validationRule = GetHelper::between(
$field->xml, 'validate="', '"' $field->xml, 'validate="', '"'
); );
if (StringHelper::check($validationRule)) if (StringHelper::check($validationRule))
@ -4403,7 +4415,7 @@ class Get
|| strtolower($type_name) === 'customuser') || strtolower($type_name) === 'customuser')
{ {
$type = TypeHelper::safe( $type = TypeHelper::safe(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'type="', '"' $field['settings']->xml, 'type="', '"'
) )
); );
@ -4430,7 +4442,7 @@ class Get
else else
{ {
$type = TypeHelper::safe( $type = TypeHelper::safe(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'type="', '"' $field['settings']->xml, 'type="', '"'
) )
); );
@ -4502,7 +4514,7 @@ class Get
if ($type_name === 'category') if ($type_name === 'category')
{ {
// quick check if this is a category linked to view page // quick check if this is a category linked to view page
$requeSt_id = ComponentbuilderHelper::getBetween( $requeSt_id = GetHelper::between(
$field['settings']->xml, 'name="', '"' $field['settings']->xml, 'name="', '"'
); );
if (strpos($requeSt_id, '_request_id') !== false if (strpos($requeSt_id, '_request_id') !== false
@ -4522,17 +4534,17 @@ class Get
{ {
// check if we should use another Text Name as this views name // check if we should use another Text Name as this views name
$otherName = $this->setPlaceholders( $otherName = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'othername="', '"' $field['settings']->xml, 'othername="', '"'
), $this->placeholders ), $this->placeholders
); );
$otherViews = $this->setPlaceholders( $otherViews = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'views="', '"' $field['settings']->xml, 'views="', '"'
), $this->placeholders ), $this->placeholders
); );
$otherView = $this->setPlaceholders( $otherView = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'view="', '"' $field['settings']->xml, 'view="', '"'
), $this->placeholders ), $this->placeholders
); );
@ -4575,7 +4587,7 @@ class Get
// get value from xml // get value from xml
$xml = FieldHelper::safe( $xml = FieldHelper::safe(
$this->setPlaceholders( $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'name="', '"' $field['settings']->xml, 'name="', '"'
), $this->placeholders ), $this->placeholders
) )
@ -4880,7 +4892,7 @@ class Get
); );
// get the table name // get the table name
$_searchQuery $_searchQuery
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$customQueryString, '$query->from(', ')' $customQueryString, '$query->from(', ')'
); );
if (StringHelper::check( if (StringHelper::check(
@ -4889,7 +4901,7 @@ class Get
&& strpos($_searchQuery, '#__') !== false) && strpos($_searchQuery, '#__') !== false)
{ {
$_queryName $_queryName
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$_searchQuery, '#__', "'" $_searchQuery, '#__', "'"
); );
if (!StringHelper::check( if (!StringHelper::check(
@ -4897,7 +4909,7 @@ class Get
)) ))
{ {
$_queryName $_queryName
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$_searchQuery, '#__', '"' $_searchQuery, '#__', '"'
); );
} }
@ -5898,10 +5910,10 @@ class Get
if (!ArrayHelper::check($templates)) if (!ArrayHelper::check($templates))
{ {
// set the Template data // set the Template data
$temp1 = ComponentbuilderHelper::getAllBetween( $temp1 = GetHelper::allBetween(
$default, "\$this->loadTemplate('", "')" $default, "\$this->loadTemplate('", "')"
); );
$temp2 = ComponentbuilderHelper::getAllBetween( $temp2 = GetHelper::allBetween(
$default, '$this->loadTemplate("', '")' $default, '$this->loadTemplate("', '")'
); );
if (ArrayHelper::check($temp1) if (ArrayHelper::check($temp1)
@ -5957,10 +5969,10 @@ class Get
if (!ArrayHelper::check($layouts)) if (!ArrayHelper::check($layouts))
{ {
// set the Layout data // set the Layout data
$lay1 = ComponentbuilderHelper::getAllBetween( $lay1 = GetHelper::allBetween(
$default, "JLayoutHelper::render('", "'," $default, "JLayoutHelper::render('", "',"
); );
$lay2 = ComponentbuilderHelper::getAllBetween( $lay2 = GetHelper::allBetween(
$default, 'JLayoutHelper::render("', '",' $default, 'JLayoutHelper::render("', '",'
); );
if (ArrayHelper::check($lay1) if (ArrayHelper::check($lay1)
@ -6557,10 +6569,10 @@ class Get
// first get the Joomla .JText._() // first get the Joomla .JText._()
if (in_array('Joomla' . '.JText._(', $langStringTargets)) if (in_array('Joomla' . '.JText._(', $langStringTargets))
{ {
$jsTEXT[] = ComponentbuilderHelper::getAllBetween( $jsTEXT[] = GetHelper::allBetween(
$content, "Joomla" . ".JText._('", "'" $content, "Joomla" . ".JText._('", "'"
); );
$jsTEXT[] = ComponentbuilderHelper::getAllBetween( $jsTEXT[] = GetHelper::allBetween(
$content, 'Joomla' . '.JText._("', '"' $content, 'Joomla' . '.JText._("', '"'
); );
// combine into one array // combine into one array
@ -6580,10 +6592,10 @@ class Get
// now get the JText: :script() // now get the JText: :script()
if (in_array('JText:' . ':script(', $langStringTargets)) if (in_array('JText:' . ':script(', $langStringTargets))
{ {
$scTEXT[] = ComponentbuilderHelper::getAllBetween( $scTEXT[] = GetHelper::allBetween(
$content, "JText:" . ":script('", "'" $content, "JText:" . ":script('", "'"
); );
$scTEXT[] = ComponentbuilderHelper::getAllBetween( $scTEXT[] = GetHelper::allBetween(
$content, 'JText:' . ':script("', '"' $content, 'JText:' . ':script("', '"'
); );
// combine into one array // combine into one array
@ -6601,10 +6613,10 @@ class Get
// now do the little trick for JustTEXT: :_('Just uppercase text'); // now do the little trick for JustTEXT: :_('Just uppercase text');
if (in_array('JustTEXT:' . ':_(', $langStringTargets)) if (in_array('JustTEXT:' . ':_(', $langStringTargets))
{ {
$langOnly[] = ComponentbuilderHelper::getAllBetween( $langOnly[] = GetHelper::allBetween(
$content, "JustTEXT:" . ":_('", "')" $content, "JustTEXT:" . ":_('", "')"
); );
$langOnly[] = ComponentbuilderHelper::getAllBetween( $langOnly[] = GetHelper::allBetween(
$content, 'JustTEXT:' . ':_("', '")' $content, 'JustTEXT:' . ':_("', '")'
); );
// merge lang only // merge lang only
@ -6620,10 +6632,10 @@ class Get
{ {
continue; continue;
} }
$langCheck[] = ComponentbuilderHelper::getAllBetween( $langCheck[] = GetHelper::allBetween(
$content, $langStringTarget . "'", "'" $content, $langStringTarget . "'", "'"
); );
$langCheck[] = ComponentbuilderHelper::getAllBetween( $langCheck[] = GetHelper::allBetween(
$content, $langStringTarget . '"', '"' $content, $langStringTarget . '"', '"'
); );
} }
@ -7316,7 +7328,7 @@ class Get
} }
// target content // target content
$bucket = array(); $bucket = array();
$found = ComponentbuilderHelper::getAllBetween( $found = GetHelper::allBetween(
$string, '[EXTERNA' . 'LCODE=', ']' $string, '[EXTERNA' . 'LCODE=', ']'
); );
if (ArrayHelper::check($found)) if (ArrayHelper::check($found))
@ -7421,7 +7433,7 @@ class Get
{ {
// get the data string (code) // get the data string (code)
$this->externalCodeString[$target_key] $this->externalCodeString[$target_key]
= ComponentbuilderHelper::getFileContents($target_url); = FileHelper::getContent($target_url);
// check if we must cut this // check if we must cut this
if (isset($this->externalCodeCutter[$target_key]) && if (isset($this->externalCodeCutter[$target_key]) &&
$this->externalCodeCutter[$target_key]) $this->externalCodeCutter[$target_key])
@ -7628,7 +7640,7 @@ class Get
} }
// the ids found in this content // the ids found in this content
$bucket = array(); $bucket = array();
$found = ComponentbuilderHelper::getAllBetween( $found = GetHelper::allBetween(
$string, '[CUSTO' . 'MCODE=', ']' $string, '[CUSTO' . 'MCODE=', ']'
); );
if (ArrayHelper::check($found)) if (ArrayHelper::check($found))
@ -8620,7 +8632,7 @@ class Get
*/ */
public function getPower($id) public function getPower($id)
{ {
if ($this->setPower($id)) if ($this->addPower && $this->setPower($id))
{ {
return $this->powers[$id]; return $this->powers[$id];
} }
@ -8934,12 +8946,16 @@ class Get
return true; return true;
} }
} }
// we failed to get the power // we failed to get the power,
// so we raise an error message // so we raise an error message
// only if id exist
if ($id > 0)
{
$this->app->enqueueMessage( $this->app->enqueueMessage(
JText::sprintf('<p>Power <b>id:%s</b> not found!</p>', $id), JText::sprintf('<p>Power <b>id:%s</b> not found!</p>', $id),
'Error' 'Error'
); );
}
// let's not try again // let's not try again
$this->statePowers[$id] = false; $this->statePowers[$id] = false;
@ -9525,7 +9541,7 @@ class Get
&& isset($field['settings'])) && isset($field['settings']))
{ {
if (($old_default if (($old_default
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$field['settings']->xml, $field['settings']->xml,
'default="', '"', false 'default="', '"', false
)) !== false) )) !== false)
@ -10470,7 +10486,7 @@ class Get
&& isset($field['settings'])) && isset($field['settings']))
{ {
if (($old_default if (($old_default
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$field['settings']->xml, $field['settings']->xml,
'default="', '"', false 'default="', '"', false
)) !== false) )) !== false)
@ -11427,7 +11443,7 @@ class Get
if (strpos($script, 'HASHSTRING((((') !== false) if (strpos($script, 'HASHSTRING((((') !== false)
{ {
// get the strings // get the strings
$values = ComponentbuilderHelper::getAllBetween( $values = GetHelper::allBetween(
$script, 'HASHSTRING((((', '))))' $script, 'HASHSTRING((((', '))))'
); );
$locker = array(); $locker = array();
@ -11445,7 +11461,7 @@ class Get
if (strpos($script, 'HASHFILE((((') !== false) if (strpos($script, 'HASHFILE((((') !== false)
{ {
// get the strings // get the strings
$values = ComponentbuilderHelper::getAllBetween( $values = GetHelper::allBetween(
$script, 'HASHFILE((((', '))))' $script, 'HASHFILE((((', '))))'
); );
$locker = array(); $locker = array();
@ -11453,7 +11469,7 @@ class Get
foreach ($values as $path) foreach ($values as $path)
{ {
// we first get the file if it exist // we first get the file if it exist
if ($value = ComponentbuilderHelper::getFileContents($path)) if ($value = FileHelper::getContent($path))
{ {
// now we hash the file content // now we hash the file content
$locker['HASHFILE((((' . $path . '))))'] $locker['HASHFILE((((' . $path . '))))']
@ -11487,7 +11503,7 @@ class Get
if (strpos($script, 'LOCKBASE64((((') !== false) if (strpos($script, 'LOCKBASE64((((') !== false)
{ {
// get the strings // get the strings
$values = ComponentbuilderHelper::getAllBetween( $values = GetHelper::allBetween(
$script, 'LOCKBASE64((((', '))))' $script, 'LOCKBASE64((((', '))))'
); );
$locker = array(); $locker = array();
@ -11642,14 +11658,14 @@ class Get
protected function guiCodeSearch(&$file, &$placeholders, &$today, &$target) protected function guiCodeSearch(&$file, &$placeholders, &$today, &$target)
{ {
// get file content // get file content
$file_conent = ComponentbuilderHelper::getFileContents($file); $file_conent = FileHelper::getContent($file);
$guiCode = array(); $guiCode = array();
// we add a new search for the GUI CODE Blocks // we add a new search for the GUI CODE Blocks
$guiCode[] = ComponentbuilderHelper::getAllBetween( $guiCode[] = GetHelper::allBetween(
$file_conent, '/***[JCB' . 'GUI<>', '/***[/JCBGUI' . '$$$$]***/' $file_conent, '/***[JCB' . 'GUI<>', '/***[/JCBGUI' . '$$$$]***/'
); );
$guiCode[] = ComponentbuilderHelper::getAllBetween( $guiCode[] = GetHelper::allBetween(
$file_conent, '<!--[JCB' . 'GUI<>', '<!--[/JCBGUI' . '$$$$]-->' $file_conent, '<!--[JCB' . 'GUI<>', '<!--[/JCBGUI' . '$$$$]-->'
); );
@ -11899,10 +11915,10 @@ class Get
// set language data // set language data
foreach ($langStringTargets as $langStringTarget) foreach ($langStringTargets as $langStringTarget)
{ {
$langCheck[] = ComponentbuilderHelper::getAllBetween( $langCheck[] = GetHelper::allBetween(
$string, $langStringTarget . "'", "'" $string, $langStringTarget . "'", "'"
); );
$langCheck[] = ComponentbuilderHelper::getAllBetween( $langCheck[] = GetHelper::allBetween(
$string, $langStringTarget . "'", "'" $string, $langStringTarget . "'", "'"
); );
} }

View File

@ -18,6 +18,8 @@ use Joomla\CMS\Filesystem\Folder;
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Utilities\FileHelper;
/** /**
@ -1136,7 +1138,7 @@ class Structure extends Get
// set file name // set file name
$fileName = basename($url['url']); $fileName = basename($url['url']);
// get the file contents // get the file contents
$data = ComponentbuilderHelper::getFileContents( $data = FileHelper::getContent(
$url['url'] $url['url']
); );
// build sub path // build sub path
@ -1527,7 +1529,7 @@ class Structure extends Get
// set file name // set file name
$fileName = basename($url['url']); $fileName = basename($url['url']);
// get the file contents // get the file contents
$data = ComponentbuilderHelper::getFileContents( $data = FileHelper::getContent(
$url['url'] $url['url']
); );
// build sub path // build sub path
@ -1672,7 +1674,7 @@ class Structure extends Get
// set file name // set file name
$fileName = basename($url['url']); $fileName = basename($url['url']);
// get the file contents // get the file contents
$data = ComponentbuilderHelper::getFileContents( $data = FileHelper::getContent(
$url['url'] $url['url']
); );
// build sub path // build sub path
@ -1887,7 +1889,7 @@ class Structure extends Get
*/ */
public function writeFile($path, $data) public function writeFile($path, $data)
{ {
return ComponentbuilderHelper::writeFile($path, $data); return FileHelper::write($path, $data);
} }
/** /**
@ -2591,7 +2593,7 @@ class Structure extends Get
'trim', 'trim',
explode( explode(
',', ',',
ComponentbuilderHelper::getBetween( GetHelper::between(
$multi_field['settings']->xml, 'fields="', '"' $multi_field['settings']->xml, 'fields="', '"'
) )
) )
@ -2895,7 +2897,7 @@ class Structure extends Get
if (File::exists($custom_settings)) if (File::exists($custom_settings))
{ {
$version_data = json_decode( $version_data = json_decode(
ComponentbuilderHelper::getFileContents( FileHelper::getContent(
$custom_settings $custom_settings
) )
); );
@ -2903,7 +2905,7 @@ class Structure extends Get
else else
{ {
$version_data = json_decode( $version_data = json_decode(
ComponentbuilderHelper::getFileContents( FileHelper::getContent(
$this->templatePath . '/settings.json' $this->templatePath . '/settings.json'
) )
); );

View File

@ -16,6 +16,7 @@ defined('_JEXEC') or die('Restricted access');
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Utilities\String\FieldHelper; use VDM\Joomla\Utilities\String\FieldHelper;
/** /**
@ -4167,7 +4168,7 @@ class Fields extends Structure
elseif ($property['name'] === 'validate') elseif ($property['name'] === 'validate')
{ {
// check if we have validate (validation rule set) // check if we have validate (validation rule set)
$xmlValue = ComponentbuilderHelper::getBetween( $xmlValue = GetHelper::between(
$field['settings']->xml, 'validate="', '"' $field['settings']->xml, 'validate="', '"'
); );
if (StringHelper::check($xmlValue)) if (StringHelper::check($xmlValue))
@ -4183,7 +4184,7 @@ class Fields extends Structure
{ {
// get value & replace the placeholders // get value & replace the placeholders
$xmlValue = $this->setPlaceholders( $xmlValue = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, $property['name'] . '="', $field['settings']->xml, $property['name'] . '="',
'"' '"'
), $placeholders ), $placeholders
@ -4208,7 +4209,7 @@ class Fields extends Structure
$fieldAttributes['custom'][$phpKey][$phpLine] $fieldAttributes['custom'][$phpKey][$phpLine]
= $this->setDynamicValues( = $this->setDynamicValues(
ComponentbuilderHelper::openValidBase64( ComponentbuilderHelper::openValidBase64(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, $field['settings']->xml,
$property['name'] . '="', '"' $property['name'] . '="', '"'
) )
@ -4221,7 +4222,7 @@ class Fields extends Structure
{ {
// load the php for the custom field file // load the php for the custom field file
$fieldAttributes['custom']['prime_php'] $fieldAttributes['custom']['prime_php']
= (int) ComponentbuilderHelper::getBetween( = (int) GetHelper::between(
$field['settings']->xml, $property['name'] . '="', '"' $field['settings']->xml, $property['name'] . '="', '"'
); );
} }
@ -4229,7 +4230,7 @@ class Fields extends Structure
{ {
// load the class that is being extended // load the class that is being extended
$fieldAttributes['custom']['extends'] $fieldAttributes['custom']['extends']
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$field['settings']->xml, 'extends="', '"' $field['settings']->xml, 'extends="', '"'
); );
} }
@ -4239,7 +4240,7 @@ class Fields extends Structure
$fieldAttributes['custom']['view'] $fieldAttributes['custom']['view']
= StringHelper::safe( = StringHelper::safe(
$this->setPlaceholders( $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'view="', '"' $field['settings']->xml, 'view="', '"'
), $placeholders ), $placeholders
) )
@ -4251,7 +4252,7 @@ class Fields extends Structure
$fieldAttributes['custom']['views'] $fieldAttributes['custom']['views']
= StringHelper::safe( = StringHelper::safe(
$this->setPlaceholders( $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'views="', '"' $field['settings']->xml, 'views="', '"'
), $placeholders ), $placeholders
) )
@ -4262,7 +4263,7 @@ class Fields extends Structure
// load the component name & replace the placeholders // load the component name & replace the placeholders
$fieldAttributes['custom']['component'] $fieldAttributes['custom']['component']
= $this->setPlaceholders( = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'component="', '"' $field['settings']->xml, 'component="', '"'
), $placeholders ), $placeholders
); );
@ -4272,7 +4273,7 @@ class Fields extends Structure
// load the main table that is queried & replace the placeholders // load the main table that is queried & replace the placeholders
$fieldAttributes['custom']['table'] $fieldAttributes['custom']['table']
= $this->setPlaceholders( = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'table="', '"' $field['settings']->xml, 'table="', '"'
), $placeholders ), $placeholders
); );
@ -4282,7 +4283,7 @@ class Fields extends Structure
// load the text key // load the text key
$fieldAttributes['custom']['text'] $fieldAttributes['custom']['text']
= StringHelper::safe( = StringHelper::safe(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'value_field="', '"' $field['settings']->xml, 'value_field="', '"'
) )
); );
@ -4292,7 +4293,7 @@ class Fields extends Structure
// load the id key // load the id key
$fieldAttributes['custom']['id'] $fieldAttributes['custom']['id']
= StringHelper::safe( = StringHelper::safe(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'key_field="', '"' $field['settings']->xml, 'key_field="', '"'
) )
); );
@ -4309,7 +4310,7 @@ class Fields extends Structure
{ {
// load the button string value if found // load the button string value if found
$xmlValue = (string) StringHelper::safe( $xmlValue = (string) StringHelper::safe(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'button="', '"' $field['settings']->xml, 'button="', '"'
) )
); );
@ -4338,7 +4339,7 @@ class Fields extends Structure
} }
elseif ($property['name'] === 'multiple') elseif ($property['name'] === 'multiple')
{ {
$xmlValue = (string) ComponentbuilderHelper::getBetween( $xmlValue = (string) GetHelper::between(
$field['settings']->xml, $property['name'] . '="', '"' $field['settings']->xml, $property['name'] . '="', '"'
); );
// add the multipal // add the multipal
@ -4352,7 +4353,7 @@ class Fields extends Structure
&& ($typeName === 'note' && ($typeName === 'note'
|| $typeName === 'spacer')) || $typeName === 'spacer'))
{ {
$xmlValue = ComponentbuilderHelper::getBetween( $xmlValue = GetHelper::between(
$field['settings']->xml, 'class="', '"' $field['settings']->xml, 'class="', '"'
); );
// add the type class // add the type class
@ -4372,7 +4373,7 @@ class Fields extends Structure
{ {
// set the rest of the fields // set the rest of the fields
$xmlValue = (string) $this->setPlaceholders( $xmlValue = (string) $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, $property['name'] . '="', $field['settings']->xml, $property['name'] . '="',
'"' '"'
), $placeholders ), $placeholders
@ -4473,7 +4474,7 @@ class Fields extends Structure
// validate that the default field is set // validate that the default field is set
elseif ($property['name'] === 'default' elseif ($property['name'] === 'default'
&& ($xmlValidateValue && ($xmlValidateValue
= ComponentbuilderHelper::getBetween( = GetHelper::between(
$field['settings']->xml, 'default="', '"', 'none-set' $field['settings']->xml, 'default="', '"', 'none-set'
)) !== 'none-set') )) !== 'none-set')
{ {
@ -4511,7 +4512,7 @@ class Fields extends Structure
if (isset($fieldAttributes['name'])) if (isset($fieldAttributes['name']))
{ {
// check if we have class value for the list view of this field // check if we have class value for the list view of this field
$listclass = ComponentbuilderHelper::getBetween( $listclass = GetHelper::between(
$field['settings']->xml, 'listclass="', '"' $field['settings']->xml, 'listclass="', '"'
); );
if (StringHelper::check($listclass)) if (StringHelper::check($listclass))
@ -4520,7 +4521,7 @@ class Fields extends Structure
= $listclass; = $listclass;
} }
// check if we find reason to remove this field from being escaped // check if we find reason to remove this field from being escaped
$escaped = ComponentbuilderHelper::getBetween( $escaped = GetHelper::between(
$field['settings']->xml, 'escape="', '"' $field['settings']->xml, 'escape="', '"'
); );
if (StringHelper::check($escaped)) if (StringHelper::check($escaped))
@ -4529,7 +4530,7 @@ class Fields extends Structure
= $fieldAttributes['name']; = $fieldAttributes['name'];
} }
// check if we have display switch for dynamic placement // check if we have display switch for dynamic placement
$display = ComponentbuilderHelper::getBetween( $display = GetHelper::between(
$field['settings']->xml, 'display="', '"' $field['settings']->xml, 'display="', '"'
); );
if (StringHelper::check($display)) if (StringHelper::check($display))
@ -4540,7 +4541,7 @@ class Fields extends Structure
if (!isset($fieldAttributes['validate'])) if (!isset($fieldAttributes['validate']))
{ {
// check if we have validate (validation rule set) // check if we have validate (validation rule set)
$validationRule = ComponentbuilderHelper::getBetween( $validationRule = GetHelper::between(
$field['settings']->xml, 'validate="', '"' $field['settings']->xml, 'validate="', '"'
); );
if (StringHelper::check($validationRule)) if (StringHelper::check($validationRule))
@ -4753,7 +4754,7 @@ class Fields extends Structure
{ {
// get it from the field xml string // get it from the field xml string
$listFieldName = (string) $this->setPlaceholders( $listFieldName = (string) $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'label="', $field['settings']->xml, 'label="',
'"' '"'
), $this->placeholders ), $this->placeholders
@ -4954,7 +4955,7 @@ class Fields extends Structure
} }
// get the xml extension name // get the xml extension name
$_extension = $this->setPlaceholders( $_extension = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$field['settings']->xml, 'extension="', '"' $field['settings']->xml, 'extension="', '"'
), $this->placeholders ), $this->placeholders
); );

View File

@ -18,6 +18,8 @@ use Joomla\CMS\Filesystem\Folder;
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\GetHelper;
use VDM\Joomla\Utilities\FileHelper;
use VDM\Joomla\Utilities\MathHelper; use VDM\Joomla\Utilities\MathHelper;
/** /**
@ -2389,7 +2391,7 @@ class Interpretation extends Fields
foreach ($params as $field) foreach ($params as $field)
{ {
// some switch to see if it should be added to front end params // some switch to see if it should be added to front end params
$target = ComponentbuilderHelper::getBetween( $target = GetHelper::between(
$field, 'display="', '"' $field, 'display="', '"'
); );
if (!StringHelper::check($target) if (!StringHelper::check($target)
@ -5548,12 +5550,10 @@ class Interpretation extends Fields
} }
// set the custom buttons CUSTOM_BUTTONS_CONTROLLER // set the custom buttons CUSTOM_BUTTONS_CONTROLLER
$this->fileContentDynamic[$viewCodeName][$this->hhh . $TARGET $this->fileContentDynamic[$viewCodeName][$this->hhh . $TARGET
. '_CUSTOM_BUTTONS_CONTROLLER' . $this->hhh] . '_CUSTOM_BUTTONS_CONTROLLER' . $this->hhh] = '';
= '';
// set the custom buttons CUSTOM_BUTTONS_METHOD // set the custom buttons CUSTOM_BUTTONS_METHOD
$this->fileContentDynamic[$viewCodeName][$this->hhh . $TARGET $this->fileContentDynamic[$viewCodeName][$this->hhh . $TARGET
. '_CUSTOM_BUTTONS_METHOD' . $this->hhh] . '_CUSTOM_BUTTONS_METHOD' . $this->hhh] = '';
= '';
} }
elseif (3 == $type) elseif (3 == $type)
{ {
@ -6456,7 +6456,7 @@ class Interpretation extends Fields
$path = '/' . trim($folder['path'], '/'); $path = '/' . trim($folder['path'], '/');
if (isset($folder['rename']) && 1 == $folder['rename']) if (isset($folder['rename']) && 1 == $folder['rename'])
{ {
if ($_paths = ComponentbuilderHelper::getAllFilePaths( if ($_paths = FileHelper::getPaths(
$this->componentPath . $path $this->componentPath . $path
)) ))
{ {
@ -6466,7 +6466,7 @@ class Interpretation extends Fields
else else
{ {
$path = $path . '/' . trim($folder['folder'], '/'); $path = $path . '/' . trim($folder['folder'], '/');
if ($_paths = ComponentbuilderHelper::getAllFilePaths( if ($_paths = FileHelper::getPaths(
$this->componentPath . $path $this->componentPath . $path
)) ))
{ {
@ -7309,7 +7309,7 @@ class Interpretation extends Fields
{ {
if (File::exists($file['path'])) if (File::exists($file['path']))
{ {
$string = ComponentbuilderHelper::getFileContents( $string = FileHelper::getContent(
$file['path'] $file['path']
); );
$buket['static'][] = $this->getInbetweenStrings( $buket['static'][] = $this->getInbetweenStrings(
@ -7326,7 +7326,7 @@ class Interpretation extends Fields
if (File::exists($doc['path'])) if (File::exists($doc['path']))
{ {
$string $string
= ComponentbuilderHelper::getFileContents( = FileHelper::getContent(
$doc['path'] $doc['path']
); );
$buket[$view][] = $this->getInbetweenStrings( $buket[$view][] = $this->getInbetweenStrings(
@ -17709,7 +17709,7 @@ class Interpretation extends Fields
elseif (ComponentbuilderHelper::fieldCheck($type, 'text')) elseif (ComponentbuilderHelper::fieldCheck($type, 'text'))
{ {
// check to get the key words if set // check to get the key words if set
$keywords = ComponentbuilderHelper::getBetween( $keywords = GetHelper::between(
$options, 'keywords="', '"' $options, 'keywords="', '"'
); );
if (StringHelper::check($keywords)) if (StringHelper::check($keywords))
@ -17730,7 +17730,7 @@ class Interpretation extends Fields
} }
} }
// check to ket string length if set // check to ket string length if set
$length = ComponentbuilderHelper::getBetween( $length = GetHelper::between(
$options, 'length="', '"' $options, 'length="', '"'
); );
if (StringHelper::check($length)) if (StringHelper::check($length))
@ -23212,7 +23212,7 @@ class Interpretation extends Fields
{ {
// get all the mothods that should load date to the view // get all the mothods that should load date to the view
$this->DashboardGetCustomData $this->DashboardGetCustomData
= ComponentbuilderHelper::getAllBetween( = GetHelper::allBetween(
$this->componentData->php_dashboard_methods, $this->componentData->php_dashboard_methods,
'public function get', '()' 'public function get', '()'
); );
@ -24274,10 +24274,10 @@ class Interpretation extends Fields
if (1 == $timer) // this is before the admin views are build if (1 == $timer) // this is before the admin views are build
{ {
// start loading Global params // start loading Global params
$autorName = ComponentbuilderHelper::htmlEscape( $autorName = StringHelper::html(
$this->componentData->author $this->componentData->author
); );
$autorEmail = ComponentbuilderHelper::htmlEscape( $autorEmail = StringHelper::html(
$this->componentData->email $this->componentData->email
); );
$this->extensionsParams[] = '"autorName":"' . $autorName $this->extensionsParams[] = '"autorName":"' . $autorName
@ -24366,13 +24366,13 @@ class Interpretation extends Fields
// set global params to db on install // set global params to db on install
$fieldName = StringHelper::safe( $fieldName = StringHelper::safe(
$this->setPlaceholders( $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$xmlField, 'name="', '"' $xmlField, 'name="', '"'
), $placeholders ), $placeholders
) )
); );
$fieldDefault = $this->setPlaceholders( $fieldDefault = $this->setPlaceholders(
ComponentbuilderHelper::getBetween( GetHelper::between(
$xmlField, 'default="', '"' $xmlField, 'default="', '"'
), $placeholders ), $placeholders
); );
@ -24486,7 +24486,7 @@ class Interpretation extends Fields
elseif (strpos($id_field, '_request_id') !== false) elseif (strpos($id_field, '_request_id') !== false)
{ {
// not loaded to a tab "view" name // not loaded to a tab "view" name
$_viewRequest = ComponentbuilderHelper::getBetween( $_viewRequest = GetHelper::between(
$id_field, 'name="', '_request_id' $id_field, 'name="', '_request_id'
); );
$searchIdKe = 'name="' . $_viewRequest $searchIdKe = 'name="' . $_viewRequest
@ -24514,7 +24514,7 @@ class Interpretation extends Fields
elseif (strpos($catid_field, '_request_catid') !== false) elseif (strpos($catid_field, '_request_catid') !== false)
{ {
// not loaded to a tab "view" name // not loaded to a tab "view" name
$_viewRequestC = ComponentbuilderHelper::getBetween( $_viewRequestC = GetHelper::between(
$catid_field, 'name="', '_request_catid' $catid_field, 'name="', '_request_catid'
); );
$searchCatidKe = 'name="' . $_viewRequestC $searchCatidKe = 'name="' . $_viewRequestC
@ -24539,7 +24539,7 @@ class Interpretation extends Fields
elseif (strpos($field, '_menu"') !== false) elseif (strpos($field, '_menu"') !== false)
{ {
// not loaded to a tab "view" name // not loaded to a tab "view" name
$_tabLower = ComponentbuilderHelper::getBetween( $_tabLower = GetHelper::between(
$field, 'name="', '_menu"' $field, 'name="', '_menu"'
); );
// set the values needed to insure route is done correclty // set the values needed to insure route is done correclty
@ -24561,7 +24561,7 @@ class Interpretation extends Fields
protected function setRequestValues($view, $field, $search, $target, $store) protected function setRequestValues($view, $field, $search, $target, $store)
{ {
$key = ComponentbuilderHelper::getBetween($field, $search, '"'); $key = GetHelper::between($field, $search, '"');
if (!StringHelper::check($key)) if (!StringHelper::check($key))
{ {
// is not having special var // is not having special var
@ -24602,7 +24602,7 @@ class Interpretation extends Fields
$bucket = array(); $bucket = array();
foreach ($tabFields as $tabField) foreach ($tabFields as $tabField)
{ {
$display = ComponentbuilderHelper::getBetween( $display = GetHelper::between(
$tabField, 'display="', '"' $tabField, 'display="', '"'
); );
if (!StringHelper::check($display) if (!StringHelper::check($display)
@ -24908,7 +24908,7 @@ class Interpretation extends Fields
); );
$cbWebsite = htmlspecialchars( $cbWebsite = htmlspecialchars(
$contributor['website'], ENT_XML1, 'UTF-8' $contributor['website'], ENT_XML1, 'UTF-8'
); // ComponentbuilderHelper::htmlEscape($contributor['website']); ); // StringHelper::html($contributor['website']);
// load to the $fieldsets // load to the $fieldsets
$this->configFieldSets[] = $this->_t(2) $this->configFieldSets[] = $this->_t(2)
. '<field type="spacer" name="spacerContributor' . $counter . '<field type="spacer" name="spacerContributor' . $counter

View File

@ -18,6 +18,7 @@ use Joomla\CMS\Filesystem\Folder;
use VDM\Joomla\Utilities\StringHelper; use VDM\Joomla\Utilities\StringHelper;
use VDM\Joomla\Utilities\ArrayHelper; use VDM\Joomla\Utilities\ArrayHelper;
use VDM\Joomla\Utilities\ObjectHelper; use VDM\Joomla\Utilities\ObjectHelper;
use VDM\Joomla\Utilities\FileHelper;
/** /**
* Infusion class * Infusion class
@ -2796,7 +2797,7 @@ class Infusion extends Interpretation
$xmlPath = $this->componentPath . '/' . $this->componentCodeName $xmlPath = $this->componentPath . '/' . $this->componentCodeName
. '.xml'; . '.xml';
// get the content in xml // get the content in xml
$componentXML = ComponentbuilderHelper::getFileContents( $componentXML = FileHelper::getContent(
$xmlPath $xmlPath
); );
// update the xml content // update the xml content

View File

@ -1028,51 +1028,6 @@ abstract class ComponentbuilderHelper
} }
} }
/**
* get all the file paths in folder and sub folders
*
* @param string $folder The local path to parse
* @param array $fileTypes The type of files to get
*
* @return void
*
*/
public static function getAllFilePaths($folder, $fileTypes = array('\.php', '\.js', '\.css', '\.less'), $recurse = true, $full = true)
{
if (Folder::exists($folder))
{
// we must first store the current woking directory
$joomla = getcwd();
// we are changing the working directory to the component path
chdir($folder);
// make sure we have file type filter
if (self::checkArray($fileTypes))
{
// get the files
foreach ($fileTypes as $type)
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', $type, $recurse, $full);
}
}
elseif (self::checkString($fileTypes))
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', $fileTypes, $recurse, $full);
}
else
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', '.', $recurse, $full);
}
// change back to Joomla working directory
chdir($joomla);
// return array of files
return array_map( function($file) { return str_replace('./', '/', $file); }, (array) self::mergeArrays($files));
}
return false;
}
/** /**
* get all component IDs * get all component IDs
*/ */
@ -3788,81 +3743,6 @@ abstract class ComponentbuilderHelper
return $exists; return $exists;
} }
/**
* Get the file path or url
*
* @param string $type The (url/path) type to return
* @param string $target The Params Target name (if set)
* @param string $fileType The kind of filename to generate (if not set no file name is generated)
* @param string $key The key to adjust the filename (if not set ignored)
* @param string $default The default path if not set in Params (fallback path)
* @param bool $createIfNotSet The switch to create the folder if not found
*
* @return string On success the path or url is returned based on the type requested
*
*/
public static function getFilePath($type = 'path', $target = 'filepath', $fileType = null, $key = '', $default = '', $createIfNotSet = true)
{
// make sure to always have a string/path
if(!self::checkString($default))
{
$default = JPATH_SITE . '/images/';
}
// get the global settings
if (!self::checkObject(self::$params))
{
self::$params = JComponentHelper::getParams('com_componentbuilder');
}
$filePath = self::$params->get($target, $default);
// check the file path (revert to default only of not a hidden file path)
if ('hiddenfilepath' !== $target && strpos($filePath, JPATH_SITE) === false)
{
$filePath = $default;
}
// create the folder if it does not exist
if ($createIfNotSet && !Folder::exists($filePath))
{
Folder::create($filePath);
}
// setup the file name
$fileName = '';
// Get basic key
$basickey = 'Th!s_iS_n0t_sAfe_buT_b3tter_then_n0thiug';
if (method_exists(get_called_class(), "getCryptKey"))
{
$basickey = self::getCryptKey('basic', $basickey);
}
// check the key
if (!self::checkString($key))
{
$key = 'vDm';
}
// set the file name
if (self::checkString($fileType))
{
// set the name
$fileName = trim(md5($type.$target.$basickey.$key) . '.' . trim($fileType, '.'));
}
else
{
$fileName = trim(md5($type.$target.$basickey.$key)) . '.txt';
}
// return the url
if ('url' === $type)
{
if (strpos($filePath, JPATH_SITE) !== false)
{
$filePath = trim( str_replace( JPATH_SITE, '', $filePath), '/');
return JURI::root() . $filePath . '/' . $fileName;
}
// since the path is behind the root folder of the site, return only the root url (may be used to build the link)
return JURI::root();
}
// sanitize the path
return '/' . trim( $filePath, '/' ) . '/' . $fileName;
}
/** /**
* Get the file path or url * Get the file path or url
* *

View File

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="4" method="upgrade"> <extension type="component" version="4" method="upgrade">
<name>COM_COMPONENTBUILDER</name> <name>COM_COMPONENTBUILDER</name>
<creationDate>12th March, 2022</creationDate> <creationDate>4th April, 2022</creationDate>
<author>Llewellyn van der Merwe</author> <author>Llewellyn van der Merwe</author>
<authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail> <authorEmail>llewellyn@joomlacomponentbuilder.com</authorEmail>
<authorUrl>http://www.joomlacomponentbuilder.com</authorUrl> <authorUrl>http://www.joomlacomponentbuilder.com</authorUrl>
<copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright> <copyright>Copyright (C) 2015 Vast Development Method. All rights reserved.</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license> <license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<version>2.12.15</version> <version>2.12.16</version>
<description><![CDATA[ <description><![CDATA[
<h1>Component Builder (v.2.12.15)</h1> <h1>Component Builder (v.2.12.16)</h1>
<div style="clear: both;"></div> <div style="clear: both;"></div>
<p>The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time. <p>The Component Builder for [Joomla](https://extensions.joomla.org/extension/component-builder/) is highly advanced tool that is truly able to build extremely complex components in a fraction of the time.

View File

@ -1041,10 +1041,10 @@
<description>Builds Complex Joomla Components</description> <description>Builds Complex Joomla Components</description>
<element>com_componentbuilder</element> <element>com_componentbuilder</element>
<type>component</type> <type>component</type>
<version>2.12.15</version> <version>2.12.16</version>
<infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl> <infourl title="Component Builder!">http://www.joomlacomponentbuilder.com</infourl>
<downloads> <downloads>
<downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.12.15/JCB_v2.12.15.zip</downloadurl> <downloadurl type="full" format="zip">https://github.com/vdm-io/Joomla-Component-Builder/releases/download/v2.12.16/JCB_v2.12.16.zip</downloadurl>
</downloads> </downloads>
<tags> <tags>
<tag>stable</tag> <tag>stable</tag>

View File

@ -556,5 +556,43 @@ trait Utilities
return FileHelper::write($path, $data); return FileHelper::write($path, $data);
} }
/**
* get all the file paths in folder and sub folders
*
* @param string $folder The local path to parse
* @param array $fileTypes The type of files to get
*
* @return void
*
* @since 3.0.9
*
* @deprecated 4.0 - Use FileHelper::getPaths($folder, $fileTypes , $recurse, $full);
*/
public static function getAllFilePaths($folder, $fileTypes = array('\.php', '\.js', '\.css', '\.less'), $recurse = true, $full = true)
{
return FileHelper::getPaths($folder, $fileTypes , $recurse, $full);
}
/**
* Get the file path or url
*
* @param string $type The (url/path) type to return
* @param string $target The Params Target name (if set)
* @param string $fileType The kind of filename to generate (if not set no file name is generated)
* @param string $key The key to adjust the filename (if not set ignored)
* @param string $default The default path if not set in Params (fallback path)
* @param bool $createIfNotSet The switch to create the folder if not found
*
* @return string On success the path or url is returned based on the type requested
*
* @since 3.0.9
*
* @deprecated 4.0 - Use FileHelper::getPath($type, $target, $fileType, $key, $default, $createIfNotSet);
*/
public static function getFilePath($type = 'path', $target = 'filepath', $fileType = null, $key = '', $default = '', $createIfNotSet = true)
{
return FileHelper::getPath($type, $target, $fileType, $key, $default, $createIfNotSet);
}
} }

View File

@ -13,11 +13,13 @@
namespace VDM\Joomla\Utilities; namespace VDM\Joomla\Utilities;
use Joomla\CMS\Uri\Uri;
use Joomla\CMS\Factory; use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text; use Joomla\CMS\Language\Text;
use Joomla\CMS\Filesystem\Path; use Joomla\CMS\Filesystem\Path;
use Joomla\CMS\Filesystem\File; use Joomla\CMS\Filesystem\File;
use Joomla\CMS\Filesystem\Folder; use Joomla\CMS\Filesystem\Folder;
use Joomla\CMS\Component\ComponentHelper;
use Joomla\Archive\Archive; use Joomla\Archive\Archive;
@ -37,6 +39,15 @@ abstract class FileHelper
*/ */
protected static $curlError = false; protected static $curlError = false;
/**
* The component params
*
* @var object
*
* @since 3.0.9
*/
protected static $params = false;
/** /**
* The zipper method * The zipper method
* *
@ -177,5 +188,140 @@ abstract class FileHelper
return $klaar; return $klaar;
} }
/**
* get all the file paths in folder and sub folders
*
* @param string $folder The local path to parse
* @param array $fileTypes The type of files to get
*
* @return void
*
* @since 3.0.9
*/
public static function getPaths($folder, $fileTypes = array('\.php', '\.js', '\.css', '\.less'), $recurse = true, $full = true)
{
if (Folder::exists($folder))
{
// we must first store the current woking directory
$joomla = getcwd();
// we are changing the working directory to the component path
chdir($folder);
// make sure we have file type filter
if (ArrayHelper::check($fileTypes))
{
// get the files
foreach ($fileTypes as $type)
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', $type, $recurse, $full);
}
}
elseif (StringHelper::check($fileTypes))
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', $fileTypes, $recurse, $full);
}
else
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', '.', $recurse, $full);
}
// change back to Joomla working directory
chdir($joomla);
// return array of files
return array_map( function($file) { return str_replace('./', '/', $file); }, (array) ArrayHelper::merge($files));
}
return false;
}
/**
* Get the file path or url
*
* @param string $type The (url/path) type to return
* @param string $target The Params Target name (if set)
* @param string $fileType The kind of filename to generate (if not set no file name is generated)
* @param string $key The key to adjust the filename (if not set ignored)
* @param string $default The default path if not set in Params (fallback path)
* @param bool $createIfNotSet The switch to create the folder if not found
*
* @return string On success the path or url is returned based on the type requested
*
* @since 3.0.9
*/
public static function getPath($type = 'path', $target = 'filepath', $fileType = null, $key = '', $default = '', $createIfNotSet = true)
{
// make sure to always have a string/path
if(!StringHelper::check($default))
{
$default = JPATH_SITE . '/images/';
}
// get the global settings
if (!ObjectHelper::check(self::$params))
{
self::$params = ComponentHelper::getParams('com_componentbuilder');
}
$filePath = self::$params->get($target, $default);
// check the file path (revert to default only of not a hidden file path)
if ('hiddenfilepath' !== $target && strpos($filePath, JPATH_SITE) === false)
{
$filePath = $default;
}
// create the folder if it does not exist
if ($createIfNotSet && !Folder::exists($filePath))
{
Folder::create($filePath);
}
// setup the file name
$fileName = '';
// Get basic key
$basickey = 'Th!s_iS_n0t_sAfe_buT_b3tter_then_n0thiug';
if (method_exists('ComponentbuilderHelper', "getCryptKey"))
{
$basickey = ComponentbuilderHelper::getCryptKey('basic', $basickey);
}
// check the key
if (!StringHelper::check($key))
{
$key = 'vDm';
}
// set the file name
if (StringHelper::check($fileType))
{
// set the name
$fileName = trim(md5($type . $target . $basickey . $key) . '.' . trim($fileType, '.'));
}
else
{
$fileName = trim(md5($type . $target . $basickey . $key)) . '.txt';
}
// return the url
if ('url' === $type)
{
if (strpos($filePath, JPATH_SITE) !== false)
{
$filePath = trim( str_replace( JPATH_SITE, '', $filePath), '/');
return Uri::root() . $filePath . '/' . $fileName;
}
// since the path is behind the root folder of the site, return only the root url (may be used to build the link)
return Uri::root();
}
// sanitize the path
return '/' . trim( $filePath, '/' ) . '/' . $fileName;
}
} }

View File

@ -9254,7 +9254,7 @@ class com_componentbuilderInstallerScript
echo '<a target="_blank" href="http://www.joomlacomponentbuilder.com" title="Component Builder"> echo '<a target="_blank" href="http://www.joomlacomponentbuilder.com" title="Component Builder">
<img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/> <img src="components/com_componentbuilder/assets/images/vdm-component.jpg"/>
</a> </a>
<h3>Upgrade to Version 2.12.15 Was Successful! Let us know if anything is not working as expected.</h3>'; <h3>Upgrade to Version 2.12.16 Was Successful! Let us know if anything is not working as expected.</h3>';
// Set db if not set already. // Set db if not set already.
if (!isset($db)) if (!isset($db))

View File

@ -1025,51 +1025,6 @@ abstract class ComponentbuilderHelper
} }
} }
/**
* get all the file paths in folder and sub folders
*
* @param string $folder The local path to parse
* @param array $fileTypes The type of files to get
*
* @return void
*
*/
public static function getAllFilePaths($folder, $fileTypes = array('\.php', '\.js', '\.css', '\.less'), $recurse = true, $full = true)
{
if (Folder::exists($folder))
{
// we must first store the current woking directory
$joomla = getcwd();
// we are changing the working directory to the component path
chdir($folder);
// make sure we have file type filter
if (self::checkArray($fileTypes))
{
// get the files
foreach ($fileTypes as $type)
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', $type, $recurse, $full);
}
}
elseif (self::checkString($fileTypes))
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', $fileTypes, $recurse, $full);
}
else
{
// get a list of files in the current directory tree
$files[] = Folder::files('.', '.', $recurse, $full);
}
// change back to Joomla working directory
chdir($joomla);
// return array of files
return array_map( function($file) { return str_replace('./', '/', $file); }, (array) self::mergeArrays($files));
}
return false;
}
/** /**
* get all component IDs * get all component IDs
*/ */
@ -3785,81 +3740,6 @@ abstract class ComponentbuilderHelper
return $exists; return $exists;
} }
/**
* Get the file path or url
*
* @param string $type The (url/path) type to return
* @param string $target The Params Target name (if set)
* @param string $fileType The kind of filename to generate (if not set no file name is generated)
* @param string $key The key to adjust the filename (if not set ignored)
* @param string $default The default path if not set in Params (fallback path)
* @param bool $createIfNotSet The switch to create the folder if not found
*
* @return string On success the path or url is returned based on the type requested
*
*/
public static function getFilePath($type = 'path', $target = 'filepath', $fileType = null, $key = '', $default = '', $createIfNotSet = true)
{
// make sure to always have a string/path
if(!self::checkString($default))
{
$default = JPATH_SITE . '/images/';
}
// get the global settings
if (!self::checkObject(self::$params))
{
self::$params = JComponentHelper::getParams('com_componentbuilder');
}
$filePath = self::$params->get($target, $default);
// check the file path (revert to default only of not a hidden file path)
if ('hiddenfilepath' !== $target && strpos($filePath, JPATH_SITE) === false)
{
$filePath = $default;
}
// create the folder if it does not exist
if ($createIfNotSet && !Folder::exists($filePath))
{
Folder::create($filePath);
}
// setup the file name
$fileName = '';
// Get basic key
$basickey = 'Th!s_iS_n0t_sAfe_buT_b3tter_then_n0thiug';
if (method_exists(get_called_class(), "getCryptKey"))
{
$basickey = self::getCryptKey('basic', $basickey);
}
// check the key
if (!self::checkString($key))
{
$key = 'vDm';
}
// set the file name
if (self::checkString($fileType))
{
// set the name
$fileName = trim(md5($type.$target.$basickey.$key) . '.' . trim($fileType, '.'));
}
else
{
$fileName = trim(md5($type.$target.$basickey.$key)) . '.txt';
}
// return the url
if ('url' === $type)
{
if (strpos($filePath, JPATH_SITE) !== false)
{
$filePath = trim( str_replace( JPATH_SITE, '', $filePath), '/');
return JURI::root() . $filePath . '/' . $fileName;
}
// since the path is behind the root folder of the site, return only the root url (may be used to build the link)
return JURI::root();
}
// sanitize the path
return '/' . trim( $filePath, '/' ) . '/' . $fileName;
}
/** /**
* Get the file path or url * Get the file path or url
* *