Go to the documentation of this file.00001 <?php
00002
00008 class Article_Files extends oxAdminDetails
00009 {
00015 protected $_sThisTemplate = 'article_files.tpl';
00016
00022 protected $_oArticle = null;
00023
00030 public function render()
00031 {
00032 parent::render();
00033
00034 if ( !$this->getConfig()->getConfigParam( 'blEnableDownloads' ) ) {
00035 oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_DISABLED_DOWNLOADABLE_PRODUCTS' );
00036 }
00037 $oArticle = $this->getArticle();
00038
00039 if ( $oArticle->oxarticles__oxparentid->value) {
00040 $oParentArticle = oxNew( 'oxarticle' );
00041 $oParentArticle->load( $oArticle->oxarticles__oxparentid->value);
00042 $oArticle->oxarticles__oxisdownloadable = new oxField( $oParentArticle->oxarticles__oxisdownloadable->value );
00043 $this->_aViewData["oxparentid"] = $oArticle->oxarticles__oxparentid->value;
00044 }
00045
00046 return $this->_sThisTemplate;
00047 }
00048
00055 public function save()
00056 {
00057
00058 $aArticleChanges = oxConfig::getParameter('editval');
00059 $oArticle = $this->getArticle();
00060 $oArticle->assign($aArticleChanges);
00061 $oArticle->save();
00062
00063
00064 $aArticleFiles = oxConfig::getParameter('article_files');
00065 if (count($aArticleFiles) > 0) {
00066 foreach ($aArticleFiles as $sArticleFileId => $aArticleFileUpdate) {
00067 $oArticleFile = oxNew('oxFile');
00068 $oArticleFile->load($sArticleFileId);
00069 $aArticleFileUpdate = $this->_processOptions($aArticleFileUpdate);
00070 $oArticleFile->assign($aArticleFileUpdate);
00071 $oArticleFile->save();
00072 }
00073 }
00074 }
00075
00083 public function getArticle($blReset = false)
00084 {
00085 if ($this->_oArticle !== null && !$blReset) {
00086 return $this->_oArticle;
00087 }
00088 $sOxid = $this->getEditObjectId();
00089 $this->_oArticle = oxNewArticle($sOxid);
00090
00091 return $this->_oArticle;
00092 }
00093
00099 public function upload()
00100 {
00101 $soxId = $this->getEditObjectId();
00102
00103 $aParams = oxConfig::getParameter( "newfile");
00104 $aParams = $this->_processOptions($aParams);
00105 $aNewFile = $this->getConfig()->getUploadedFile( "newArticleFile");
00106
00107 $sExistingFilename = trim(oxConfig::getParameter( "existingFilename"));
00108
00109
00110 $oArticleFile = oxNew( "oxFile" );
00111 $oArticleFile->assign($aParams);
00112
00113 if (!$aNewFile['name'] && !$oArticleFile->oxfiles__oxfilename->value) {
00114 return oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_NOFILE' );
00115 }
00116
00117 if ($aNewFile['name']) {
00118 $oArticleFile->oxfiles__oxfilename = new oxField($aNewFile['name'], oxField::T_RAW);
00119 try {
00120 $oArticleFile->processFile( 'newArticleFile' );
00121 } catch (Exception $e) {
00122 return oxUtilsView::getInstance()->addErrorToDisplay( $e->getMessage() );
00123 }
00124 }
00125
00126
00127 $oArticleFile->oxfiles__oxartid = new oxField($soxId, oxField::T_RAW);
00128 $oArticleFile->save();
00129 }
00130
00136 public function deletefile()
00137 {
00138 $sArticleId = $this->getEditObjectId();
00139 $sArticleFileId = oxConfig::getParameter('fileid');
00140 $oArticleFile = oxNew('oxFile');
00141 $oArticleFile->load($sArticleFileId);
00142 if ($oArticleFile->hasValidDownloads()) {
00143 return oxUtilsView::getInstance()->addErrorToDisplay( 'EXCEPTION_DELETING_VALID_FILE' );
00144 }
00145 if ($oArticleFile->oxfiles__oxartid->value == $sArticleId) {
00146 $oArticleFile->delete();
00147 }
00148 }
00149
00157 public function getConfigOptionValue( $iOption )
00158 {
00159 $iOption = ( $iOption < 0 ) ? "" : $iOption;
00160 return $iOption;
00161 }
00162
00170 protected function _processOptions($aParams)
00171 {
00172 if (!is_array($aParams)) {
00173 $aParams = array();
00174 }
00175
00176 if (!isset($aParams["oxfiles__oxdownloadexptime"]) || $aParams["oxfiles__oxdownloadexptime"] == "") {
00177 $aParams["oxfiles__oxdownloadexptime"] = -1;
00178 }
00179 if (!isset($aParams["oxfiles__oxlinkexptime"]) || $aParams["oxfiles__oxlinkexptime"] == "") {
00180 $aParams["oxfiles__oxlinkexptime"] = -1;
00181 }
00182 if (!isset($aParams["oxfiles__oxmaxunregdownloads"]) || $aParams["oxfiles__oxmaxunregdownloads"] == "") {
00183 $aParams["oxfiles__oxmaxunregdownloads"] = -1;
00184 }
00185 if (!isset($aParams["oxfiles__oxmaxdownloads"]) || $aParams["oxfiles__oxmaxdownloads"] == "") {
00186 $aParams["oxfiles__oxmaxdownloads"] = -1;
00187 }
00188 return $aParams;
00189 }
00190 }