Example #1
0
 public function init()
 {
     $options = new Filfiles();
     foreach ($options->fetchAlltoFlatArray() as $k => $v) {
         if (isset($v['mlabel'])) {
             $this->addMultiOption($k, $v['mlabel']);
         }
     }
 }
Example #2
0
 /**
  *
  */
 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);
 }
Example #3
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;
         }
     }
 }
Example #4
0
    /**
     * 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;
    }
Example #5
0
 /**
  * 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();
         }
     }
 }
Example #6
0
 /**
  * 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>';
         }
     }
 }
Example #7
0
 /**
  *
  * @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');
 }
Example #8
0
 /**
  * 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');
 }
Example #9
0
 /**
  *
  */
 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;
     }
 }
Example #10
0
 /**
  * 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();
         }
     }
 }
Example #11
0
 /**
  *
  * @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;
 }