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