getPart($group, $part) )
{
ecrHTML::displayMessage(array(JText::_('Unable to load part').' [group, part]', $group, $part), 'error');
return;
}
if( ! $easyProject->prepareAddPart($ebc_project))
{
ecrHTML::displayMessage(array(JText::_('Unable to prepare project').' [project, group, part]', $ebc_project, $group, $part), 'error');
return false;
}
//--Setup logging
$buildopts = JRequest::getVar('buildopts',array());
JLoader::import('helpers.logger', JPATH_COMPONENT);
$logName = date('ymd_Hi').'_add_part.log';
$logger = new easyLogger($logName, $buildopts);
$options = new JObject();
$options->ebc_project = $ebc_project;
$options->group = $group;
$options->part = $part;
$options->pathSource = JPATH_COMPONENT.DS.'templates'.DS.'parts'.DS.$group.DS.$part.DS.'tmpl';
$string = '';
$string .= '
Add Element
';
$string .= 'Project: '.$ebc_project.BR;
$string .= 'Group: '.$group.BR;
$string .= 'Part: '.$part.BR;
$string .= 'Source:'.BR.$options->pathSource;
$string .= '
';
$logger->log($string);
if( ! $ePart->insert($easyProject, $options, $logger) )
{
ecrHTML::displayMessage(array(JText::_('Unable to insert part').' [group, part]', $group, $part), 'error');
$logger->writeLog();
}
else
{
ecrHTML::displayMessage(array(JText::_('Part added').' [group, part]', $group, $part));
$logger->writeLog();
}
JRequest::setVar('task', 'stuffer');
JRequest::setVar('view', 'stuffer');
JRequest::setVar('file', '');
parent::display();
}//function
function save()
{
$old_task = JRequest::getVar('old_task', NULL);
$ebc_project = JRequest::getVar('ebc_project', NULL);
$file_name = JRequest::getVar('file_name', NULL);
JLoader::import('helpers.file', JPATH_COMPONENT);
$file = new EasyFile();
$ret = $file->saveFile();
JError::raiseNotice(100, $ret);
$task =( $old_task ) ? $old_task : 'stuffer';
JRequest::setVar( 'task' , $task);
JRequest::setVar( 'view' , 'stuffer');
parent::display();
}//function
function save_params()
{
JRequest::setVar('view', 'stuffer');
JRequest::setVar('task', 'stuffer');
//--temp solution..
$saveMe = false;
/**
* Parameter definition
* Object[name] = array(extra fields)
* TODO define elsewhere for php and js
*/
$paramTypes = array(
'calendar' => array('format')
, 'category' => array('class', 'section', 'scope')
, 'editors' => array()
, 'filelist' => array('directory', 'filter', 'exclude', 'hide_none', 'hide_default', 'stripext')
, 'folderlist' => array('directory', 'filter', 'exclude', 'hide_none', 'hide_default')
, 'helpsites' => array()
, 'hidden' => array('class')
, 'imagelist' => array('directory', 'filter', 'exclude', 'hide_none', 'hide_default', 'stripext')
, 'languages' => array('client')
, 'list' => array()
, 'menu' => array()
, 'menuitem' => array('state')
, 'password' => array('class', 'size')
, 'radio' => array()
, 'section' => array()
, 'spacer' => array()
, 'sql' => array('query', 'key_field', 'value_field')
, 'text' => array('class', 'size')
, 'textarea' => array('rows', 'cols', 'class')
, 'timezones' => array()
, 'usergroup' => array('class', 'multiple', 'size')
);
$defaultFields = array( 'name', 'label', 'default', 'description');
$requestParams = JRequest::getVar('params', array());
$selected_xml = JRequest::getVar('selected_xml', '');
if( ! count($requestParams))
{
JError::raiseWarning(100, 'No params?');
parent::display();
return;
}
//--init XML parser
$manifest =& JFactory::getXMLParser();
if( ! $manifest )
{
$this->setError( 'Could not create XML builder' );
return false;
}
$fileName = JFile::getName($selected_xml);
$rootElementName = 'root';
$config = array();
$config['type'] = 'unknown';
switch($fileName)
{
case 'config.xml':
//--temp solution..
$rootElementName = 'config';
$config['type'] = 'config';
$saveMe = true;
break;
default:
JError::raiseWarning(100, JText::sprintf('The type %s is not supported yet.. remember - this is a beta ;)', $fileName));
JError::raiseWarning(100, JText::_('But you can copy + paste the code below to your params section..'));
break;
}//switch
if( ! $node = $manifest->createElement($rootElementName) )
{
echo( 'Could not create node!' );
return false;
}
switch( $config['type'] )
{
case 'component':
$node->setAttribute( 'type', $config['type'] );
$node->setAttribute( 'version', '1.5.0' );
break;
}//switch
$manifest->setDocumentElement( $node );
if( ! $root =& $manifest->documentElement)
{
echo( 'Could not obtain root element!' );
return false;
}
foreach( $requestParams as $groupName=>$Elements )
{
$paramsElement =& $manifest->createElement( 'params' );
if( $groupName != '_default' )
{
$paramsElement->setAttribute( 'group', $groupName );
}
$root->appendChild( $paramsElement );
foreach ($Elements as $value=>$data)
{
$paramElement =& $manifest->createElement( 'param' );
# $paramElement->setAttribute( 'name', $value );
$paramType = '';
foreach ($data as $k=>$v)
{
if( $k == 'children')
{
//--we have options
foreach ($v as $pos=>$child)
{
$childElement =& $manifest->createElement( 'option' );
foreach ($child as $childK=>$childV)
{
if( $childK == 'data' )
{
$childElement->setText( $childV );
}
else
{
$childElement->setAttribute( $childK, $childV );
}
}//foreach;
$paramElement->appendChild( $childElement );
}//foreach
}
else
{
if( $k == 'type' )
{
if( ! array_key_exists($v, $paramTypes))
{
JError::raiseWarning(100, 'undefined type:'.$v);
$paramElement->setAttribute( $k, $v );
}
else
{
$paramType = $v;
$paramElement->setAttribute( $k, $v );
}
}
else
{
if( ! $paramType )
{
//--no type set so far (bad) we include the element anyway..
$paramElement->setAttribute( $k, $v );
}
else
{
if( in_array($k, $paramTypes[$paramType])
|| in_array($k, $defaultFields))
{
$paramElement->setAttribute( $k, $v );
}
}
}
}
}//foreach
$paramsElement->appendChild( $paramElement );
}//foreach
}//foreach
$manifest->setXMLDeclaration( '' );
if( $saveMe )
{
if( ! $manifest->saveXML_utf8( JPATH_SITE.DS.$selected_xml, true ))
{
JError::raiseWarning(100, JText::_('Could not save XML file'));
return false;
}
else
{
JError::raiseNotice(100, JText::_('The XML file has been saved'));
}
if( defined('ECR_DEBUG'))
{
echo '';
echo $manifest->toNormalizedString( true );
echo '
';
}
}
else
{
echo '';
echo $manifest->toNormalizedString( true );
echo '
';
}
parent::display();
}//function
/**
* save a configuration file
*/
function saveconfig()
{
JLoader::import('helpers.builder', JPATH_COMPONENT);
$easyBuilder = new EasyBuilder();
$ebc_project = JRequest::getVar('ebc_project', '');
if( $easyBuilder->updateConfigFile($ebc_project) )
{
JError::raiseNotice(100, JText::_('The file has been saved'));
}
else
{
JError::raiseWarning(100, JText::_('The file could not be saved'));
}
JRequest::setVar('view', 'stuffer');
JRequest::setVar('task', 'buildfile');
parent::display();
}//function
function delete_project_full()
{
$this->delete_project(true);
}//function
/**
* Deletes a project
*
* @param bool $complete true to delete the whole project with J! installer
*/
function delete_project($complete=false)
{
//--Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );
$ebc_project = JRequest::getVar('ebc_project', NULL);
JLoader::import('helpers.project', JPATH_COMPONENT);
$easyProject = new easyProject();
$url = 'index.php?option='.com_EASY_APP_ELKUKU_1;
if( $easyProject->remove($complete) )
{
$this->setRedirect($url, sprintf(JText::_('The Project %s has been removed'), $ebc_project));
$this->redirect();
}
else
{
JError::raiseWarning(100, JText::sprintf('The Project %s could not be removed', $ebc_project) );
}
JRequest::setVar('view', 'easycreator');
parent::display();
}// function
}//class