public function init() { $options = new Filfiles(); foreach ($options->fetchAlltoFlatArray() as $k => $v) { if (isset($v['mlabel'])) { $this->addMultiOption($k, $v['mlabel']); } } }
/** * */ public function indexAction() { $sql = 'SELECT SUM(fweight) AS totalWeight FROM filfiles WHERE safinstances_id = ' . $this->safinstancesId; $ttw = $this->_db->fetchAll($sql); $this->view->totalWeight = $ttw[0]['totalWeight']; $this->view->totalWeightAllowed = $this->_config->files->totalWeightAllowed * 1024 * 1024 * 1024; $this->view->weightPercent = round($this->view->totalWeight / $this->view->totalWeightAllowed, 2) * 100; $dbfiles = new Filfiles(); $where = 'safinstances_id = ' . $this->safinstancesId; $order = 'datecreated DESC'; // $order=null; $this->view->lastuploaded = $dbfiles->fetchAll($where, $order, 10, 0); }
/** * Register the file and location in the DB for quick search and indexing * * @param $path Path to the file * @param $fileName File name on the hard disk * @param $fileWeight Weight in bytes * @param $type 3 letters extension * @param $usersId * @param $safinstancesId * @param array $params * @param string $desc * @return bool|mixed|string id of the file or false on error */ public function registerFileToDb($path, $fileName, $fileWeight, $type, $usersId, $safinstancesId, $params = array(), $desc = '') { $fileTypeDb = new Filtype(); $fileTypeId = 1; $fileTypeRow = $fileTypeDb->fetchAll("ext = '" . substr($type, 0, 3) . "'"); if (count($fileTypeRow) == 1) { $fileTypeId = $fileTypeRow[0]->id; } $data = array('label' => $fileName, 'desc' => $desc, 'filename' => $fileName, 'type' => $type, 'fweight' => $fileWeight, 'filtype_id' => $fileTypeId, 'users_id' => $usersId, 'safinstances_id' => $safinstancesId, 'datecreated' => new Zend_Db_Expr('NOW()'), 'datemodified' => new Zend_Db_Expr('NOW()')); $fileFile = new Filfiles(); $files = $fileFile->fetchAll("filename = '{$fileName}' AND safinstances_id = '" . $safinstancesId . "' "); $countFiles = count($files); if ($countFiles == 1 && $params->calledBy == 'adminpeople' && isset($params->peopleId) && $params->peopleId > 0) { UsersOp::changeAvatar($params->peopleId, $files[0]['id']); return $files[0]['id']; } elseif ($countFiles == 1) { // Replace action, we should update the DB datas $fileId = $files->current()->id; if ($fileFile->update($data, 'id=' . $fileId)) { Sydney_Db_Trace::add('trace.event.upload_file [' . $data['filename'] . ']', 'adminfiles', Sydney_Tools::getTableName($fileFile), 'uploadfile', $fileId); return $files[0]['id']; } else { return false; } } elseif ($countFiles == 0) { if ($fileId = $fileFile->insert($data)) { // #18 - called by module adminpeople In this case, check if the category 'module > system > adminpeople' exist, if yes then link to this else first create new cat and link this new cat. if ($params->calledBy == 'adminpeople') { UsersOp::changeAvatar($params->peopleId, $fileId); } // add categories to file if (isset($params->catids)) { $foids = explode(',', $params->catids); $foids2 = array(); for ($i = 0; $i < count($foids); $i++) { if ($foids[$i] > 0) { $foids2[] = $foids[$i]; } } $fileDb = new FilfoldersFilfiles(); $fileDb->setFilfilesLinkedTo($fileId, $foids2); } Sydney_Db_Trace::add('trace.event.upload_file' . ' [' . $data['filename'] . ']', 'adminfiles', Sydney_Tools::getTableName($fileFile), 'uploadfile', $fileId); return $fileId; } else { return false; } } }
/** * Helper main function * @param $actionsHtml String HTML code showing the action buttons * @param $content String The content of this element * @param $dbId Int DB id of the object * @param $order Int order of this item in the DB * @param $params Array parameters (if any) * @return String HTML to be inserted in the view */ public function ContentFile($actionsHtml = '', $content = '', $dbId = 0, $order = 0, $params = array('level' => 1), $moduleName = 'adminpages', $pagstructureId = 0, $sharedInIds = '') { $eventsInfo = SafactivitylogOp::getAuthorNLastEditorForContent($dbId, $moduleName); $module = 'publicms'; $params2 = array('mode' => 'filids', 'layout' => 'none', 'viewl' => 'list', 'noviewswitch' => 'Y', 'ids' => $content); $this->view->flist = array(); $sql = ''; $fltr = new Zend_Filter_Digits(); if ($params2['mode'] == 'filids' && isset($params2['ids'])) { $ids = array(); foreach (explode(',', $params2['ids']) as $id) { $ids[] = $fltr->filter($id); } } if (is_array($params) && isset($params['type']) && $params['type'] == "categories") { // Load the files id based on their category $linkedFiles = new FilfoldersFilfiles(); $ids = array(); foreach (preg_split('/,/', $content) as $category) { $ids[] = $linkedFiles->getFilfilesLinkedTo($category); } } $this->view->viewl = 'list'; $this->view->noviewswitch = 'Y'; $oFile = new Filfiles(); $params2['flist'] = $oFile->getFileInfosByIdList($ids); $toret = '<li class="' . $params['addClass'] . ' sydney_editor_li" dbparams="' . $content . '" type="" editclass="files" dbid="' . $dbId . '" dborder="' . $order . '" data-content-type="file-block" pagstructureid="' . $pagstructureId . '" sharedinids="' . $sharedInIds . '"> ' . $actionsHtml . ' <div class="content"> ' . $this->view->partial('file/filelist.phtml', $module, $params2) . ' </div> <p class="lastUpdatedContent sydney_editor_p">' . $eventsInfo['firstEvent'] . '<br />' . $eventsInfo['lastEvent'] . '</p> </li>'; return $toret; }
/** * Displays the content of a zip file (id passed as arg) */ public function showzipcontentAction() { $request = $this->getRequest(); if (isset($request->id) && preg_match('/^[0-9]{1,30}$/', $request->id)) { $id = $request->id; $fileModel = new Filfiles(); $where = "id = " . $id . " AND safinstances_id = '" . $this->safinstancesId . "' AND type = 'ZIP' "; $files = $fileModel->fetchAll($where); $this->view->ziplist = array(); if (count($files) == 1) { $file = $files[0]; //Définition dynamique du fullpath $fileType = $file->type; $fullpath = Sydney_Tools_Paths::getAppdataPath() . '/adminfiles/' . $fileType . '/' . $file->filename; $fileTypeInstance = Sydney_Medias_Filetypesfactory::createfiletype($fullpath); $this->view->ziplist = $fileTypeInstance->getZipContent(); } } }
/** * Displays the upload screen * @return void */ public function uploadAction() { //$this->_helper->layout->disableLayout(); $params = $this->getRequest()->getParams(); // gets the categories for upload + tagging $catDB = new Filfolders(); $this->view->categories = $catDB->getFoldersStructure(); if ($params['calledBy'] != 'adminpeople') { $this->setSubtitle('Upload files'); $this->setSideBar('upload', 'files'); } if (count($_FILES['file']) > 0) { switch ($_FILES['file']['error']) { case UPLOAD_ERR_OK: $fullpath = Sydney_Tools::getAppdataPath() . '/adminfiles/'; $filename = $_FILES['file']['name']; $ndirn = substr($filename, -3); $ndirn = preg_replace('/\\./', '', $ndirn); $nnd = $fullpath . '/' . strtoupper($ndirn); $type = strtoupper($ndirn); if (!is_dir($nnd)) { mkdir($nnd); } if (!empty($_POST['fileupload-new-filename'])) { $filename = $_POST['fileupload-new-filename']; } if (move_uploaded_file($_FILES['file']['tmp_name'], $nnd . '/' . $filename)) { $fil = new Filfiles(); $fil->registerFileToDb($nnd, $filename, filesize($nnd . '/' . $filename), $type, $this->usersId, $this->safinstancesId, $this->getRequest()); $returnmsg = '"' . $filename . '", ' . Sydney_Tools::_('UPLOAD_ERR_OK'); } else { $returnmsg = Sydney_Tools::_('UPLOAD_UNKNOW_ERROR'); } break; case UPLOAD_ERR_INI_SIZE: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_INI_SIZE'); break; case UPLOAD_ERR_FORM_SIZE: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_FORM_SIZE'); break; case UPLOAD_ERR_PARTIAL: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_PARTIAL'); break; case UPLOAD_ERR_NO_FILE: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_NO_FILE'); break; case UPLOAD_ERR_NO_TMP_DIR: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_NO_TMP_DIR'); break; case UPLOAD_ERR_CANT_WRITE: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_CANT_WRITE'); break; case UPLOAD_ERR_EXTENSION: $returnmsg = Sydney_Tools::_('UPLOAD_ERR_EXTENSION'); break; } if (!empty($returnmsg)) { echo '<span class="warning">', $returnmsg, '</span>'; } } }
/** * * @return void */ public function lastupdatesAction() { $this->view->ajaxurl .= 'lastupdates/'; $r = $this->getRequest(); $nbr = 10; $noviewswitch = 'Y'; $vmode = 'list'; $flm = 1; $ftyp = array_merge(Sydney_Medias_Utils::$filters[4], Sydney_Medias_Utils::$filters[5]); $way = 'DESC'; $dorder = 'datecreated'; $this->view->ajsrt = 'date'; if (isset($r->nbr) && preg_match('/^[0-9]{1,3}$/', $r->nbr)) { $nbr = $r->nbr; $this->view->ajaxurl .= 'nbr/' . $nbr . '/'; } if (isset($r->noviewswitch)) { $noviewswitch = $r->noviewswitch; $this->view->ajaxurl .= 'noviewswitch/' . $noviewswitch . '/'; } if (isset($r->vmode)) { $vmode = $r->vmode; $this->view->ajaxurl .= 'vmode/' . $vmode . '/'; } if (isset($r->flm) && isset(Sydney_Medias_Utils::$filters[$r->flm])) { $ftyp = Sydney_Medias_Utils::$filters[$r->flm]; $this->view->ajaxurl .= 'ftyp/' . $ftyp . '/'; } if (isset($r->ajsrt)) { if ($r->ajsrt == 'date') { $dorder = 'datecreated'; } if ($r->ajsrt == 'label') { $dorder = 'label'; } if ($r->ajsrt == 'size') { $dorder = 'fweight'; } $this->view->ajsrt = $dorder; } if (isset($r->way)) { if ($r->way == 'DESC') { $way = ''; } } $this->view->ajaxurl .= 'way/' . $way . '/'; $this->view->noviewswitch = $noviewswitch; $this->view->vmode = $vmode; $sql = "\tsafinstances_id = '" . $this->safinstancesId . "'\n\t\t\t\t\tAND type IN ('" . implode("','", $ftyp) . "') "; $filsDB = new Filfiles(); $this->view->files = $filsDB->fetchAll($sql, trim($dorder . ' ' . $way), $nbr, 0); $this->render('viewfolercontent'); }
/** * Show small images from uploaded pictures based on it's id and type size * * Type size : * 2 = 64x64 pixel * 3 = 32x32 pixel * 4 = 16x16 pixel * * Example : /publicms/file/thumb/id/1/ts/2 * where ts is the thumb size mode * amd id is the ID of the file to get */ public function thumbAction() { $this->initFileHeaders(); $request = $this->getRequest(); if (isset($request->id) && preg_match('/^[0-9]{1,30}$/', $request->id)) { if (isset($request->ts) && preg_match('/^[0-9]{1,30}$/', $request->ts)) { $typeSize = $request->ts; } else { $typeSize = 1; } $elementId = $request->id; $fileModel = new Filfiles(); $where = 'id = ' . $elementId . ' AND safinstances_id = ' . $this->safinstancesId; $result = $fileModel->fetchAll($where); if (count($result) == 1) { $file = $result[0]; $fileType = $file->type; $fullpath = Sydney_Tools_Paths::getAppdataPath() . '/adminfiles/' . $fileType . '/' . $file->filename; $fileTypeInstance = Sydney_Medias_Filetypesfactory::createfiletype($fullpath); // defines the thumb size if ($typeSize == 2) { $fileTypeInstance->thumbSize = array(64, 64); } if ($typeSize == 3) { $fileTypeInstance->thumbSize = array(32, 32); } if ($typeSize == 4) { $fileTypeInstance->thumbSize = array(16, 16); } if (!$fileTypeInstance->showThumb()) { print 'Image can not be processed'; } } else { print 'You do not have access to this information'; } } else { print 'Something is missing...'; } $this->render('index'); }
/** * */ protected function _getImageFromRequest() { $fltr = new Zend_Filter_Digits(); $re = $this->getRequest(); if (isset($re->id) && preg_match('/^[0-9]{1,30}$/', $re->id)) { $elid = $fltr->filter($re->id); $mdb = new Filfiles(); $where = 'id = ' . $elid . ' AND safinstances_id = ' . $this->safinstancesId; $r = $mdb->fetchAll($where); if (count($r) == 1) { return $r[0]; } else { return false; } } else { return false; } }
/** * Sets text data in the index field for a file */ public function setindexdataAction() { $r = $this->getRequest(); if (isset($r->id) && preg_match('/^[0-9]{1,30}$/', $r->id)) { $id = $r->id; $fileDb = new Filfiles(); $where = "id = " . $id . " AND safinstances_id = '" . $this->safinstancesId . "' "; $files = $fileDb->fetchAll($where); if (count($files) == 1) { $fileDb = $files[0]; $fileDb->idxcontent = $r->idxdt; $fileDb->save(); } } }
/** * * @param $idFile * @return string */ public static function getUrlAvatar($idFile) { $avatar = ''; $rowFile = null; if ($idFile > 0) { $avatar = '/adminfiles/file/thumb/id/' . $idFile . '/ts/1/fn/' . $idFile . '.png'; $oFile = new Filfiles(); $rowFile = $oFile->getFileInfosById($idFile); } if (empty($avatar) || !is_object($rowFile)) { $avatar = self::getUrlDefaultAvatar(); } return $avatar; }