コード例 #1
0
 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);
 }