modified addressbook templates to use new vfs, it uses now templates in sub-dirs of the template dir too

This commit is contained in:
Ralf Becker 2008-04-15 10:28:45 +00:00
parent fd987f39d2
commit f3387a7c1f
2 changed files with 19 additions and 60 deletions

View File

@ -5,12 +5,11 @@
* @link http://www.egroupware.org * @link http://www.egroupware.org
* @author Ralf Becker <RalfBecker-AT-outdoor-training.de> * @author Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @package addressbook * @package addressbook
* @copyright (c) 2007 by Ralf Becker <RalfBecker-AT-outdoor-training.de> * @copyright (c) 2007/8 by Ralf Becker <RalfBecker-AT-outdoor-training.de>
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$ * @version $Id$
*/ */
require_once(EGW_API_INC.'/class.vfs.inc.php');
require_once(EGW_INCLUDE_ROOT.'/addressbook/inc/class.bocontacts.inc.php'); require_once(EGW_INCLUDE_ROOT.'/addressbook/inc/class.bocontacts.inc.php');
/** /**
@ -24,12 +23,6 @@ class addressbook_merge // extends bo_merge
* @var array * @var array
*/ */
var $public_functions = array('show_replacements' => true); var $public_functions = array('show_replacements' => true);
/**
* Instance of the vfs class
*
* @var vfs
*/
var $vfs;
/** /**
* Instance of the bocontacts class * Instance of the bocontacts class
* *
@ -44,7 +37,6 @@ class addressbook_merge // extends bo_merge
*/ */
function addressbook_merge() function addressbook_merge()
{ {
$this->vfs =& new vfs();
$this->contacts =& new bocontacts(); $this->contacts =& new bocontacts();
} }
@ -208,10 +200,7 @@ class addressbook_merge // extends bo_merge
*/ */
function merge($document,$ids,&$err) function merge($document,$ids,&$err)
{ {
if (!($content = $this->vfs->read(array( if (!($content = file_get_contents(egw_vfs::PREFIX.$document)))
'string' => $document,
'relatives' => RELATIVE_ROOT,
))))
{ {
$err = lang("Document '%1' does not exist or is not readable for you!",$document); $err = lang("Document '%1' does not exist or is not readable for you!",$document);
return false; return false;
@ -294,10 +283,7 @@ class addressbook_merge // extends bo_merge
{ {
return $err; return $err;
} }
$mime_type = $this->vfs->file_type(array( $mime_type = egw_vfs::mime_content_type($document);
'string' => $document,
'relatives' => RELATIVE_ROOT,
));
ExecMethod2('phpgwapi.browser.content_header',basename($document),$mime_type); ExecMethod2('phpgwapi.browser.content_header',basename($document),$mime_type);
echo $merged; echo $merged;

View File

@ -2027,18 +2027,15 @@ $readonlys['button[vcard]'] = true;
*/ */
function download_document($ids,$document='') function download_document($ids,$document='')
{ {
if (!$document) $document = $this->prefs['default_document']; if (!$document)
{
require_once(EGW_API_INC.'/class.vfs.inc.php'); $document = $this->prefs['default_document'];
$vfs =& new vfs(); }
if (!$document || $document != $this->prefs['default_document'] && else
substr($document,0,1+strlen($this->prefs['document_dir'])) != $this->prefs['document_dir'].'/' || {
!$vfs->acl_check(array( $document = $this->prefs['document_dir'].'/'.$document;
'string' => $document, }
'relatives' => RELATIVE_ROOT, if (!@egw_vfs::stat($document))
'operation' => EGW_ACL_READ,
'must_exist' => true,
)))
{ {
return lang("Document '%1' does not exist or is not readable for you!",$document); return lang("Document '%1' does not exist or is not readable for you!",$document);
} }
@ -2056,28 +2053,22 @@ $readonlys['button[vcard]'] = true;
function get_document_actions() function get_document_actions()
{ {
if (!$this->prefs['document_dir']) return array(); if (!$this->prefs['document_dir']) return array();
if (!is_array($actions = $GLOBALS['egw']->session->appsession('document_actions','addressbook'))) if (!is_array($actions = $GLOBALS['egw']->session->appsession('document_actions','addressbook')))
{ {
require_once(EGW_API_INC.'/class.vfs.inc.php');
$vfs =& new vfs;
$actions = array(); $actions = array();
if (($files = $vfs->ls(array( if (($files = egw_vfs::find($this->prefs['document_dir'],array('need_mime'=>true),true)))
'string' => $this->prefs['document_dir'],
'relatives' => RELATIVE_ROOT,
))))
{ {
foreach($files as $file) foreach($files as $file)
{ {
// return only the mime-types we support // return only the mime-types we support
if (!($file['mime_type'] == 'application/rtf' || if (!($file['mime'] == 'application/rtf' ||
$file['mime_type'] == 'application/msword' && !strcasecmp(substr($file['name'],-4),'.rtf') || $file['mime'] == 'application/msword' && !strcasecmp(substr($file['name'],-4),'.rtf') ||
substr($file['mime_type'],0,5) == 'text/')) continue; substr($file['mime'],0,5) == 'text/')) continue;
// As browsers not always return the right mime_type, you could use a negative list instead // As browsers not always return the right mime_type, you could use a negative list instead
//if ($file['mime_type'] == 'Directory' || substr($file['mime_type'],0,6) == 'image/') continue; //if ($file['mime'] == egw_vfs::DIR_MIME_TYPE || substr($file['mime'],0,6) == 'image/') continue;
$actions['document-'.$file['directory'].'/'.$file['name']] = /*lang('Insert in document').': '.*/$file['name']; $actions['document-'.$file['name']] = /*lang('Insert in document').': '.*/$file['name'];
} }
} }
$GLOBALS['egw']->session->appsession('document_actions','addressbook',$actions); $GLOBALS['egw']->session->appsession('document_actions','addressbook',$actions);
@ -2197,21 +2188,3 @@ $readonlys['button[vcard]'] = true;
return $this->tmpl->exec('addressbook.uicontacts.cat_add',$content,$sel_options,$readonlys,$content, 2); return $this->tmpl->exec('addressbook.uicontacts.cat_add',$content,$sel_options,$readonlys,$content, 2);
} }
} }
if (!function_exists('array_intersect_key')) // php5.1 function
{
function array_intersect_key($array1,$array2)
{
$intersection = $keys = array();
foreach(func_get_args() as $arr)
{
$keys[] = array_keys((array)$arr);
}
foreach(call_user_func_array('array_intersect',$keys) as $key)
{
$intersection[$key] = $array1[$key];
}
return $intersection;
}
}