/** * * url: /admin/servicesfolder/link-filfiles-to-folder/format/json/ * @return void */ public function linkFilfilesToFolderAction() { /* * $this->fileid: 6406 * $this->jsonstr:( * [0] => structure_871 * [1] => structure_3026 * ) **/ array_walk($this->jsonstr, create_function('&$v,$k', '$v = str_replace("structure_","",$v);')); $oLinkFolder = new FilfoldersFilfiles(); $oLinkFolder->setFilfilesLinkedTo($this->fileid, $this->jsonstr); $this->_setDataMsg('OK, link recorded', 1); }
/** * 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; } } }
/** * Saves the files properties. * This is called from jquery.fileproperties method save() * @return void */ public function savefilepropsAction() { $message = 'No action taken'; $fltr = new Zend_Filter_Digits(); $r = $this->getRequest(); $fid = 0; if (isset($r->fid)) { $fid = $fltr->filter($r->fid); } if ($fid > 0) { $fildb = new Filfiles(); $where = "id = {$fid} AND safinstances_id = '" . $this->safinstancesId . "'"; $rows = $fildb->fetchAll($where); if (count($rows) == 1) { if (isset($r->filename)) { $rows[0]->label = $r->filename; } if (isset($r->desc)) { $rows[0]->desc = $r->desc; } $rows[0]->istagged = 0; /** if (isset($r->istagged)) { * if ($r->istagged == 'true' )$rows[0]->istagged = 1; * } **/ $rows[0]->save(); $message = 'File params saved'; /** * GDE : 27/08/2010 * Add trace of current action */ Sydney_Db_Trace::add('trace.event.update_file' . ' [' . $r->filename . ']', 'adminfiles', Sydney_Tools::getTableName($fildb), 'updatefile', $fid); // */ // save the folders if (isset($r->filfolders) && $r->filfolders != '') { $ffdata = array(); foreach (Zend_Json::decode($r->filfolders) as $fel) { $ffdata[] = $fel['val']; } $fileFilesDb = new FilfoldersFilfiles(); $fileFilesDb->setFilfilesLinkedTo($fid, $ffdata); } } } $this->view->ResultSet = array('message' => $message); }