/** * Insert a new part from templates/parts folder. * * @return void */ public function new_element() { $input = JFactory::getApplication()->input; $ecr_project = $input->get('ecr_project'); $group = $input->get('group'); $part = $input->get('part'); $element = $input->get('element'); $scope = $input->get('element_scope'); //$old_task = $input->get('old_task', 'stuffer'); //-- Get the project try { $project = EcrProjectHelper::getProject(); } catch (Exception $e) { EcrHtml::message($e); parent::display(); return; } $input->set('view', 'stuffer'); $input->set('file', ''); if (!($ePart = EcrProjectHelper::getPart($group, $part, $element, $scope))) { EcrHtml::message(array(jgettext('Unable to load part') . ' [group, part]', $group, $part), 'error'); parent::display(); return; } if (!$project->prepareAddPart($ecr_project)) { EcrHtml::message(array(jgettext('Unable to prepare part') . ' [group, part]', $group, $part), 'error'); parent::display(); return; } //-- Setup logging $buildOpts = $input->get('buildopts', array(), 'array'); $buildOpts['fileName'] = date('ymd_Hi') . '_add_part.log'; $logger = EcrLogger::getInstance('ecr', $buildOpts); $options = new stdClass(); $options->ecr_project = $ecr_project; $options->group = $group; $options->part = $part; $options->pathSource = JPath::clean(ECRPATH_PARTS . DS . $group . DS . $part . DS . 'tmpl'); $string = ''; $string .= '<h2>Add Element</h2>'; $string .= 'Project: ' . $ecr_project . BR; $string .= 'Group: ' . $group . BR; $string .= 'Part: ' . $part . BR; $string .= 'Source:' . BR . $options->pathSource; $string .= '<hr />'; $logger->log($string); if (!$ePart->insert($project, $options, $logger)) { EcrHtml::message(array(jgettext('Unable to insert part') . ' [group, part]', $group, $part), 'error'); $logger->writeLog(); } else { EcrHtml::message(array(jgettext('Part added') . ' [group, part]', $group, $part)); $logger->writeLog(); $cache = JFactory::getCache(); $cache->clean('EasyCreator_' . $ecr_project); } parent::display(); }
<?php echo jgettext('Extension templates parts'); ?> </div> <ul> <?php foreach (EcrProjectHelper::getPartsGroups() as $group) { $js = " onmousedown=\"setAction('', '" . $path . DS . "parts', '" . $group . "');\""; ?> <li class="pft-directory"><?php echo '<div' . $js . '>' . jgettext($group) . '</div>'; ?> <ul> <?php foreach (EcrProjectHelper::getParts($group) as $part) { $easyPart = EcrProjectHelper::getPart($group, $part, '', ''); if ($easyPart) { $toolTip = $group . '::' . $part; $title = $part; if (method_exists($easyPart, 'info')) { $info = $easyPart->info(); $title = $info->title; $toolTip = $info->title; if ($info->description) { $toolTip .= '::' . $info->description; } } $js = " onmousedown=\"setAction('', '" . $path . DS . 'parts' . DS . $group . "', '" . $part . "');\""; echo '<li class="pft-directory">'; echo '<div' . $js . ' class="hasTip" title="' . $toolTip . '">'; echo '<span class="img icon16-info"/>' . $title;
/** * Executes a function inside a 'part' from templates/parts folder. * * @return void */ public function part_task() { $input = JFactory::getApplication()->input; $group = $input->get('group'); $part = $input->get('part'); $element = $input->get('element'); $scope = $input->get('scope'); $partTask = $input->get('part_task'); if (!($ecrPart = EcrProjectHelper::getPart($group, $part, $element, $scope))) { EcrHtml::message(array(jgettext('Unable to load part') . ' [group, part]', $group, $part), 'error'); return; } if (!method_exists($ecrPart, $partTask)) { EcrHtml::message(array(jgettext('Function not found'), $partTask), 'error'); return; } //-- Execute the task return $ecrPart->{$partTask}($element); }
function drawAddElementTable() { $ecr_project = JFactory::getApplication()->input->get('ecr_project'); $link = 'index.php?option=com_easycreator&controller=ajax&task=show_part&tmpl=component'; $link .= '&ecr_project=' . $ecr_project; ?> <script type="text/javascript"> function showPart(group, part) { document.id('addPartShow').className = ' img ajax_loading16'; document.id('addPartShow').innerHTML = jgettext('Loading...'); document.id('addElementMessage').innerHTML = ''; new Request({ url: '<?php echo $link; ?> &group='+group+'&part='+part, onComplete: function(response) { document.id('addPartShow').className = ''; document.id('addPartShow').set('html', response); document.id('addElementMessage').innerHTML = ''; div_new_element.show(); } }).send(); return false; }//function </script> <div id="addElementMessage"></div> <div id="addPartPartsList" style="float: left;"><?php foreach (EcrProjectHelper::getPartsGroups() as $group) { echo '<strong style="color: blue;">' . ucfirst($group) . '</strong><br />'; foreach (EcrProjectHelper::getParts($group) as $part) { $easyPart = EcrProjectHelper::getPart($group, $part, '', ''); if ($easyPart) { $toolTip = $group . '::' . $part; $title = $part; if (method_exists($easyPart, 'info')) { $info = $easyPart->info(); $title = $info->title; $toolTip = $info->title; if ($info->description) { $toolTip .= '::' . $info->description; } } echo '<div class="btn block hasTip" title="' . $toolTip . '" onclick="showPart(\'' . $group . '\', \'' . $part . '\');">' . $title . '</div>'; } } //foreach } //foreach ?> </div> <div style="float: left; margin-left: 1em;"> <div class="ecr_floatbox"> <div id="addPartShow"> <strong style="color: red;"><?php echo jgettext('Select an element'); ?> </strong> </div> </div> </div> <div style="clear: both;"></div> <?php }