execution order fix to insure folders are loaded

This commit is contained in:
Llewellyn van der Merwe 2017-12-12 02:28:35 +02:00
parent 422cea1bed
commit 27ff09226b
No known key found for this signature in database
GPG Key ID: CAD7B16D27AF28C5
4 changed files with 50 additions and 19 deletions

View File

@ -111,7 +111,7 @@ Component Builder is mapped as a component in itself on my local development env
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Component Builder](http://vdm.bz/component-builder) + *Name*: [Component Builder](http://vdm.bz/component-builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 11th December, 2017 + *Last Build*: 12th December, 2017
+ *Version*: 2.6.6 + *Version*: 2.6.6
+ *Copyright*: Copyright (C) 2015. All Rights Reserved + *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html

View File

@ -111,7 +111,7 @@ Component Builder is mapped as a component in itself on my local development env
+ *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io) + *Author*: [Llewellyn van der Merwe](mailto:joomla@vdm.io)
+ *Name*: [Component Builder](http://vdm.bz/component-builder) + *Name*: [Component Builder](http://vdm.bz/component-builder)
+ *First Build*: 30th April, 2015 + *First Build*: 30th April, 2015
+ *Last Build*: 11th December, 2017 + *Last Build*: 12th December, 2017
+ *Version*: 2.6.6 + *Version*: 2.6.6
+ *Copyright*: Copyright (C) 2015. All Rights Reserved + *Copyright*: Copyright (C) 2015. All Rights Reserved
+ *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html + *License*: GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html

View File

@ -327,17 +327,17 @@ class Structure extends Get
$this->componentPath = $this->compilerPath.'/'.$this->componentFolderName; $this->componentPath = $this->compilerPath.'/'.$this->componentFolderName;
// set the template path for custom // set the template path for custom
$this->templatePathCustom = $this->params->get('custom_folder_path', JPATH_COMPONENT_ADMINISTRATOR.'/custom'); $this->templatePathCustom = $this->params->get('custom_folder_path', JPATH_COMPONENT_ADMINISTRATOR.'/custom');
// set the Joomla Version Data
$this->joomlaVersionData = $this->setJoomlaVersionData();
// make sure there is no old build // make sure there is no old build
$this->removeFolder($this->componentPath); $this->removeFolder($this->componentPath);
// load the libraries files/folders and url's
$this->setLibaries();
// set the Joomla Version Data
$this->joomlaVersionData = $this->setJoomlaVersionData();
// set the new folders // set the new folders
if (!$this->setFolders()) if (!$this->setFolders())
{ {
return false; return false;
} }
// load the libraries files/folders and url's
$this->setLibaries();
// set all static folders and files // set all static folders and files
if (!$this->setStatic()) if (!$this->setStatic())
{ {
@ -348,7 +348,6 @@ class Structure extends Get
{ {
return false; return false;
} }
return true; return true;
} }
return false; return false;
@ -381,6 +380,22 @@ class Structure extends Get
{ {
if (ComponentbuilderHelper::checkArray($this->libraries)) if (ComponentbuilderHelper::checkArray($this->libraries))
{ {
// creat the main component folder
if (!JFolder::exists($this->componentPath))
{
JFolder::create($this->componentPath);
// count the folder created
$this->folderCount++;
$this->indexHTML('');
}
// create media path if not set
if (!JFolder::exists( $this->componentPath . '/media'))
{
JFolder::create($this->componentPath . '/media');
// count the folder created
$this->folderCount++;
$this->indexHTML('/media');
}
foreach($this->libraries as $id => &$library) foreach($this->libraries as $id => &$library)
{ {
if (ComponentbuilderHelper::checkObject($library)) if (ComponentbuilderHelper::checkObject($library))
@ -407,20 +422,26 @@ class Structure extends Get
if (isset($library->urls) && ComponentbuilderHelper::checkArray($library->urls)) if (isset($library->urls) && ComponentbuilderHelper::checkArray($library->urls))
{ {
// build media folder path // build media folder path
$mediaPath = '/media/' . strtolower( preg_replace('/\s+/', '-', ComponentbuilderHelper::safeString($library->name, 'filename', ' ', false))); $libFolder = strtolower( preg_replace('/\s+/', '-', ComponentbuilderHelper::safeString($library->name, 'filename', ' ', false)));
// create media path if not set $mediaPath = '/media/' . $libFolder;
if (!JFolder::exists( $this->componentPath . $mediaPath)) // should we add the local folder
{ $addLocalFolder = false;
JFolder::create($this->componentPath . $mediaPath);
// count the folder created
$this->folderCount++;
$this->indexHTML($mediaPath);
}
// add to component urls // add to component urls
foreach ($library->urls as $n => &$url) foreach ($library->urls as $n => &$url)
{ {
if (isset($url['type']) && $url['type'] > 1 && isset($url['url']) && ComponentbuilderHelper::checkString($url['url'])) if (isset($url['type']) && $url['type'] > 1 && isset($url['url']) && ComponentbuilderHelper::checkString($url['url']))
{ {
// create media/lib path if not set
if (!JFolder::exists( $this->componentPath . $mediaPath))
{
JFolder::create($this->componentPath . $mediaPath);
// count the folder created
$this->folderCount++;
$this->indexHTML($mediaPath);
}
// add local folder
$addLocalFolder = true;
// set file name
$fileName = basename($url['url']); $fileName = basename($url['url']);
// get the file contents // get the file contents
$data = ComponentbuilderHelper::getFileContents($url['url']); $data = ComponentbuilderHelper::getFileContents($url['url']);
@ -455,6 +476,16 @@ class Structure extends Get
$this->fileCount++; $this->fileCount++;
} }
} }
// only add if local
if ($addLocalFolder)
{
// check if we sould add it to the media xml list
if (!isset($this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###']))
{
$this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###'] = '';
}
$this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###'] .= PHP_EOL."\t\t<folder>".$libFolder."</folder>";
}
} }
// if config fields are found load into component config (avoiding dublicates) // if config fields are found load into component config (avoiding dublicates)
if (isset($library->how) && $library->how > 1 && isset($library->config) && ComponentbuilderHelper::checkArray($library->config)) if (isset($library->how) && $library->how > 1 && isset($library->config) && ComponentbuilderHelper::checkArray($library->config))
@ -497,7 +528,7 @@ class Structure extends Get
{ {
if (ComponentbuilderHelper::checkObject($this->joomlaVersionData->create)) if (ComponentbuilderHelper::checkObject($this->joomlaVersionData->create))
{ {
// creat the main componet folder // creat the main component folder
if (!JFolder::exists($this->componentPath)) if (!JFolder::exists($this->componentPath))
{ {
JFolder::create($this->componentPath); JFolder::create($this->componentPath);
@ -1099,7 +1130,7 @@ class Structure extends Get
{ {
$this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###'] = ''; $this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###'] = '';
} }
if (count($pathArray) == 1 && $firstFolder === 'media') if (count($pathArray) >= 1 && $firstFolder === 'media')
{ {
$this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###'] .= PHP_EOL."\t\t<folder>".$lastFolder."</folder>"; $this->fileContentStatic['###EXSTRA_MEDIA_FOLDERS###'] .= PHP_EOL."\t\t<folder>".$lastFolder."</folder>";
} }

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="3.2" method="upgrade"> <extension type="component" version="3.2" method="upgrade">
<name>COM_COMPONENTBUILDER</name> <name>COM_COMPONENTBUILDER</name>
<creationDate>11th December, 2017</creationDate> <creationDate>12th December, 2017</creationDate>
<author>Llewellyn van der Merwe</author> <author>Llewellyn van der Merwe</author>
<authorEmail>joomla@vdm.io</authorEmail> <authorEmail>joomla@vdm.io</authorEmail>
<authorUrl>http://vdm.bz/component-builder</authorUrl> <authorUrl>http://vdm.bz/component-builder</authorUrl>