public function getFolders($type) { javascript('jquery'); $src = PHPWS_SOURCE_HTTP . 'mod/filecabinet/javascript/folder_options/folders.js'; \Layout::addJSHeader("<script type='text/javascript' src='{$src}'></script>", 'folder-options'); PHPWS_Core::initCoreClass('DBPager.php'); $folder = new Folder(); $folder->ftype = $type; $folder->loadDirectory(); $pagetags['MODAL'] = $this->getModal(); if (Current_User::allow('filecabinet')) { if (!is_dir($folder->_base_directory)) { $this->cabinet->message = dgettext('filecabinet', "Directory {$folder->_base_directory} does not exist."); } else { if (!is_writable($folder->_base_directory)) { switch ($folder->ftype) { case IMAGE_FOLDER: $this->cabinet->message = dgettext('filecabinet', 'Your images directory is not writable.'); break; case DOCUMENT_FOLDER: $this->cabinet->message = dgettext('filecabinet', 'Your documents directory is not writable.'); break; case MULTIMEDIA_FOLDER: $this->cabinet->message = dgettext('filecabinet', 'Your multimedia directory is not writable.'); break; } } else { if (Current_User::allow('filecabinet', 'edit_folders')) { $authkey = \Current_User::getAuthKey(); $pagetags['ADMIN_LINKS'] = "<button class='btn btn-success show-modal' data-operation='aop' data-command='add_folder' data-folder_id='0' data-ftype='{$folder->ftype}'><i class='fa fa-plus'></i> Add Folder</button>"; //$pagetags['ADMIN_LINKS'] = $folder->editLink(); } } } } switch ($folder->ftype) { case IMAGE_FOLDER: $aop = 'image'; $table = 'images'; break; case DOCUMENT_FOLDER: $aop = 'document'; $table = 'documents'; break; case MULTIMEDIA_FOLDER: $table = $aop = 'multimedia'; break; } $pagetags['ITEM_LABEL'] = dgettext('filecabinet', 'Items'); $form = new PHPWS_Form('folder-search'); $form->setMethod('get'); $form->addHidden('module', 'filecabinet'); $form->addHidden('aop', $aop); $form->addHidden('ftype', $folder->ftype); $folder_search = isset($_GET['folder_search']) ? $_GET['folder_search'] : null; $form->addText('folder_search', $folder_search); $form->addSubmit(dgettext('filecabinet', 'Search folders for file')); $search_tpl = $form->getTemplate(); $pagetags['FILE_SEARCH'] = $search_tpl['START_FORM'] . $search_tpl['FOLDER_SEARCH'] . $search_tpl['SUBMIT'] . $search_tpl['END_FORM']; $pager = new DBPager('folders', 'Folder'); if (!empty($_GET['folder_search'])) { $pl = UTF8_MODE ? '\\pL' : null; $search = preg_replace("/[^\\w\\s\\-{$pl}]/", '', $_GET['folder_search']); if (!empty($search)) { $pager->addWhere("{$table}.file_name", $search, 'REGEXP', 'or', 'g1'); $pager->addWhere("{$table}.title", $search, 'REGEXP', 'or', 'g1'); $pager->addWhere('folders.id', "{$table}.folder_id"); } } $pager->addSortHeader('title', dgettext('filecabinet', 'Title')); $pager->addSortHeader('public_folder', dgettext('filecabinet', 'Public')); $pager->setModule('filecabinet'); $pager->setTemplate('Forms/folder_list.tpl'); $pager->addPageTags($pagetags); $pager->addRowTags('rowTags'); $pager->setEmptyMessage(dgettext('filecabinet', 'No folders found.')); $pager->addWhere('ftype', $type); $pager->setDefaultOrder('title'); $pager->setAutoSort(false); $this->cabinet->content = $pager->get(); }