mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-26 01:43:47 +01:00
reworked for new link-class and added titles method
This commit is contained in:
parent
e311150947
commit
f9315dc39c
@ -432,18 +432,13 @@ class bocontacts extends socontacts
|
|||||||
{
|
{
|
||||||
$contact = array($contact);
|
$contact = array($contact);
|
||||||
}
|
}
|
||||||
if (!is_object($GLOBALS['egw']->link))
|
|
||||||
{
|
|
||||||
require_once(EGW_API_INC.'/class.bolink.inc.php');
|
|
||||||
$GLOBALS['egw']->link =& new bolink();
|
|
||||||
}
|
|
||||||
foreach($contact as $c)
|
foreach($contact as $c)
|
||||||
{
|
{
|
||||||
$id = is_array($c) ? $c['id'] : $c;
|
$id = is_array($c) ? $c['id'] : $c;
|
||||||
|
|
||||||
if ($this->check_perms(EGW_ACL_DELETE,$c,$deny_account_delete) && parent::delete($id))
|
if ($this->check_perms(EGW_ACL_DELETE,$c,$deny_account_delete) && parent::delete($id))
|
||||||
{
|
{
|
||||||
$GLOBALS['egw']->link->unlink(0,'addressbook',$id);
|
egw_link::unlink(0,'addressbook',$id);
|
||||||
$GLOBALS['egw']->contenthistory->updateTimeStamp('contacts', $id, 'delete', time());
|
$GLOBALS['egw']->contenthistory->updateTimeStamp('contacts', $id, 'delete', time());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -766,8 +761,7 @@ class bocontacts extends socontacts
|
|||||||
* Is called as hook to participate in the linking. The format is determined by the link_title preference.
|
* Is called as hook to participate in the linking. The format is determined by the link_title preference.
|
||||||
*
|
*
|
||||||
* @param int/string/array $contact int/string id or array with contact
|
* @param int/string/array $contact int/string id or array with contact
|
||||||
* @param string/boolean string with the title, null if contact does not exitst, false if no perms to view it
|
* @return string/boolean string with the title, null if contact does not exitst, false if no perms to view it
|
||||||
* @return string
|
|
||||||
*/
|
*/
|
||||||
function link_title($contact)
|
function link_title($contact)
|
||||||
{
|
{
|
||||||
@ -788,6 +782,35 @@ class bocontacts extends socontacts
|
|||||||
return $this->fileas($contact,$type);
|
return $this->fileas($contact,$type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get title for multiple contacts identified by $ids
|
||||||
|
*
|
||||||
|
* Is called as hook to participate in the linking. The format is determined by the link_title preference.
|
||||||
|
*
|
||||||
|
* @param array $ids array with contact-id's
|
||||||
|
* @return array with titles, see link_title
|
||||||
|
*/
|
||||||
|
function link_titles(array $ids)
|
||||||
|
{
|
||||||
|
$titles = array();
|
||||||
|
if (($contacts =& $this->search(array('contact_id' => $ids),false)))
|
||||||
|
{
|
||||||
|
foreach($contacts as $contact)
|
||||||
|
{
|
||||||
|
$titles[$contact['id']] = $this->link_title($contact);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// we assume all not returned contacts are not readable for the user (as we report all deleted contacts to egw_link)
|
||||||
|
foreach($ids as $id)
|
||||||
|
{
|
||||||
|
if (!isset($titles[$id]))
|
||||||
|
{
|
||||||
|
$titles[$id] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $titles;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* query addressbook for contacts matching $pattern
|
* query addressbook for contacts matching $pattern
|
||||||
*
|
*
|
||||||
@ -835,6 +858,7 @@ class bocontacts extends socontacts
|
|||||||
return array(
|
return array(
|
||||||
'query' => 'addressbook.bocontacts.link_query',
|
'query' => 'addressbook.bocontacts.link_query',
|
||||||
'title' => 'addressbook.bocontacts.link_title',
|
'title' => 'addressbook.bocontacts.link_title',
|
||||||
|
'titles' => 'addressbook.bocontacts.link_titles',
|
||||||
'view' => array(
|
'view' => array(
|
||||||
'menuaction' => 'addressbook.uicontacts.view'
|
'menuaction' => 'addressbook.uicontacts.view'
|
||||||
),
|
),
|
||||||
@ -995,9 +1019,9 @@ class bocontacts extends socontacts
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
foreach($GLOBALS['egw']->link->get_links('addressbook',$contact['id']) as $data)
|
foreach(egw_link::get_links('addressbook',$contact['id']) as $data)
|
||||||
{
|
{
|
||||||
$GLOBALS['egw']->link->link('addressbook',$target['id'],$data['app'],$data['id'],$data['remark'],$target['owner']);
|
egw_link::link('addressbook',$target['id'],$data['app'],$data['id'],$data['remark'],$target['owner']);
|
||||||
}
|
}
|
||||||
if ($this->delete($contact['id'])) $success++;
|
if ($this->delete($contact['id'])) $success++;
|
||||||
}
|
}
|
||||||
|
@ -1180,14 +1180,6 @@ class uicontacts extends bocontacts
|
|||||||
*/
|
*/
|
||||||
function edit($content=null)
|
function edit($content=null)
|
||||||
{
|
{
|
||||||
if (!is_object($this->link))
|
|
||||||
{
|
|
||||||
if (!is_object($GLOBALS['egw']->link))
|
|
||||||
{
|
|
||||||
$GLOBALS['egw']->link =& CreateObject('phpgwapi.bolink');
|
|
||||||
}
|
|
||||||
$this->link =& $GLOBALS['egw']->link;
|
|
||||||
}
|
|
||||||
if (is_array($content))
|
if (is_array($content))
|
||||||
{
|
{
|
||||||
list($button) = @each($content['button']);
|
list($button) = @each($content['button']);
|
||||||
@ -1242,7 +1234,7 @@ class uicontacts extends bocontacts
|
|||||||
// writing links for new entry, existing ones are handled by the widget itself
|
// writing links for new entry, existing ones are handled by the widget itself
|
||||||
if ($links && $content['id'])
|
if ($links && $content['id'])
|
||||||
{
|
{
|
||||||
$this->link->link('addressbook',$content['id'],$links);
|
egw_link::link('addressbook',$content['id'],$links);
|
||||||
}
|
}
|
||||||
if ($button == 'save')
|
if ($button == 'save')
|
||||||
{
|
{
|
||||||
@ -1344,7 +1336,7 @@ class uicontacts extends bocontacts
|
|||||||
if($content && $_GET['makecp']) // copy the contact
|
if($content && $_GET['makecp']) // copy the contact
|
||||||
{
|
{
|
||||||
$content['link_to']['to_id'] = 0;
|
$content['link_to']['to_id'] = 0;
|
||||||
$this->link->link('addressbook',$content['link_to']['to_id'],'addressbook',$content['id'],
|
egw_link::link('addressbook',$content['link_to']['to_id'],'addressbook',$content['id'],
|
||||||
lang('Copied by %1, from record #%2.',$GLOBALS['egw']->common->display_fullname('',
|
lang('Copied by %1, from record #%2.',$GLOBALS['egw']->common->display_fullname('',
|
||||||
$GLOBALS['egw_info']['user']['account_firstname'],$GLOBALS['egw_info']['user']['account_lastname']),
|
$GLOBALS['egw_info']['user']['account_firstname'],$GLOBALS['egw_info']['user']['account_lastname']),
|
||||||
$content['id']));
|
$content['id']));
|
||||||
@ -1368,7 +1360,7 @@ class uicontacts extends bocontacts
|
|||||||
$link_id = $link_ids[$n];
|
$link_id = $link_ids[$n];
|
||||||
if (preg_match('/^[a-z_0-9-]+:[:a-z_0-9-]+$/i',$link_app.':'.$link_id)) // gard against XSS
|
if (preg_match('/^[a-z_0-9-]+:[:a-z_0-9-]+$/i',$link_app.':'.$link_id)) // gard against XSS
|
||||||
{
|
{
|
||||||
$this->link->link('addressbook',$content['link_to']['to_id'],$link_app,$link_id);
|
egw_link::link('addressbook',$content['link_to']['to_id'],$link_app,$link_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user