Major code formate to try and set a standared. Added four new fields for JavaScript files
This commit is contained in:
@ -1,27 +1,28 @@
|
||||
<?php
|
||||
/*--------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.6.0
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage compiler.php
|
||||
@author Llewellyn van der Merwe <http://www.vdm.io>
|
||||
@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
|
||||
|
||||
/-----------------------------------------------------------------------------------------------------------------------------*/
|
||||
/* --------------------------------------------------------------------------------------------------------| www.vdm.io |------/
|
||||
__ __ _ _____ _ _ __ __ _ _ _
|
||||
\ \ / / | | | __ \ | | | | | \/ | | | | | | |
|
||||
\ \ / /_ _ ___| |_ | | | | _____ _____| | ___ _ __ _ __ ___ ___ _ __ | |_ | \ / | ___| |_| |__ ___ __| |
|
||||
\ \/ / _` / __| __| | | | |/ _ \ \ / / _ \ |/ _ \| '_ \| '_ ` _ \ / _ \ '_ \| __| | |\/| |/ _ \ __| '_ \ / _ \ / _` |
|
||||
\ / (_| \__ \ |_ | |__| | __/\ V / __/ | (_) | |_) | | | | | | __/ | | | |_ | | | | __/ |_| | | | (_) | (_| |
|
||||
\/ \__,_|___/\__| |_____/ \___| \_/ \___|_|\___/| .__/|_| |_| |_|\___|_| |_|\__| |_| |_|\___|\__|_| |_|\___/ \__,_|
|
||||
| |
|
||||
|_|
|
||||
/-------------------------------------------------------------------------------------------------------------------------------/
|
||||
|
||||
@version 2.6.x
|
||||
@created 30th April, 2015
|
||||
@package Component Builder
|
||||
@subpackage compiler.php
|
||||
@author Llewellyn van der Merwe <http://www.vdm.io>
|
||||
@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');
|
||||
@ -39,8 +40,9 @@ class Compiler extends Infusion
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
|
||||
private $tempPath;
|
||||
|
||||
|
||||
/*
|
||||
* The timer
|
||||
*
|
||||
@ -48,19 +50,18 @@ class Compiler extends Infusion
|
||||
*/
|
||||
private $time_start;
|
||||
private $time_end;
|
||||
public $secondsCompiled;
|
||||
|
||||
public $filepath = '';
|
||||
public $secondsCompiled;
|
||||
public $filepath = '';
|
||||
// fixed pathes
|
||||
protected $dynamicIntegration = false;
|
||||
protected $backupPath = false;
|
||||
protected $repoPath = false;
|
||||
protected $addCustomCodeAt = array();
|
||||
protected $dynamicIntegration = false;
|
||||
protected $backupPath = false;
|
||||
protected $repoPath = false;
|
||||
protected $addCustomCodeAt = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct($config = array ())
|
||||
public function __construct($config = array())
|
||||
{
|
||||
// to check the compiler speed
|
||||
$this->time_start = microtime(true);
|
||||
@ -68,17 +69,17 @@ class Compiler extends Infusion
|
||||
if (parent::__construct($config))
|
||||
{
|
||||
// set temp directory
|
||||
$comConfig = JFactory::getConfig();
|
||||
$this->tempPath = $comConfig->get('tmp_path');
|
||||
$comConfig = JFactory::getConfig();
|
||||
$this->tempPath = $comConfig->get('tmp_path');
|
||||
// set some folder paths in relation to distribution
|
||||
if ($config['addBackup'])
|
||||
{
|
||||
$this->backupPath = $this->params->get('backup_folder_path', $this->tempPath).'/'.$this->componentBackupName.'.zip';
|
||||
$this->dynamicIntegration = true;
|
||||
$this->backupPath = $this->params->get('backup_folder_path', $this->tempPath) . '/' . $this->componentBackupName . '.zip';
|
||||
$this->dynamicIntegration = true;
|
||||
}
|
||||
if ($config['addRepo'])
|
||||
{
|
||||
$this->repoPath = $this->params->get('git_folder_path', null);
|
||||
$this->repoPath = $this->params->get('git_folder_path', null);
|
||||
}
|
||||
// remove site folder if not needed (TODO add check if custom script was moved to site folder then we must do a more complex cleanup here)
|
||||
if ($this->removeSiteFolder)
|
||||
@ -86,12 +87,12 @@ class Compiler extends Infusion
|
||||
// first remove the files and folders
|
||||
$this->removeFolder($this->componentPath . '/site');
|
||||
// clear form component xml
|
||||
$xmlPath = $this->componentPath . '/'. $this->fileContentStatic['###component###']. '.xml';
|
||||
$xmlPath = $this->componentPath . '/' . $this->fileContentStatic['###component###'] . '.xml';
|
||||
$componentXML = ComponentbuilderHelper::getFileContents($xmlPath);
|
||||
$textToSite = ComponentbuilderHelper::getBetween($componentXML,'<files folder="site">','</files>');
|
||||
$textToSiteLang = ComponentbuilderHelper::getBetween($componentXML,'<languages folder="site">','</languages>');
|
||||
$componentXML = str_replace(array('<files folder="site">'.$textToSite."</files>", '<languages folder="site">'.$textToSiteLang."</languages>"), array('',''), $componentXML);
|
||||
$this->writeFile($xmlPath,$componentXML);
|
||||
$textToSite = ComponentbuilderHelper::getBetween($componentXML, '<files folder="site">', '</files>');
|
||||
$textToSiteLang = ComponentbuilderHelper::getBetween($componentXML, '<languages folder="site">', '</languages>');
|
||||
$componentXML = str_replace(array('<files folder="site">' . $textToSite . "</files>", '<languages folder="site">' . $textToSiteLang . "</languages>"), array('', ''), $componentXML);
|
||||
$this->writeFile($xmlPath, $componentXML);
|
||||
}
|
||||
// now update the files
|
||||
if (!$this->updateFiles())
|
||||
@ -100,7 +101,7 @@ class Compiler extends Infusion
|
||||
}
|
||||
// now insert into the new files
|
||||
if ($this->getCustomCode())
|
||||
{
|
||||
{
|
||||
$this->addCustomCode();
|
||||
}
|
||||
// set the lang data now
|
||||
@ -112,11 +113,9 @@ class Compiler extends Infusion
|
||||
{
|
||||
foreach ($this->langNot as $tag => $percentage)
|
||||
{
|
||||
$this->app->enqueueMessage(JText::sprintf('The <b>%s</b> language has %s% translated, you will need to translate %s% of the language strings before it will be added.',
|
||||
$tag, $percentage, $this->percentageLanguageAdd), 'Warning');
|
||||
$this->app->enqueueMessage(JText::sprintf('The <b>%s</b> language has %s% translated, you will need to translate %s% of the language strings before it will be added.', $tag, $percentage, $this->percentageLanguageAdd), 'Warning');
|
||||
}
|
||||
$this->app->enqueueMessage(JText::sprintf('<b>You can change this percentage of translated strings required in the global options of JCB.</b><br />Please watch this <a href=%s>tutorial for more help surrounding the JCB translations manager</a>.',
|
||||
'"https://youtu.be/zzAcVkn_cWU?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE" target="_blank" title="JCB Tutorial surrounding Translation Manager"'), 'Notice');
|
||||
$this->app->enqueueMessage(JText::sprintf('<b>You can change this percentage of translated strings required in the global options of JCB.</b><br />Please watch this <a href=%s>tutorial for more help surrounding the JCB translations manager</a>.', '"https://youtu.be/zzAcVkn_cWU?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE" target="_blank" title="JCB Tutorial surrounding Translation Manager"'), 'Notice');
|
||||
}
|
||||
// set why the strings were added
|
||||
$whyAddedLang = JText::sprintf('because more then %s% of the strings have been translated.', $this->percentageLanguageAdd);
|
||||
@ -129,8 +128,7 @@ class Compiler extends Infusion
|
||||
{
|
||||
foreach ($this->langSet as $tag => $percentage)
|
||||
{
|
||||
$this->app->enqueueMessage(JText::sprintf('The <b>%s</b> language has %s% translated. Was addeded %s',
|
||||
$tag, $percentage, $whyAddedLang), 'Notice');
|
||||
$this->app->enqueueMessage(JText::sprintf('The <b>%s</b> language has %s% translated. Was addeded %s', $tag, $percentage, $whyAddedLang), 'Notice');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -158,7 +156,7 @@ class Compiler extends Infusion
|
||||
$mismatch = array_unique($this->langMismatch);
|
||||
}
|
||||
// set a notice if we have a mismatch
|
||||
if (ComponentbuilderHelper::checkArray($mismatch))
|
||||
if (isset($mismatch) && ComponentbuilderHelper::checkArray($mismatch))
|
||||
{
|
||||
if (count($mismatch) > 1)
|
||||
{
|
||||
@ -171,9 +169,8 @@ class Compiler extends Infusion
|
||||
// add the mismatching issues
|
||||
foreach ($mismatch as $string)
|
||||
{
|
||||
$constant = $this->langPrefix.'_'.ComponentbuilderHelper::safeString($string,'U');
|
||||
$this->app->enqueueMessage(JText::sprintf('The <b>Joomla.JText._(\'%s\')</b> language constant for (%s) does not have a corresponding JText::Script() decalaration.',
|
||||
$constant, $string), 'Warning');
|
||||
$constant = $this->langPrefix . '_' . ComponentbuilderHelper::safeString($string, 'U');
|
||||
$this->app->enqueueMessage(JText::sprintf('The <b>Joomla.JText._(\'%s\')</b> language constant for (%s) does not have a corresponding JText::Script() decalaration.', $constant, $string), 'Warning');
|
||||
}
|
||||
$this->app->enqueueMessage('<hr />', 'Warning');
|
||||
}
|
||||
@ -186,7 +183,7 @@ class Compiler extends Infusion
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the line number in comments
|
||||
*
|
||||
@ -199,11 +196,11 @@ class Compiler extends Infusion
|
||||
{
|
||||
if ($this->debugLinenr)
|
||||
{
|
||||
return ' [Compiler '.$nr.']';
|
||||
return ' [Compiler ' . $nr . ']';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Set the dynamic data to the created fils
|
||||
*
|
||||
@ -223,26 +220,26 @@ class Compiler extends Infusion
|
||||
{
|
||||
$this->fileContentStatic['###FILENAME###'] = $static['name'];
|
||||
$php = '';
|
||||
if (ComponentbuilderHelper::checkFileType($static['name'],'php'))
|
||||
if (ComponentbuilderHelper::checkFileType($static['name'], 'php'))
|
||||
{
|
||||
$php = "<?php\n";
|
||||
}
|
||||
$string = ComponentbuilderHelper::getFileContents($static['path']);
|
||||
if (strpos($string,'###BOM###') !== false)
|
||||
if (strpos($string, '###BOM###') !== false)
|
||||
{
|
||||
list($wast,$code) = explode('###BOM###',$string);
|
||||
$string = $php.$bom.$code;
|
||||
list($wast, $code) = explode('###BOM###', $string);
|
||||
$string = $php . $bom . $code;
|
||||
$answer = $this->setPlaceholders($string, $this->fileContentStatic, 3);
|
||||
// add to zip array
|
||||
$this->writeFile($static['path'],$answer);
|
||||
$this->writeFile($static['path'], $answer);
|
||||
}
|
||||
else
|
||||
{
|
||||
$answer = $this->setPlaceholders($string, $this->fileContentStatic, 3);
|
||||
// add to zip array
|
||||
$this->writeFile($static['path'],$answer);
|
||||
$this->writeFile($static['path'], $answer);
|
||||
}
|
||||
$this->lineCount = $this->lineCount + substr_count($answer, PHP_EOL );
|
||||
$this->lineCount = $this->lineCount + substr_count($answer, PHP_EOL);
|
||||
}
|
||||
}
|
||||
// now we do the dynamic files
|
||||
@ -260,28 +257,28 @@ class Compiler extends Infusion
|
||||
// do some weird stuff to improve the verion and dates being added to the license
|
||||
$this->fixLicenseValues($file);
|
||||
$php = '';
|
||||
if (ComponentbuilderHelper::checkFileType($file['name'],'php'))
|
||||
if (ComponentbuilderHelper::checkFileType($file['name'], 'php'))
|
||||
{
|
||||
$php = "<?php\n";
|
||||
}
|
||||
$string = ComponentbuilderHelper::getFileContents($file['path']);
|
||||
if (strpos($string,'###BOM###') !== false)
|
||||
if (strpos($string, '###BOM###') !== false)
|
||||
{
|
||||
list($bin,$code) = explode('###BOM###',$string);
|
||||
$string = $php.$bom.$code;
|
||||
list($bin, $code) = explode('###BOM###', $string);
|
||||
$string = $php . $bom . $code;
|
||||
$answer = $this->setPlaceholders($string, $this->fileContentStatic, 3);
|
||||
$answer = $this->setPlaceholders($answer, $this->fileContentDynamic[$view], 3);
|
||||
// add to zip array
|
||||
$this->writeFile($file['path'],$answer);
|
||||
$this->writeFile($file['path'], $answer);
|
||||
}
|
||||
else
|
||||
{
|
||||
$answer = $this->setPlaceholders($string, $this->fileContentStatic, 3);
|
||||
$answer = $this->setPlaceholders($answer, $this->fileContentDynamic[$view], 3);
|
||||
// add to zip array
|
||||
$this->writeFile($file['path'],$answer);
|
||||
$this->writeFile($file['path'], $answer);
|
||||
}
|
||||
$this->lineCount = $this->lineCount + substr_count($answer, PHP_EOL );
|
||||
$this->lineCount = $this->lineCount + substr_count($answer, PHP_EOL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -295,7 +292,7 @@ class Compiler extends Infusion
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* move the local update server xml file to a remote ftp server
|
||||
*
|
||||
@ -307,7 +304,7 @@ class Compiler extends Infusion
|
||||
// move the update server to host
|
||||
if ($this->componentData->add_update_server == 1 && $this->componentData->update_server_target == 1 && isset($this->updateServerFileName) && $this->dynamicIntegration)
|
||||
{
|
||||
$xml_update_server_path = $this->componentPath.'/'.$this->updateServerFileName.'.xml';
|
||||
$xml_update_server_path = $this->componentPath . '/' . $this->updateServerFileName . '.xml';
|
||||
// make sure we have the correct file
|
||||
if (JFile::exists($xml_update_server_path) && isset($this->componentData->update_server_ftp))
|
||||
{
|
||||
@ -321,7 +318,7 @@ class Compiler extends Infusion
|
||||
$this->componentData->update_server_ftp = rtrim($basic->decryptString($this->componentData->update_server_ftp), "\0");
|
||||
}
|
||||
// now move the file
|
||||
$this->moveFileToFtpServer($xml_update_server_path,$this->componentData->update_server_ftp);
|
||||
$this->moveFileToFtpServer($xml_update_server_path, $this->componentData->update_server_ftp);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -345,7 +342,7 @@ class Compiler extends Infusion
|
||||
}
|
||||
else
|
||||
{
|
||||
$value = '@update number '.$value.' of this MVC';
|
||||
$value = '@update number ' . $value . ' of this MVC';
|
||||
}
|
||||
}
|
||||
$this->fileContentStatic[$key] = $value;
|
||||
@ -362,34 +359,34 @@ class Compiler extends Infusion
|
||||
protected function setCountingStuff()
|
||||
{
|
||||
// what is the size in terms of an A4 book
|
||||
$this->pageCount = round($this->lineCount / 56);
|
||||
$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);
|
||||
$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);
|
||||
$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;
|
||||
$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);
|
||||
$this->projectWeekTime = round($this->actualTotalDays / 5, 1);
|
||||
$this->projectMonthTime = round($this->actualTotalDays / 24, 1);
|
||||
}
|
||||
|
||||
|
||||
private function buildReadMe()
|
||||
{
|
||||
// do a final run to update the readme file
|
||||
@ -408,7 +405,7 @@ class Compiler extends Infusion
|
||||
}
|
||||
unset($this->newFiles['static']);
|
||||
}
|
||||
|
||||
|
||||
private function setReadMe($path)
|
||||
{
|
||||
// set readme data if not set already
|
||||
@ -421,45 +418,45 @@ class Compiler extends Infusion
|
||||
// update the file
|
||||
$answer = $this->setPlaceholders($string, $this->fileContentStatic);
|
||||
// add to zip array
|
||||
$this->writeFile($path,$answer);
|
||||
}
|
||||
|
||||
$this->writeFile($path, $answer);
|
||||
}
|
||||
|
||||
private function buildReadMeData()
|
||||
{
|
||||
// set some defaults
|
||||
$this->fileContentStatic['###LINE_COUNT###'] = $this->lineCount;
|
||||
$this->fileContentStatic['###FIELD_COUNT###'] = $this->fieldCount;
|
||||
$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;
|
||||
$this->fileContentStatic['###LINE_COUNT###'] = $this->lineCount;
|
||||
$this->fileContentStatic['###FIELD_COUNT###'] = $this->fieldCount;
|
||||
$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()
|
||||
@ -468,15 +465,15 @@ class Compiler extends Infusion
|
||||
if (ComponentbuilderHelper::checkString($this->repoPath))
|
||||
{
|
||||
// set the repo path
|
||||
$repoFullPath = $this->repoPath.'/com_'.$this->componentData->sales_name.'__joomla_'.$this->joomlaVersion;
|
||||
$repoFullPath = $this->repoPath . '/com_' . $this->componentData->sales_name . '__joomla_' . $this->joomlaVersion;
|
||||
// remove old data
|
||||
$this->removeFolder($repoFullPath, $this->componentData->toignore);
|
||||
// set the new data
|
||||
JFolder::copy($this->componentPath, $repoFullPath, '', true);
|
||||
}
|
||||
// the name of the zip file to create
|
||||
$this->filepath = $this->tempPath.'/'.$this->componentFolderName.'.zip';
|
||||
|
||||
$this->filepath = $this->tempPath . '/' . $this->componentFolderName . '.zip';
|
||||
|
||||
//create the zip file
|
||||
if (ComponentbuilderHelper::zip($this->componentPath, $this->filepath))
|
||||
{
|
||||
@ -485,7 +482,7 @@ class Compiler extends Infusion
|
||||
{
|
||||
JFile::copy($this->filepath, $this->backupPath);
|
||||
}
|
||||
|
||||
|
||||
// move to sales server host
|
||||
if ($this->componentData->add_sales_server == 1 && $this->dynamicIntegration)
|
||||
{
|
||||
@ -502,7 +499,7 @@ class Compiler extends Infusion
|
||||
$this->componentData->sales_server_ftp = rtrim($basic->decryptString($this->componentData->sales_server_ftp), "\0");
|
||||
}
|
||||
// now move the file
|
||||
$this->moveFileToFtpServer($this->filepath, $this->componentData->sales_server_ftp, $this->componentSalesName.'.zip',false);
|
||||
$this->moveFileToFtpServer($this->filepath, $this->componentData->sales_server_ftp, $this->componentSalesName . '.zip', false);
|
||||
}
|
||||
}
|
||||
// remove the component folder since we are done
|
||||
@ -513,7 +510,7 @@ class Compiler extends Infusion
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private function moveFileToFtpServer($localPath, $clientInput, $remote = null, $removeLocal = true)
|
||||
{
|
||||
// get the ftp opbject
|
||||
@ -522,7 +519,7 @@ class Compiler extends Infusion
|
||||
if ($ftp instanceof JClientFtp && $ftp->isConnected())
|
||||
{
|
||||
// move the file
|
||||
if ($ftp->store($localPath,$remote))
|
||||
if ($ftp->store($localPath, $remote))
|
||||
{
|
||||
// if moved then remove the file from repository
|
||||
if ($removeLocal)
|
||||
@ -534,7 +531,7 @@ class Compiler extends Infusion
|
||||
$ftp->quit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function getFTP($clientInput)
|
||||
{
|
||||
$s1GnAtnr3 = md5($clientInput);
|
||||
@ -581,41 +578,39 @@ class Compiler extends Infusion
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
protected function addCustomCode()
|
||||
{
|
||||
// reset all these
|
||||
$this->clearFromPlaceHolders('view');
|
||||
$this->clearFromPlaceHolders('arg');
|
||||
foreach($this->customCode as $nr => $target)
|
||||
foreach ($this->customCode as $nr => $target)
|
||||
{
|
||||
// reset each time per custom code
|
||||
$fingerPrint = array();
|
||||
if (isset($target['hashtarget'][0]) && $target['hashtarget'][0] > 3
|
||||
&& isset($target['path']) && ComponentbuilderHelper::checkString($target['path'])
|
||||
&& isset($target['hashtarget'][1]) && ComponentbuilderHelper::checkString($target['hashtarget'][1]))
|
||||
if (isset($target['hashtarget'][0]) && $target['hashtarget'][0] > 3 && isset($target['path']) && ComponentbuilderHelper::checkString($target['path']) && isset($target['hashtarget'][1]) && ComponentbuilderHelper::checkString($target['hashtarget'][1]))
|
||||
{
|
||||
$file = $this->componentPath . '/'. $target['path'];
|
||||
$size = (int) $target['hashtarget'][0];
|
||||
$hash = $target['hashtarget'][1];
|
||||
$cut = $size - 1;
|
||||
$found = false;
|
||||
$bites = 0;
|
||||
$lineBites = array();
|
||||
$replace = array();
|
||||
$file = $this->componentPath . '/' . $target['path'];
|
||||
$size = (int) $target['hashtarget'][0];
|
||||
$hash = $target['hashtarget'][1];
|
||||
$cut = $size - 1;
|
||||
$found = false;
|
||||
$bites = 0;
|
||||
$lineBites = array();
|
||||
$replace = array();
|
||||
if ($target['type'] == 1 && isset($target['hashendtarget'][0]) && $target['hashendtarget'][0] > 0)
|
||||
{
|
||||
$foundEnd = false;
|
||||
$sizeEnd = (int) $target['hashendtarget'][0];
|
||||
$hashEnd = $target['hashendtarget'][1];
|
||||
$cutEnd = $sizeEnd - 1;
|
||||
$foundEnd = false;
|
||||
$sizeEnd = (int) $target['hashendtarget'][0];
|
||||
$hashEnd = $target['hashendtarget'][1];
|
||||
$cutEnd = $sizeEnd - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// replace to the end of the file
|
||||
$foundEnd = true;
|
||||
$foundEnd = true;
|
||||
}
|
||||
$counter = 0;
|
||||
$counter = 0;
|
||||
// check if file exist
|
||||
if (JFile::exists($file))
|
||||
{
|
||||
@ -635,12 +630,12 @@ class Compiler extends Infusion
|
||||
// check lines each time if it fits our target
|
||||
if (count($fingerPrint) === $sizeEnd && !$foundEnd)
|
||||
{
|
||||
$fingerTest = md5(implode('',$fingerPrint));
|
||||
$fingerTest = md5(implode('', $fingerPrint));
|
||||
if ($fingerTest === $hashEnd)
|
||||
{
|
||||
// we are done here
|
||||
$foundEnd = true;
|
||||
$replace = array_slice($replace, 0, count($replace)-$sizeEnd);
|
||||
$replace = array_slice($replace, 0, count($replace) - $sizeEnd);
|
||||
break;
|
||||
}
|
||||
else
|
||||
@ -659,7 +654,7 @@ class Compiler extends Infusion
|
||||
// check lines each time if it fits our target
|
||||
if (count($fingerPrint) === $size && !$found)
|
||||
{
|
||||
$fingerTest = md5(implode('',$fingerPrint));
|
||||
$fingerTest = md5(implode('', $fingerPrint));
|
||||
if ($fingerTest === $hash)
|
||||
{
|
||||
// we are done here
|
||||
@ -680,8 +675,8 @@ class Compiler extends Infusion
|
||||
}
|
||||
if ($found)
|
||||
{
|
||||
$placeholder = $this->getPlaceHolder((int) $target['comment_type'].$target['type'], $target['id']);
|
||||
$data = $placeholder['start'] . PHP_EOL . $this->setPlaceholders($target['code'], $this->placeholders). $placeholder['end'] . PHP_EOL;
|
||||
$placeholder = $this->getPlaceHolder((int) $target['comment_type'] . $target['type'], $target['id']);
|
||||
$data = $placeholder['start'] . PHP_EOL . $this->setPlaceholders($target['code'], $this->placeholders) . $placeholder['end'] . PHP_EOL;
|
||||
if ($target['type'] == 2)
|
||||
{
|
||||
// found it now add code from the next line
|
||||
@ -732,12 +727,12 @@ class Compiler extends Infusion
|
||||
$code = explode(PHP_EOL, $target['code']);
|
||||
$code = PHP_EOL . $commentType . implode($_commentType . PHP_EOL . $commentType, $code) . $_commentType . PHP_EOL;
|
||||
// get place holders
|
||||
$placeholder = $this->getPlaceHolder((int) $target['comment_type'].$target['type'], $target['id']);
|
||||
$placeholder = $this->getPlaceHolder((int) $target['comment_type'] . $target['type'], $target['id']);
|
||||
// build the data
|
||||
$data = $placeholder['start'] . $code . $placeholder['end']. PHP_EOL;
|
||||
$data = $placeholder['start'] . $code . $placeholder['end'] . PHP_EOL;
|
||||
// get the bites before insertion
|
||||
$bitBucket = array();
|
||||
foreach($lineBites as $line => $value)
|
||||
$bitBucket = array();
|
||||
foreach ($lineBites as $line => $value)
|
||||
{
|
||||
if ($line < $target['from_line'])
|
||||
{
|
||||
@ -775,7 +770,8 @@ class Compiler extends Infusion
|
||||
// done close both files
|
||||
fclose($fpFile);
|
||||
fclose($fpTemp);
|
||||
|
||||
|
||||
// any help to improve this is welcome...
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user