Added the [Run Expansion] button option for faster compile and install option of selected components.

This commit is contained in:
2018-09-20 21:17:07 +02:00
parent b208f4f616
commit e71ba204ca
26 changed files with 530 additions and 47 deletions

View File

@ -35,11 +35,84 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
return;
}
/**
* Import an spreadsheet.
* Run the Expansion
*
* @return void
*/
public function runExpansion()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// check if user has the right
$user = JFactory::getUser();
// set page redirect
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=compiler', false);
// set massage
$message = JText::_('COM_COMPONENTBUILDER_YOU_DO_NOT_HAVE_PERMISSION_TO_RUN_THE_EXPANSION_MODULE');
// check if this user has the right to run expansion
if($user->authorise('compiler.run_expansion', 'com_componentbuilder'))
{
// set massage
$message = JText::_('COM_COMPONENTBUILDER_EXPANSION_FAILED_PLEASE_CHECK_YOUR_SETTINGS_IN_THE_GLOBAL_OPTIONS_OF_JCB_UNDER_THE_DEVELOPMENT_METHOD_TAB');
// run expansion via API
$result = ComponentbuilderHelper::getFileContents(JURI::root() . 'index.php?option=com_componentbuilder&task=api.expand');
// is there a message returned
if (!is_numeric($result) && ComponentbuilderHelper::checkString($result))
{
$this->setRedirect($redirect_url, $result);
return true;
}
elseif (is_numeric($result) && 1 == $result)
{
$message = JText::_('COM_COMPONENTBUILDER_BTHE_EXPANSION_WAS_SUCCESSFULLYB_TO_SEE_MORE_INFORMATION_CHANGE_THE_BRETURN_OPTIONS_FOR_BUILDB_TO_BDISPLAY_MESSAGEB_IN_THE_GLOBAL_OPTIONS_OF_JCB_UNDER_THE_DEVELOPMENT_METHOD_TABB');
$this->setRedirect($redirect_url, $message, 'message');
return true;
}
}
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
/**
* Clear tmp folder
*
* @return true on success
*/
public function clearTmp()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// check if user has the right
$user = JFactory::getUser();
// set page redirect
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=compiler', false);
$message = JText::_('COM_COMPONENTBUILDER_COULD_NOT_CLEAR_THE_TMP_FOLDER');
if($user->authorise('core.admin', 'com_componentbuilder'))
{
// get the model
$model = $this->getModel('compiler');
// get tmp folder
$comConfig = JFactory::getConfig();
$tmp = $comConfig->get('tmp_path');
if ($model->emptyFolder($tmp))
{
$message = JText::_('COM_COMPONENTBUILDER_BTHE_TMP_FOLDER_HAS_BEEN_CLEAR_SUCCESSFULLYB');
$this->setRedirect($redirect_url, $message, 'message');
return true;
}
}
$this->setRedirect($redirect_url, $message, 'error');
return false;
}
/**
* Run the Compiler
*
* @return true on success
*/
public function compiler()
{
// Check for request forgeries
@ -125,33 +198,11 @@ class ComponentbuilderControllerCompiler extends JControllerAdmin
return false;
}
public function clearTmp()
{
// Check for request forgeries
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
// check if user has the right
$user = JFactory::getUser();
// set page redirect
$redirect_url = JRoute::_('index.php?option=com_componentbuilder&view=compiler', false);
$message = 'Could not clear the tmp folder';
if($user->authorise('core.admin', 'com_componentbuilder'))
{
// get the model
$model = $this->getModel('compiler');
// get tmp folder
$comConfig = JFactory::getConfig();
$tmp = $comConfig->get('tmp_path');
if ($model->emptyFolder($tmp))
{
$message = '<b>The tmp folder has been clear successfully!</b>';
$this->setRedirect($redirect_url,$message,'message');
return true;
}
}
$this->setRedirect($redirect_url,$message,'error');
return false;
}
/**
* Install Compiled Extension
*
* @return true on success
*/
public function installExtention()
{
// Check for request forgeries