<?php /** * API - Interapplicaton links BO layer * * Links have two ends each pointing to an entry, each entry is a double: * - app app-name or directory-name of an egw application, eg. 'infolog' * - id this is the id, eg. an integer or a tupple like '0:INBOX:1234' * * @link http://www.egroupware.org * @author Ralf Becker <RalfBecker-AT-outdoor-training.de> * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @package api * @subpackage link * @version $Id$ */ /** * Generalized linking between entries of eGroupware apps - BO layer * * @deprecated use egw_link class with it's static methods instead */ class bolink extends egw_link { var $public_functions = array( 'get_file' => true, ); /** * @deprecated use egw_link::VFS_APPNAME */ var $vfs_appname = egw_link::VFS_APPNAME; /** * Overwrite private constructor of egw_links, to allow (depricated) instancated usage * */ function __construct() { } /** * Download an attached file * * @todo replace it with egw_vfs::download_url, once egw_vfs/webdav supports the attachments * @param array $link=null * @return array with params (eg. menuaction) for download link */ function get_file(array $link=null) { if (is_array($link)) { return array( 'menuaction' => 'phpgwapi.bolink.get_file', 'app' => $link['app2'], 'id' => $link['id2'], 'filename' => $link['id'] ); } $app = $_GET['app']; $id = $_GET['id']; $filename = $_GET['filename']; if (empty($app) || empty($id) || empty($filename) || !$this->title($app,$id)) { $GLOBALS['egw']->framework->render('<h1 style="text-align: center; color: red;">'.lang('Access not permitted')." !!!</h1>\n", lang('Access not permitted'),true); $GLOBALS['egw']->common->egw_exit(); } $browser = new browser(); $local = $this->attached_local($app,$id,$filename,$_SERVER['REMOTE_ADDR'],$browser->is_windows()); if ($local) { Header('Location: ' . $local); } else { $info = $this->info_attached($app,$id,$filename); $browser->content_header($filename,$info['type']); echo $this->read_attached($app,$id,$filename); } $GLOBALS['egw']->common->egw_exit(); } }