public static function saveShortcut(Access_Shortcut $shortcut) { $result = $shortcut->save(); if (PHPWS_Error::isError($result)) { PHPWS_Error::log($result); $content[] = dgettext('access', 'A serious error occurred. Please check your error.log.'); $tpl['CLOSE'] = sprintf('<input type="button" value="%s" onclick="window.close()" />', dgettext('access', 'Close window')); } else { $tpl['TITLE'] = dgettext('access', 'Access has saved your shortcut.'); $content[] = dgettext('access', 'You can access this item with the following link:'); $url = $shortcut->getRewrite(true, false); $content[] = $url; $js['location'] = $url; javascript('close_refresh', $js); $tpl['CLOSE'] = sprintf('<input type="button" value="%s" onclick="window.close()" return false" />', dgettext('access', 'Close window')); } $tpl['CONTENT'] = implode('<br />', $content); return PHPWS_Template::process($tpl, 'access', 'box.tpl'); }
public function admin() { switch ($_REQUEST['dop']) { case 'delete_document': if (!$this->folder->id || !Current_User::secured('filecabinet', 'edit_folders', $this->folder->id, 'folder')) { Current_User::disallow(); } $this->document->delete(); PHPWS_Core::returnToBookmark(); break; case 'post_document_upload': if (!$this->folder->id || !Current_User::authorized('filecabinet', 'edit_folders', $this->folder->id, 'folder')) { Current_User::disallow(); } $this->postDocumentUpload(); javascript('close_refresh'); Layout::nakedDisplay(); //\PHPWS_Core::goBack(); break; case 'upload_document_form': if (!$this->folder->id || !Current_User::secured('filecabinet', 'edit_folders', $this->folder->id, 'folder')) { Current_User::disallow(); } $this->loadDocument(filter_input(INPUT_GET, 'file_id', FILTER_VALIDATE_INT)); $this->edit(); echo Layout::wrap($this->content, 'Document Upload', true); exit; case 'add_access': if (!Current_User::authorized('filecabinet')) { Current_User::disallow(); } $keyword = null; $this->loadDocument(); // document exists, try making a shortcut if ($this->document->id) { PHPWS_Core::initModClass('access', 'Shortcut.php'); $shortcut = new Access_Shortcut(); if (isset($_GET['keyword'])) { $keyword = $_GET['keyword']; } if (empty($keyword)) { $keyword = $this->document->title; } $result = $shortcut->setKeyword($keyword); $new_keyword = $shortcut->keyword; // if setKeyword returns a false or error, we have them pick a different name if (!$result || PHPWS_Error::isError($result)) { $message = dgettext('filecabinet', 'Access shortcut name already in use. Please enter another.'); $success = false; } else { $shortcut->setUrl('filecabinet', $this->document->getViewLink()); $shortcut->save(); $success = true; $message = '<p>' . dgettext('filecabinet', 'Access shortcut successful!') . '</p>'; $message .= '<a href="' . PHPWS_Core::getHomeHttp() . $shortcut->keyword . '">' . PHPWS_Core::getHomeHttp() . $shortcut->keyword . '</a>'; } } else { $message = dgettext('filecabinet', 'File not found'); // not really a success but prevents a repost prompt $success = true; } echo json_encode(array('success' => $success, 'message' => $message, 'keyword' => $new_keyword)); exit; } }
/** * Creates an Access shortcut and possibly menu link * @return boolean */ public function createShortcut() { // title didn't change (in update or new) then go back if (!$this->_title_change) { return true; } PHPWS_Core::initModClass('access', 'Shortcut.php'); PHPWS_Core::initModClass('menu', 'Menu.php'); $key = new Key($this->key_id); $shortcut = new Access_Shortcut(); $shortcut->setUrl($key->module, $key->url); $shortcut = new Access_Shortcut(); $shortcut->setUrl('pagesmith', $key->url); $result = $shortcut->setKeyword($this->title); if (PHPWS_Error::isError($result) || $result == FALSE) { return $result; } $result = $shortcut->save(); if (PHPWS_Error::isError($result) || $result == FALSE) { return $result; } if ($this->parent_page || !PHPWS_Settings::get('pagesmith', 'auto_link')) { return true; } return $this->createMenuShortcut($shortcut, $key); }
private function updateLinkShortcut($row) { require_once PHPWS_SOURCE_DIR . 'mod/access/class/Shortcut.php'; // off site links ignored if (!preg_match('@^pagesmith/\\d+@', $row['url'])) { return; } $url = str_replace('/', ':', $row['url']); $db = \Database::newDB(); $t1 = $db->addTable('access_shortcuts'); $t1->addField('keyword'); $t1->addFieldConditional('url', $url); $keyword = $db->selectColumn(); $menu_link = new Menu_Link($row['id']); if (empty($keyword)) { $as = new Access_Shortcut(); $as->plugShortcut($row['title'], $row['key_id']); $as->save(); $keyword = $as->keyword; } $menu_link->url = './' . $keyword; $menu_link->save(); }