R33687 - in /trunk: addressbook/inc/ etemplate/inc/ projectmanager/inc/

Author: jaytraxx
New Revision: 33687

URL: http://www.egroupware.org/viewvc/egroupware?rev=33687&view=rev
Log:
moved eroles specific code from parent merge class to projectmanager merge class

Modified:
trunk/addressbook/inc/class.addressbook_merge.inc.php
trunk/etemplate/inc/class.bo_merge.inc.php
trunk/projectmanager/inc/class.projectmanager_elements_ui.inc.php
trunk/projectmanager/inc/class.projectmanager_merge.inc.php

Modified: trunk/addressbook/inc/class.addressbook_merge.inc.php
URL: http://www.egroupware.org/viewvc/egroupware/trunk/addressbook/inc/class.addressbook_merge.inc.php?rev=33687&r1=33686&r2=33687&view=diff

— trunk/addressbook/inc/class.addressbook_merge.inc.php (original)
+++ trunk/addressbook/inc/class.addressbook_merge.inc.php Thu Jan 27 18:08:40 2011
@@ -37,10 +37,9 @@
*
* @param int $id id of entry
* @param string &$content=null content to create some replacements only if they are use

    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @return array|boolean
      */
  • protected function get_replacements($id,&$content=null,$eroles=null)
  • protected function get_replacements($id,&$content=null)
    {
    if (!($replacements = $this->contact_replacements($id)))
    {

Modified: trunk/etemplate/inc/class.bo_merge.inc.php
URL: http://www.egroupware.org/viewvc/egroupware/trunk/etemplate/inc/class.bo_merge.inc.php?rev=33687&r1=33686&r2=33687&view=diff

— trunk/etemplate/inc/class.bo_merge.inc.php (original)
+++ trunk/etemplate/inc/class.bo_merge.inc.php Thu Jan 27 18:08:40 2011
@@ -69,10 +69,9 @@
*
* @param int $id id of entry
* @param string &$content=null content to create some replacements only if they are use

    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @return array|boolean array with replacements or false if entry not found
      */
  • abstract protected function get_replacements($id,&$content=null,$eroles=null);
  • abstract protected function get_replacements($id,&$content=null);

    /**

    • Return if merge-print is implemented for given mime-type (and/or extension)
      @@ -124,7 +123,7 @@
    • Return replacements for a contact
    • @param int|string|array $contact contact-array or id
    • @param string $prefix=’’ prefix like eg. ‘user’ or ‘erole’
    • @param string $prefix=’’ prefix like eg. ‘user’
    • @return array
      */
      public function contact_replacements($contact,$prefix=’’)
      @@ -253,10 +252,9 @@
    • @param string &$err error-message on error
    • @param string $mimetype mimetype of complete document, eg. text/*, application/vnd.oasis.opendocument.text, application/rtf
    • @param array $fix=null regular expression => replacement pairs eg. to fix garbled placeholders
    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @return string|boolean merged document or false on error
      */
  • public function &merge($document,$ids,&$err,$mimetype,array $fix=null,array $eroles=null)
  • public function &merge($document,$ids,&$err,$mimetype,array $fix=null)
    {
    if (!($content = file_get_contents($document)))
    {
    @@ -268,7 +266,7 @@
    {
    $mimetype = ‘application/rtf’;
    }
  •   return $this->merge_string($content,$ids,$err,$mimetype,$fix,$eroles);
    
  •   return $this->merge_string($content,$ids,$err,$mimetype,$fix);
    

    }

    /**
    @@ -279,10 +277,9 @@

    • @param string &$err error-message on error
    • @param string $mimetype mimetype of complete document, eg. text/*, application/vnd.oasis.opendocument.text, application/rtf
    • @param array $fix=null regular expression => replacement pairs eg. to fix garbled placeholders
    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @return string|boolean merged document or false on error
      */
  • public function &merge_string($content,$ids,&$err,$mimetype,array $fix=null,array $eroles=null)
  • public function &merge_string($content,$ids,&$err,$mimetype,array $fix=null)
    {
    if ($mimetype == ‘application/xml’ &&
    preg_match(’/’.preg_quote(’<?mso-application progid="').'([^"]+)'.preg_quote('"?>’).’/’,substr($content,0,200),$matches))
    @@ -358,7 +355,7 @@
    if ($lableprint) $content = $Labelrepeat;

    	// generate replacements
    
  •   	if(!($replacements = $this->get_replacements($id,$content,is_array($eroles) ? $eroles : null)))
    
  •   	if(!($replacements = $this->get_replacements($id,$content)))
      	{
      		$err = lang('Entry not found!');
      		return false;
    

@@ -637,10 +634,9 @@
*
* @param string $document vfs-path of document
* @param array $ids array with contact id(s)

    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @return string with error-message on error, otherwise it does NOT return
      */
  • public function download($document,$ids,$eroles=null)
  • public function download($document,$ids)
    {
    $content_url = egw_vfs::PREFIX.$document;
    switch (($mimetype = egw_vfs::mime_content_type($document)))
    @@ -687,7 +683,7 @@
    $content_url = ‘zip://’.$archive.’#’.($content_file = ‘xl/sharedStrings.xml’);
    break;
    }
  •   if (!($merged =& $this->merge($content_url,$ids,$err,$mimetype,$fix,$eroles)))
    
  •   if (!($merged =& $this->merge($content_url,$ids,$err,$mimetype,$fix)))
      {
      	return $err;
      }
    

Modified: trunk/projectmanager/inc/class.projectmanager_elements_ui.inc.php
URL: http://www.egroupware.org/viewvc/egroupware/trunk/projectmanager/inc/class.projectmanager_elements_ui.inc.php?rev=33687&r1=33686&r2=33687&view=diff

— trunk/projectmanager/inc/class.projectmanager_elements_ui.inc.php (original)
+++ trunk/projectmanager/inc/class.projectmanager_elements_ui.inc.php Thu Jan 27 18:08:40 2011
@@ -817,13 +817,12 @@
*
* @param array $ids contact-ids
* @param string $document vfs-path of document

    • @param array $eroles=null array with contact id => erole id pair - used to assign eroles to contacts
    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @param string $prefix=‘document’ or ‘serial_letter’ prefix for the document dir, defaults to ‘document’
    • @return string error-message or error, otherwise the function does NOT return!
      */
      function download_document($ids,$document=’’,$eroles=null,$prefix=‘document’)
      {
  •   $document = $this->prefs[$prefix.'_dir'].'/'.$document;
      
      if (!@egw_vfs::stat($document))
    

@@ -833,8 +832,9 @@

	require_once(EGW_INCLUDE_ROOT.'/projectmanager/inc/class.projectmanager_merge.inc.php');
	$document_merge = new projectmanager_merge();
  •   return $document_merge->download($document,$ids,$eroles);
    
  •   $document_merge->set_eroles($eroles);
    
  •   return $document_merge->download($document,$ids);
    
    }

}

Modified: trunk/projectmanager/inc/class.projectmanager_merge.inc.php
URL: http://www.egroupware.org/viewvc/egroupware/trunk/projectmanager/inc/class.projectmanager_merge.inc.php?rev=33687&r1=33686&r2=33687&view=diff

— trunk/projectmanager/inc/class.projectmanager_merge.inc.php (original)
+++ trunk/projectmanager/inc/class.projectmanager_merge.inc.php Thu Jan 27 18:08:40 2011
@@ -22,6 +22,13 @@
* @var array
*/
var $public_functions = array(‘show_replacements’ => true);
+

  • /**

    • Element roles - array with keys app, app_id and erole_id
    • @var array
  • */

  • var $eroles = null;

    /**

    • Constructor
      @@ -38,10 +45,9 @@
    • @param int $id id of entry
    • @param string &$content=null content to create some replacements only if they are in use
    • @param array $eroles=null element roles with keys app, app_id and erole_id
    • @return array|boolean
      */
  • protected function get_replacements($id,&$content=null,$eroles=null)
  • protected function get_replacements($id,&$content=null)
    {
    $replacements = array();

@@ -57,14 +63,15 @@
//}

	// further replacements are made by eroles (if given)
  •   if(is_array($eroles))
    
  •   if(!empty($this->eroles) && is_array($this->eroles))
      {			
      	$projectmanager_eroles_so = new projectmanager_eroles_so();
    
  •   	foreach($eroles as $erole)
    
  •   	foreach($this->eroles as $erole)
      	{
      		switch($erole['app']) {
      			case 'addressbook':
    
  •   				if($replacement = $this->contact_replacements($erole['app_id'],'erole/'.$projectmanager_eroles_so->id2title($erole['erole_id'])))						{
    
  •   				if($replacement = $this->contact_replacements($erole['app_id'],'erole/'.$projectmanager_eroles_so->id2title($erole['erole_id'])))
    
  •   				{
      					$replacements += $replacement;
      				}
      				break;
    

@@ -77,6 +84,20 @@
}

	return empty($replacements) ? false : $replacements;
  • }

  • /**

    • Set element roles for merging
    • @param array $eroles element roles with keys app, app_id and erole_id
    • @return boolean true on success
  • */

  • public function set_eroles($eroles)

  • {

  •   if(empty($eroles)) return false;
    
  •   $this->eroles = $eroles;
    
  •   return true;
    

    }

    /**


Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d


eGroupWare-cvs mailing list
eGroupWare-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/egroupware-cvs