Resolved gh-444 by adding the new phpspreadsheet library, and removing the old PHPExcel library.

This commit is contained in:
2020-04-19 02:48:23 +02:00
parent c006572674
commit ddd940e968
958 changed files with 113578 additions and 221271 deletions

View File

@@ -411,6 +411,20 @@ class Get
*/
public $addEximport = false;
/**
* The Import & Export View
*
* @var array
*/
public $eximportView = array();
/**
* The Import & Export Custom Script
*
* @var array
*/
public $importCustomScripts = array();
/**
* The Tag & History Switch
*

View File

@@ -2105,8 +2105,7 @@ class Structure extends Get
))
{
$codeName = $this->componentCodeName;
// TODO needs more looking at this must be dynamic actualy
$this->notNew[] = 'PHPExcel.php';
// TODO needs more looking at this must be dynamic actually
$this->notNew[] = 'LICENSE.txt';
// do license check
$LICENSE = false;
@@ -2893,9 +2892,9 @@ class Structure extends Get
'path' => 'admin/views/import',
'rename' => 1);
$this->componentData->folders[] = $importView;
// move the PHPExel Folder
$PHPExcel = array('folder' => 'PHPExcel',
'path' => 'admin/helpers',
// move the phpspreadsheet Folder (TODO we must move this to a library package)
$PHPExcel = array('folderpath' => 'JPATH_LIBRARIES/phpspreadsheet/vendor',
'path' => '/libraries/phpspreadsheet/',
'rename' => 0);
$this->componentData->folders[] = $PHPExcel;
}
@@ -3041,17 +3040,8 @@ class Structure extends Get
&& ComponentbuilderHelper::checkArray(
$this->componentData->files
))
|| $this->addEximport
|| $this->googlechart)
{
if ($this->addEximport)
{
// move the PHPExel main file
$PHPExcel = array('file' => 'PHPExcel.php',
'path' => 'admin/helpers',
'rename' => 0);
$this->componentData->files[] = $PHPExcel;
}
if ($this->googlechart)
{
// move the google chart files

View File

@@ -466,6 +466,27 @@ class Interpretation extends Fields
return implode(PHP_EOL, $bool);
}
/**
* set Helper Dynamic Headers
*
* @param string $target_client
*
* @return string
*/
public function setHelperClassHeader($target_client)
{
$header = '';
// add only to admin client
if ('admin' === $target_client && $this->addEximport)
{
$header .= PHP_EOL . 'use PhpOffice\PhpSpreadsheet\IOFactory;';
$header .= PHP_EOL . 'use PhpOffice\PhpSpreadsheet\Spreadsheet;';
$header .= PHP_EOL . 'use PhpOffice\PhpSpreadsheet\Writer\Xlsx;';
}
return $header;
}
/**
* set Helper License Lock
*
@@ -1563,33 +1584,29 @@ class Interpretation extends Fields
return implode(PHP_EOL, $help);
}
public function setExelHelperMethods()
public function setHelperExelMethods()
{
if ($this->addEximport)
{
$exel = array();
$exel[] = PHP_EOL . PHP_EOL . $this->_t(1) . "/**";
$exel[] = $this->_t(1) . " * Prepares the xml document";
$exel[] = $this->_t(1) . " */";
$exel[] = $this->_t(1) . "* Prepares the xml document";
$exel[] = $this->_t(1) . "*/";
$exel[] = $this->_t(1)
. "public static function xls(\$rows,\$fileName = null,\$title = null,\$subjectTab = null,\$creator = '"
. $this->fileContentStatic[$this->hhh . 'COMPANYNAME'
. $this->hhh]
. "',\$description = null,\$category = null,\$keywords = null,\$modified = null)";
. "public static function xls(\$rows, \$fileName = null, \$title = null, \$subjectTab = null, \$creator = 'Joomla Component Builder', \$description = null, \$category = null,\$keywords = null, \$modified = null)";
$exel[] = $this->_t(1) . "{";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set the user";
$exel[] = $this->_t(2) . "\$user = JFactory::getUser();";
$exel[] = $this->_t(2);
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set fieldname if not set";
. " set fileName if not set";
$exel[] = $this->_t(2) . "if (!\$fileName)";
$exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3)
. "\$fileName = 'exported_'.JFactory::getDate()->format('jS_F_Y');";
$exel[] = $this->_t(2) . "}";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set modiefied if not set";
. " set modified if not set";
$exel[] = $this->_t(2) . "if (!\$modified)";
$exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3) . "\$modified = \$user->name;";
@@ -1607,36 +1624,40 @@ class Interpretation extends Fields
$exel[] = $this->_t(3) . "\$subjectTab = 'Sheet1';";
$exel[] = $this->_t(2) . "}";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " make sure the file is loaded";
. " make sure we have the composer classes loaded";
$exel[] = $this->_t(2)
. "JLoader::import('PHPExcel', JPATH_COMPONENT_ADMINISTRATOR . '/helpers');";
. "self::composerAutoload('phpspreadsheet');";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Create new PHPExcel object";
$exel[] = $this->_t(2) . "\$objPHPExcel = new PHPExcel();";
. " Create new Spreadsheet object";
$exel[] = $this->_t(2) . "\$spreadsheet = new Spreadsheet();";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Set document properties";
$exel[] = $this->_t(2)
. "\$objPHPExcel->getProperties()->setCreator(\$creator)";
$exel[] = $this->_t(3) . "->setCompany('"
. $this->fileContentStatic[$this->hhh . 'COMPANYNAME'
. $this->hhh] . "')";
$exel[] = $this->_t(2) . "\$spreadsheet->getProperties()";
$exel[] = $this->_t(3) . "->setCreator(\$creator)";
$exel[] = $this->_t(3) . "->setCompany('Joomla Component Builder')";
$exel[] = $this->_t(3) . "->setLastModifiedBy(\$modified)";
$exel[] = $this->_t(3) . "->setTitle(\$title)";
$exel[] = $this->_t(3) . "->setSubject(\$subjectTab);";
$exel[] = $this->_t(2) . "if (!\$description)";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set description";
$exel[] = $this->_t(2) . "if (\$description)";
$exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3)
. "\$objPHPExcel->getProperties()->setDescription(\$description);";
. "\$spreadsheet->getProperties()->setDescription(\$description);";
$exel[] = $this->_t(2) . "}";
$exel[] = $this->_t(2) . "if (!\$keywords)";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set keywords";
$exel[] = $this->_t(2) . "if (\$keywords)";
$exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3)
. "\$objPHPExcel->getProperties()->setKeywords(\$keywords);";
. "\$spreadsheet->getProperties()->setKeywords(\$keywords);";
$exel[] = $this->_t(2) . "}";
$exel[] = $this->_t(2) . "if (!\$category)";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " set category";
$exel[] = $this->_t(2) . "if (\$category)";
$exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3)
. "\$objPHPExcel->getProperties()->setCategory(\$category);";
. "\$spreadsheet->getProperties()->setCategory(\$category);";
$exel[] = $this->_t(2) . "}";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Some styles";
@@ -1669,20 +1690,20 @@ class Interpretation extends Fields
$exel[] = $this->_t(4) . "\$a = 'A';";
$exel[] = $this->_t(4) . "foreach (\$array as \$value){";
$exel[] = $this->_t(5)
. "\$objPHPExcel->setActiveSheetIndex(0)->setCellValue(\$a.\$i, \$value);";
. "\$spreadsheet->setActiveSheetIndex(0)->setCellValue(\$a.\$i, \$value);";
$exel[] = $this->_t(5) . "if (\$i == 1){";
$exel[] = $this->_t(6)
. "\$objPHPExcel->getActiveSheet()->getColumnDimension(\$a)->setAutoSize(true);";
. "\$spreadsheet->getActiveSheet()->getColumnDimension(\$a)->setAutoSize(true);";
$exel[] = $this->_t(6)
. "\$objPHPExcel->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$headerStyles);";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$headerStyles);";
$exel[] = $this->_t(6)
. "\$objPHPExcel->getActiveSheet()->getStyle(\$a.\$i)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->getAlignment()->setHorizontal(PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);";
$exel[] = $this->_t(5) . "} elseif (\$a === 'A'){";
$exel[] = $this->_t(6)
. "\$objPHPExcel->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$sideStyles);";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$sideStyles);";
$exel[] = $this->_t(5) . "} else {";
$exel[] = $this->_t(6)
. "\$objPHPExcel->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$normalStyles);";
. "\$spreadsheet->getActiveSheet()->getStyle(\$a.\$i)->applyFromArray(\$normalStyles);";
$exel[] = $this->_t(5) . "}";
$exel[] = $this->_t(5) . "\$a++;";
$exel[] = $this->_t(4) . "}";
@@ -1696,10 +1717,10 @@ class Interpretation extends Fields
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Rename worksheet";
$exel[] = $this->_t(2)
. "\$objPHPExcel->getActiveSheet()->setTitle(\$subjectTab);";
. "\$spreadsheet->getActiveSheet()->setTitle(\$subjectTab);";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Set active sheet index to the first sheet, so Excel opens this as the first sheet";
$exel[] = $this->_t(2) . "\$objPHPExcel->setActiveSheetIndex(0);";
$exel[] = $this->_t(2) . "\$spreadsheet->setActiveSheetIndex(0);";
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " Redirect output to a client's web browser (Excel5)";
$exel[] = $this->_t(2)
@@ -1713,29 +1734,31 @@ class Interpretation extends Fields
$exel[] = PHP_EOL . $this->_t(2) . "//" . $this->setLine(__LINE__)
. " If you're serving to IE over SSL, then the following may be needed";
$exel[] = $this->_t(2)
. "header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past";
. "header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); //"
. $this->setLine(__LINE__) . " Date in the past";
$exel[] = $this->_t(2)
. "header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified";
. "header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); //"
. $this->setLine(__LINE__) . " always modified";
$exel[] = $this->_t(2)
. "header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1";
$exel[] = $this->_t(2) . "header ('Pragma: public'); // HTTP/1.0";
. "header ('Cache-Control: cache, must-revalidate'); //"
. $this->setLine(__LINE__) . " HTTP/1.1";
$exel[] = $this->_t(2) . "header ('Pragma: public'); //"
. $this->setLine(__LINE__) . " HTTP/1.0";
$exel[] = PHP_EOL . $this->_t(2)
. "\$objWriter = PHPExcel_IOFactory::createWriter(\$objPHPExcel, 'Excel5');";
$exel[] = $this->_t(2) . "\$objWriter->save('php://output');";
. "\$writer = IOFactory::createWriter(\$spreadsheet, 'Xls');";
$exel[] = $this->_t(2) . "\$writer->save('php://output');";
$exel[] = $this->_t(2) . "jexit();";
$exel[] = $this->_t(1) . "}";
$exel[] = PHP_EOL . $this->_t(1) . "/**";
$exel[] = $this->_t(1) . " * Get CSV Headers";
$exel[] = $this->_t(1) . " */";
$exel[] = $this->_t(1) . "* Get CSV Headers";
$exel[] = $this->_t(1) . "*/";
$exel[] = $this->_t(1)
. "public static function getFileHeaders(\$dataType)";
$exel[] = $this->_t(1) . "{";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " make sure these files are loaded";
. " make sure we have the composer classes loaded";
$exel[] = $this->_t(2)
. "JLoader::import('PHPExcel', JPATH_COMPONENT_ADMINISTRATOR . '/helpers');";
$exel[] = $this->_t(2)
. "JLoader::import('ChunkReadFilter', JPATH_COMPONENT_ADMINISTRATOR . '/helpers/PHPExcel/Reader');";
. "self::composerAutoload('phpspreadsheet');";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " get session object";
$exel[] = $this->_t(2) . "\$session = JFactory::getSession();";
@@ -1747,19 +1770,18 @@ class Interpretation extends Fields
. " set the headers";
$exel[] = $this->_t(2) . "if(isset(\$package['dir']))";
$exel[] = $this->_t(2) . "{";
$exel[] = $this->_t(3)
. "\$chunkFilter = new PHPExcel_Reader_chunkReadFilter();";
$exel[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " only load first three rows";
$exel[] = $this->_t(3) . "\$chunkFilter->setRows(2,1);";
$exel[] = $this->_t(3)
. "\$chunkFilter = new PhpOffice\PhpSpreadsheet\Reader\chunkReadFilter(2,1);";
$exel[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " identify the file type";
$exel[] = $this->_t(3)
. "\$inputFileType = PHPExcel_IOFactory::identify(\$package['dir']);";
. "\$inputFileType = IOFactory::identify(\$package['dir']);";
$exel[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " create the reader for this file type";
$exel[] = $this->_t(3)
. "\$excelReader = PHPExcel_IOFactory::createReader(\$inputFileType);";
. "\$excelReader = IOFactory::createReader(\$inputFileType);";
$exel[] = $this->_t(3) . "//" . $this->setLine(__LINE__)
. " load the limiting filter";
$exel[] = $this->_t(3)
@@ -1796,6 +1818,23 @@ class Interpretation extends Fields
$exel[] = $this->_t(2) . "}";
$exel[] = $this->_t(2) . "return false;";
$exel[] = $this->_t(1) . "}";
$exel[] = PHP_EOL . $this->_t(1) . "/**";
$exel[] = $this->_t(1)
. "* Load the Composer Vendor phpspreadsheet";
$exel[] = $this->_t(1) . "*/";
$exel[] = $this->_t(1)
. "protected static function composephpspreadsheet()";
$exel[] = $this->_t(1) . "{";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " load the autoloader for phpspreadsheet";
$exel[] = $this->_t(2)
. "require_once JPATH_SITE . '/libraries/phpspreadsheet/vendor/autoload.php';";
$exel[] = $this->_t(2) . "//" . $this->setLine(__LINE__)
. " do not load again";
$exel[] = $this->_t(2)
. "self::\$composer['phpspreadsheet'] = true;";
$exel[] = PHP_EOL . $this->_t(2) . "return true;";
$exel[] = $this->_t(1) . "}";
// return the help methods
return implode(PHP_EOL, $exel);
@@ -4571,9 +4610,9 @@ class Interpretation extends Fields
* @param string $first The first key
* @param string $second The second key
* @param string $prefix The prefix to add in front of the script if found
* @param string/bool $note The switch/note to add to the script
* @param string $note The switch/note to add to the script
* @param bool $unset The switch to unset the value if found
* @param string/bool $default The switch/string to use as default return if script not found
* @param string $default The switch/string to use as default return if script not found
* @param string $sufix The sufix to add after the script if found
*
* @return mix The string/script if found or the default value if not found
@@ -14454,43 +14493,51 @@ class Interpretation extends Fields
$target = array('admin' => 'import_' . $viewName_list);
$this->buildDynamique($target, 'customimport');
// load the custom script to the files
// IMPORT_EXT_METHOD_CUSTOM <<<DYNAMIC>>>
// IMPORT_EXT_METHOD <<<DYNAMIC>>>
$this->fileContentDynamic['import_' . $viewName_list][$this->hhh
. 'IMPORT_EXT_METHOD_CUSTOM' . $this->hhh]
. 'IMPORT_EXT_METHOD' . $this->hhh]
= $this->getCustomScriptBuilder(
'php_import_ext', 'import_' . $viewName_list, PHP_EOL, null, true
'php_import_ext', 'import_' . $viewName_list, PHP_EOL, null,
true
);
// IMPORT_DISPLAY_METHOD_CUSTOM <<<DYNAMIC>>>
$this->fileContentDynamic['import_' . $viewName_list][$this->hhh
. 'IMPORT_DISPLAY_METHOD_CUSTOM' . $this->hhh]
= $this->getCustomScriptBuilder(
'php_import_display', 'import_' . $viewName_list, PHP_EOL, null,
'php_import_display', 'import_' . $viewName_list, PHP_EOL,
null,
true
);
// IMPORT_SETDATE_METHOD_CUSTOM <<<DYNAMIC>>>
// IMPORT_SETDATA_METHOD <<<DYNAMIC>>>
$this->fileContentDynamic['import_' . $viewName_list][$this->hhh
. 'IMPORT_SETDATE_METHOD_CUSTOM' . $this->hhh]
. 'IMPORT_SETDATA_METHOD' . $this->hhh]
= $this->getCustomScriptBuilder(
'php_import_setdata', 'import_' . $viewName_list, PHP_EOL, null,
'php_import_setdata', 'import_' . $viewName_list, PHP_EOL,
null,
true
);
// IMPORT_METHOD_CUSTOM <<<DYNAMIC>>>
$this->fileContentDynamic['import_' . $viewName_list][$this->hhh
. 'IMPORT_METHOD_CUSTOM' . $this->hhh]
= $this->getCustomScriptBuilder(
'php_import', 'import_' . $viewName_list, PHP_EOL, null, true
'php_import', 'import_' . $viewName_list, PHP_EOL, null,
true
);
// IMPORT_SAVE_METHOD_CUSTOM <<<DYNAMIC>>>
// IMPORT_SAVE_METHOD <<<DYNAMIC>>>
$this->fileContentDynamic['import_' . $viewName_list][$this->hhh
. 'IMPORT_SAVE_METHOD_CUSTOM' . $this->hhh]
. 'IMPORT_SAVE_METHOD' . $this->hhh]
= $this->getCustomScriptBuilder(
'php_import_save', 'import_' . $viewName_list, PHP_EOL, null, true
'php_import_save', 'import_' . $viewName_list, PHP_EOL,
null,
true
);
// IMPORT_DEFAULT_VIEW_CUSTOM <<<DYNAMIC>>>
$this->fileContentDynamic['import_' . $viewName_list][$this->hhh
. 'IMPORT_DEFAULT_VIEW_CUSTOM' . $this->hhh]
= $this->getCustomScriptBuilder(
'html_import_view', 'import_' . $viewName_list, PHP_EOL, null, true
'html_import_view', 'import_' . $viewName_list, PHP_EOL,
null,
true
);
// insure we have the view placeholders setup
@@ -25844,10 +25891,10 @@ function vdm_dkim() {
// get the other lang strings if there is any
$this->multiLangString = $this->getMultiLangStrings($values);
// start the modules language bucket (must rest every time)
$this->languages['modules'] = array();
$this->languages['modules'] = array();
$this->languages['modules'][$this->langTag] = array();
$this->languages['modules'][$this->langTag]['all']
= $this->langContent[$module->key];
= $this->langContent[$module->key];
unset($this->langContent[$module->key]);
// update insert the current lang in to DB
$this->setLangPlaceholders($values, $module->id, 'modules');
@@ -26186,10 +26233,10 @@ function vdm_dkim() {
// get the other lang strings if there is any
$this->multiLangString = $this->getMultiLangStrings($values);
// start the plugins language bucket (must rest every time)
$this->languages['plugins'] = array();
$this->languages['plugins'] = array();
$this->languages['plugins'][$this->langTag] = array();
$this->languages['plugins'][$this->langTag]['all']
= $this->langContent[$plugin->key];
= $this->langContent[$plugin->key];
unset($this->langContent[$plugin->key]);
// update insert the current lang in to DB
$this->setLangPlaceholders($values, $plugin->id, 'plugins');

View File

@@ -17,9 +17,6 @@ defined('_JEXEC') or die('Restricted access');
*/
class Infusion extends Interpretation
{
public $eximportView = array();
public $importCustomScripts = array();
public $langFiles = array();
public $removeSiteFolder = false;
public $removeSiteEditFolder = true;
@@ -664,6 +661,7 @@ class Infusion extends Interpretation
{
// this view has custom import scripting
$this->importCustomScripts[$viewName_list] = true;
// set all custom scripts
$this->setImportCustomScripts($viewName_list);
}
}
@@ -672,7 +670,7 @@ class Infusion extends Interpretation
$this->eximportView[$viewName_list] = false;
}
// set Autocheckin function
// set Auto check in function
if (isset($view['checkin']) && $view['checkin'] == 1)
{
// AUTOCHECKIN <<<DYNAMIC>>>
@@ -1063,10 +1061,7 @@ class Infusion extends Interpretation
. $this->hhh]
.= $this->setAccessSectionsJoomlaFields();
}
// HELPER_EXEL
$this->fileContentStatic[$this->hhh . 'HELPER_EXEL'
. $this->hhh]
= $this->setExelHelperMethods();
// Trigger Event: jcb_ce_onAfterBuildAdminViewContent
$this->triggerEvent(
'jcb_ce_onAfterBuildAdminViewContent',
@@ -1077,6 +1072,21 @@ class Infusion extends Interpretation
);
}
// ADMIN_HELPER_CLASS_HEADER
$this->fileContentStatic[$this->hhh . 'ADMIN_HELPER_CLASS_HEADER'
. $this->hhh]
= $this->setHelperClassHeader('admin');
// SITE_HELPER_CLASS_HEADER
$this->fileContentStatic[$this->hhh . 'SITE_HELPER_CLASS_HEADER'
. $this->hhh]
= $this->setHelperClassHeader('site');
// HELPER_EXEL
$this->fileContentStatic[$this->hhh . 'HELPER_EXEL'
. $this->hhh]
= $this->setHelperExelMethods();
// setup custom_admin_views and all needed stuff for the site
if (isset($this->componentData->custom_admin_views)
&& ComponentbuilderHelper::checkArray(
@@ -1385,10 +1395,24 @@ class Infusion extends Interpretation
// setup import files
$target = array('admin' => 'import');
$this->buildDynamique($target, 'import');
// set the controller
$this->fileContentDynamic['import'][$this->hhh . 'BLABLABLA'
. $this->hhh]
= '';
// IMPORT_EXT_METHOD <<<DYNAMIC>>>
$this->fileContentDynamic['import'][$this->hhh
. 'IMPORT_EXT_METHOD' . $this->hhh]
= PHP_EOL . PHP_EOL . $this->setPlaceholders(
ComponentbuilderHelper::getDynamicScripts('ext'), $this->placeholders
);
// IMPORT_SETDATA_METHOD <<<DYNAMIC>>>
$this->fileContentDynamic['import'][$this->hhh
. 'IMPORT_SETDATA_METHOD' . $this->hhh]
= PHP_EOL . PHP_EOL . $this->setPlaceholders(
ComponentbuilderHelper::getDynamicScripts('setdata'), $this->placeholders
);
// IMPORT_SAVE_METHOD <<<DYNAMIC>>>
$this->fileContentDynamic['import'][$this->hhh
. 'IMPORT_SAVE_METHOD' . $this->hhh]
= PHP_EOL . PHP_EOL . $this->setPlaceholders(
ComponentbuilderHelper::getDynamicScripts('save'), $this->placeholders
);
}
// ensure that the ajax model and controller is set if needed