/** * 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; }
/** * * @todo TODO check the security here * @return void */ public function viewfolercontentAction() { $this->view->ajaxurl .= 'viewfolercontent/'; $ftype = false; $folderIds = false; $filesIds = array(); $this->view->vmode = 'list'; $r = $this->getRequest(); if (isset($r->vmode)) { $this->view->vmode = $r->vmode; } if (isset($r->paperexecpt)) { $this->view->paperexecpt = $r->paperexecpt; } if (isset($r->ajsrt)) { $this->view->ajsrt = $r->ajsrt; } if (isset($r->fids)) { $folderIds = preg_split('/,/', $r->fids); foreach ($folderIds as $fid) { if (preg_match('/^[0-9]{1,90}$/', $fid)) { $corDB = new FilfoldersFilfiles(); $tempArray = array_merge($filesIds, $corDB->getFilfilesLinkedTo($fid)); $filesIds = $tempArray; } } $filsDB = new Filfiles(); if (sizeof($filesIds) > 0) { $files = $filsDB->fetchAll("id IN (" . implode(',', $filesIds) . ") ", null, "datecreated DESC"); } else { $files = array(); } if (isset($r->format) && $r->format == 'json') { $this->view->files = $files->toArray(); } else { $this->view->files = $files; } } }
/** * * @return void */ public function filelistAction() { $this->view->ajaxurl = '/publicms/file/filelist/'; $request = $this->getRequest(); $way = 'DESC'; $srchstr = ''; $dorder = 'datecreated'; if (isset($request->srchstr) && $request->srchstr != '') { $srchstr = trim($request->srchstr); } $this->view->srchstr = $srchstr; $this->view->showOverlay = $request->getParam('overlay', true); $this->view->ajsrt = 'label'; if (isset($request->ajsrt)) { // $this->view->ajsrt = $r->ajsrt; // $this->view->ajaxurl .= 'ajsrt/'.$this->view->ajsrt.'/'; if ($request->ajsrt == 'date') { $dorder = 'filfiles.datecreated'; } if ($request->ajsrt == 'label') { $dorder = 'filfiles.label'; } if ($request->ajsrt == 'size') { $dorder = 'filfiles.fweight'; } if ($request->ajsrt == 'user') { $dorder = 'u.fname,u.lname'; } $this->view->ajsrt = $request->ajsrt; } if (isset($request->way)) { if ($request->way == 'DESC') { $way = ''; } } $this->view->ajaxurl .= 'way/' . $way . '/'; $this->view->flist = array(); $sql = ''; $fltr = new Zend_Filter_Digits(); if (isset($request->id)) { $this->view->ajaxurl .= 'id/' . $request->id . '/'; $folderid = $fltr->filter($request->id); $sql = "SELECT\n\t\t\t\t\t\tfilfiles.id,\n\t\t\t\t\t\tfilfiles.label,\n\t\t\t\t\t\tfilfiles.desc,\n\t\t\t\t\t\tfilfiles.keywords,\n\t\t\t\t\t\tfilfiles.datecreated,\n\t\t\t\t\t\tfilfiles.filename,\n\t\t\t\t\t\tfilfiles.path,\n\t\t\t\t\t\tfilfiles.type,\n\t\t\t\t\t\tu.fname,\n\t\t\t\t\t\tu.lname,\n\t\t\t\t\t\tfilfiles.fweight\n\t\t\t\t\tFROM\n\t\t\t\t\t\tfilfiles,\n\t\t\t\t\t\tfilfolders,\n\t\t\t\t\t\tfilfolders_filfiles,\n\t\t\t\t\t\tusers as u\n\t\t\t\t\tWHERE "; if ($srchstr != '') { $sql .= ' filfiles.label LIKE ' . $this->_db->quote('%' . $srchstr . '%') . ' AND '; } $sql .= "\n\t\t\t\t\t\tfilfiles.users_id = u.id AND\n\t\t\t\t\t\tfilfolders_filfiles.filfiles_id = filfiles.id AND\n\t\t\t\t\t\tfilfolders_filfiles.filfolders_id = filfolders.id AND\n\t\t\t\t\t\tfilfolders.id = '" . $folderid . "' AND\n\t\t\t\t\t\tfilfiles.safinstances_id = '" . $this->safinstancesId . "'\n\t\t\t\t\tGROUP BY filfiles.id\n\t\t\t\t\tORDER BY\n\t\t\t\t\t\t" . $dorder . " {$way}\n\t\t\t\t\t"; } elseif ($request->mode == 'filids' && isset($request->ids)) { $params = $request->params; if (is_string($params) && !empty($params)) { $params = unserialize(urldecode($params)); } $ids = array(); $this->view->ajaxurl .= 'mode/' . $request->mode . '/ids/' . $request->ids . '/params/' . urlencode(serialize($params)) . '/'; if (isset($params) && key_exists('type', $params) && $params['type'] == "categories") { // Load the files id based on their category $linkedFiles = new FilfoldersFilfiles(); foreach (preg_split('/,/', $request->ids) as $category) { $ids[] = $linkedFiles->getFilfilesLinkedTo($category); } } else { foreach (explode(',', $request->ids) as $id) { $ids[] = $fltr->filter($id); } } $oFile = new Filfiles(); $this->view->flist = $oFile->getFileInfosByIdList($ids, explode(',', $dorder . ($way ? ' ' . $way : ''))); } if (isset($request->viewl)) { $this->view->viewl = $r->viewl; $this->view->ajaxurl .= 'viewl/' . $r->viewl . '/'; } if (isset($request->noviewswitch)) { $this->view->noviewswitch = $request->noviewswitch; $this->view->ajaxurl .= 'noviewswitch/' . $request->noviewswitch . '/'; } if ($sql != '') { $this->view->flist = $this->_db->fetchAll($sql); } /** * Params for lightboxview * AS : 20 Aug. 2013 */ // If vtype is 'lightbox' we display the lightbox view if (isset($request->vtype) && $request->vtype == 'lightbox') { $allParams = $request->getParams(); if (!$allParams['nbrCols']) { $allParams['nbrCols'] = 6; } if (!isset($allParams['thumbWidth'])) { $allParams['thumbWidth'] = 200; } if (!isset($allParams['fullimgWidth'])) { $allParams['fullimgWidth'] = 600; } if (!isset($allParams['uselightbox'])) { $allParams['uselightbox'] = true; } if (!isset($allParams['lfrom'])) { $allParams['lfrom'] = 0; } if (!isset($allParams['loffset'])) { $allParams['loffset'] = $allParams['nbrCols'] * 3; } if (!isset($allParams['searchtool'])) { $allParams['searchtool'] = true; } if (!isset($allParams['downloadable'])) { $allParams['downloadable'] = true; } if (isset($allParams['addClass'])) { unset($allParams['addClass']); } $this->view->allParams = $allParams; $this->render('lightbox'); } }