public function save($data) { jimport('joomla.filesystem.file'); // New if ($data['id'] < 1) { $data['type'] = 2; // Custom in every case if ($data['title'] != '') { $filename = JApplication::stringURLSafe($data['title']); if (trim(str_replace('-', '', $filename)) == '') { $filename = JFactory::getDate()->format("Y-m-d-H-i-s"); } } else { $filename = JFactory::getDate()->format("Y-m-d-H-i-s"); } $filename = $filename . '.css'; $data['filename'] = $filename; $filePath = PhocaGalleryFile::existsCSS($filename, $data['type']); if ($filePath) { $this->setError(JText::sprintf('COM_PHOCAGALLERY_FILE_ALREADY_EXISTS', $fileName)); return false; } else { $filePath = PhocaGalleryFile::getCSSPath($data['type']) . $filename; } } else { $filename = PhocaGalleryFile::getCSSFile($data['id']); $filePath = PhocaGalleryFile::existsCSS($filename, $data['type']); } //$dispatcher = JEventDispatcher::getInstance(); $fileName = $filename; // Include the extension plugins for the save events. //JPluginHelper::importPlugin('extension'); // Set FTP credentials, if given. JClientHelper::setCredentialsFromRequest('ftp'); $ftp = JClientHelper::getCredentials('ftp'); // Try to make the template file writeable. if (!$ftp['enabled'] && JPath::isOwner($filePath) && !JPath::setPermissions($filePath, '0644')) { $this->setError(JText::_('COM_PHOCAGALLERY_ERROR_SOURCE_FILE_NOT_WRITABLE')); return false; } // Trigger the onExtensionBeforeSave event. /*$result = $dispatcher->trigger('onExtensionBeforeSave', array('com_phocagallery.source', &$data, false)); if (in_array(false, $result, true)) { $this->setError($table->getError()); return false; }*/ $return = JFile::write($filePath, $data['source']); // Try to make the template file unwriteable. if (!$ftp['enabled'] && JPath::isOwner($filePath) && !JPath::setPermissions($filePath, '0444')) { $this->setError(JText::_('COM_PHOCAGALLERY_ERROR_SOURCE_FILE_NOT_UNWRITABLE')); return false; } elseif (!$return) { $this->setError(JText::sprintf('COM_PHOCAGALLERY_ERROR_FAILED_TO_SAVE_FILENAME', $fileName)); return false; } // Trigger the onExtensionAfterSave event. //$dispatcher->trigger('onExtensionAfterSave', array('com_templates.source', &$table, false)); //return true; return parent::save($data); }