/** * Create ZIP file of template * * @param array $ids The primary keys of the items */ public function create($ids = array()) { // Initialize $user = JFactory::getUser(); $app = JFactory::getApplication(); $this->setRedirect(JRoute::_('index.php?option=com_jdeveloper&view=template', false)); if (empty($ids)) { $ids = $app->input->get('cid', array(), 'array'); } // Check access if (!$user->authorise('templates.create', 'com_jdeveloper')) { $this->setMessage(JText::_('COM_JDEVELOPER_ACTION_NOT_ALLOWED'), 'warning'); return; } // Load classes JDeveloperLoader::import('archive'); JDeveloperLoader::import('template'); JDeveloperLoader::import('template', JDeveloperCREATE); jimport('joomla.filesystem.folder'); // Create template for each id foreach ($ids as $id) { $template = $this->getModel()->getItem($id); $path = $template->createDir; // Delete old archive if exists JFile::exists($path . '.zip') ? JFile::delete($path . '.zip') : null; // Create template try { JDeveloperCreateTemplate::execute(array("item_id" => $id)); } catch (JDeveloperException $e) { $this->setMessage($e->getMessage(), "error"); return; } // Create HTML files for each folder, zip the folder and delete the folder JDeveloperArchive::html($path); // Create ZIP archive and delete folder JDeveloperArchive::zip($path); JFolder::delete($path); } $this->setMessage(JText::sprintf('COM_JDEVELOPER_TEMPLATE_MESSAGE_ZIP_CREATED', count($ids))); }