[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] CVS: email/inc class.uisearch.inc.php, NONE, 1.1.2.1
From: |
Dave Hall <address@hidden> |
Subject: |
[Phpgroupware-cvs] CVS: email/inc class.uisearch.inc.php, NONE, 1.1.2.1 class.boaction.inc.php, 1.17, 1.17.2.1 class.boattach_file.inc.php, 1.4, 1.4.2.1 class.bocompose.inc.php, 1.8, 1.8.2.1 class.bofilters.inc.php, 1.14, 1.14.2.1 class.bofolder.inc.php, 1.8, 1.8.2.1 class.boindex.inc.php, 1.30.2.3, 1.30.2.4 class.bomessage.inc.php, 1.14, 1.14.2.1 class.bopreferences.inc.php, 1.23.2.2, 1.23.2.3 class.bosend.inc.php, 1.11, 1.11.2.1 class.html_widgets.inc.php, 1.3.2.2, 1.3.2.3 class.mail_dcom.inc.php, 1.10, 1.10.2.1 class.mail_dcom_base.inc.php, 1.9, 1.9.2.1 class.mail_dcom_base_sock.inc.php, 1.24, 1.24.2.1 class.mail_dcom_imap.inc.php, 1.21, 1.21.2.1 class.mail_dcom_imap_sock.inc.php, 1.15, 1.15.2.1 class.mail_dcom_nntp.inc.php, 1.4, 1.4.2.1 class.mail_dcom_pop3.inc.php, 1.11, 1.11.2.1 class.mail_filters.inc.php, 1.7, 1.7.2.1 class.mail_msg.inc.php, 1.4, 1.4.2.1 class.mail_msg_base.inc.php, 1.78.2.3, 1.78.2.4 class.mail_msg_display.inc.php, 1.40.2.1, 1.40.2.2 class.mail_msg_wrappers.inc.php, 1.37.2.1, 1.37.2.2 class.mail_send.inc.php, 1.11, 1.11.2.1 class.msg_bootstrap.inc.php, 1.2, 1.2.2.1 class.so_mail_msg.inc.php, 1.1.1.1, 1.1.1.1.2.1 class.spell.inc.php, 1.2, 1.2.2.1 class.spell_struct.inc.php, 1.2, 1.2.2.1 class.spell_svc_none.inc.php, 1.2, 1.2.2.1 class.spell_svc_php.inc.php, 1.2, 1.2.2.1 class.svc_debug.inc.php, 1.1.1.1, 1.1.1.1.2.1 class.svc_nextmatches.inc.php, 1.2, 1.2.2.1 class.ui_mail_debug.inc.php, 1.2, 1.2.2.1 class.uiattach_file.inc.php, 1.2, 1.2.2.1 class.uicompose.inc.php, 1.4.2.1, 1.4.2.2 class.uifilters.inc.php, 1.12.2.2, 1.12.2.3 class.uifolder.inc.php, 1.4.2.1, 1.4.2.2 class.uiindex.inc.php, 1.21.2.1, 1.21.2.2 class.uijsaddressbook.inc.php, 1.3, 1.3.2.1 class.uimessage.inc.php, 1.9.2.2, 1.9.2.3 class.uipreferences.inc.php, 1.16.2.2, 1.16.2.3 functions.inc.php, 1.116, 1.116.2.1 hook_admin.inc.php, 1.6, 1.6.2.1 hook_home.inc.php, 1.56, 1.56.2.1 hook_preferences.inc.php, 1.14.2.4, 1.14.2.5 |
Date: |
Mon, 08 Sep 2003 04:34:10 -0400 |
Update of /cvsroot/phpgroupware/email/inc
In directory subversions:/tmp/cvs-serv26173/inc
Modified Files:
Tag: Version-0_9_16-branch
class.boaction.inc.php class.boattach_file.inc.php
class.bocompose.inc.php class.bofilters.inc.php
class.bofolder.inc.php class.boindex.inc.php
class.bomessage.inc.php class.bopreferences.inc.php
class.bosend.inc.php class.html_widgets.inc.php
class.mail_dcom.inc.php class.mail_dcom_base.inc.php
class.mail_dcom_base_sock.inc.php class.mail_dcom_imap.inc.php
class.mail_dcom_imap_sock.inc.php class.mail_dcom_nntp.inc.php
class.mail_dcom_pop3.inc.php class.mail_filters.inc.php
class.mail_msg.inc.php class.mail_msg_base.inc.php
class.mail_msg_display.inc.php class.mail_msg_wrappers.inc.php
class.mail_send.inc.php class.msg_bootstrap.inc.php
class.so_mail_msg.inc.php class.spell.inc.php
class.spell_struct.inc.php class.spell_svc_none.inc.php
class.spell_svc_php.inc.php class.svc_debug.inc.php
class.svc_nextmatches.inc.php class.ui_mail_debug.inc.php
class.uiattach_file.inc.php class.uicompose.inc.php
class.uifilters.inc.php class.uifolder.inc.php
class.uiindex.inc.php class.uijsaddressbook.inc.php
class.uimessage.inc.php class.uipreferences.inc.php
functions.inc.php hook_admin.inc.php hook_home.inc.php
hook_preferences.inc.php
Added Files:
Tag: Version-0_9_16-branch
class.uisearch.inc.php
Log Message:
merging AM 1.2-dev4-01
***** Error reading new file: [Errno 2] No such file or directory:
'class.uisearch.inc.php'
Index: class.boaction.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.boaction.inc.php,v
retrieving revision 1.17
retrieving revision 1.17.2.1
diff -C2 -r1.17 -r1.17.2.1
*** class.boaction.inc.php 14 Mar 2003 04:00:10 -0000 1.17
--- class.boaction.inc.php 8 Sep 2003 08:33:30 -0000 1.17.2.1
***************
*** 26,29 ****
--- 26,31 ----
'view_html' => True
);
+ // class var to hold content to be downloaded
+ var $output_data='';
// if bomessage wants this preserves, we detect that and store
it here
var $no_fmt='';
***************
*** 33,36 ****
--- 35,39 ----
[...977 lines suppressed...]
! $this->output_data = '';
}
// you may feed "end_request" a msgball or a fldball
and "end_request" will close the acctnum specified therein
***************
*** 1054,1060 ****
$this->msg_bootstrap =
CreateObject('email.msg_bootstrap');
!
$this->msg_bootstrap->ensure_mail_msg_exists('emai.boaction.get_attach',
$this->debug);
! if ($this->debug > 0) { echo 'emai.boaction.view_html:
creating $this->browser <br>'; }
$this->browser = CreateObject('phpgwapi.browser');
--- 1120,1126 ----
$this->msg_bootstrap =
CreateObject('email.msg_bootstrap');
!
$this->msg_bootstrap->ensure_mail_msg_exists('email.boaction.get_attach',
$this->debug);
! if ($this->debug > 0) {
$GLOBALS['phpgw']->msg->dbug->out('email.boaction.view_html: creating
$this->browser <br>'); }
$this->browser = CreateObject('phpgwapi.browser');
Index: class.boattach_file.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.boattach_file.inc.php,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
*** class.boattach_file.inc.php 14 Mar 2003 04:00:10 -0000 1.4
--- class.boattach_file.inc.php 8 Sep 2003 08:33:31 -0000 1.4.2.1
***************
*** 396,400 ****
$alert_msg = lang('Input Error:').'<br>'
. lang('Please submit a filename to
attach').'<br>'
! . lang('You must click').'
"'.lang('Attach File').'" '.lang('for the file to actually upload').'<br>'
. '<br>';
}
--- 396,400 ----
$alert_msg = lang('Input Error:').'<br>'
. lang('Please submit a filename to
attach').'<br>'
! . lang('You must click %1 for the file
to actually upload','"'.lang('Attach File').'"').'.<br>'
. '<br>';
}
Index: class.bocompose.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bocompose.inc.php,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -C2 -r1.8 -r1.8.2.1
Index: class.bofilters.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bofilters.inc.php,v
retrieving revision 1.14
retrieving revision 1.14.2.1
diff -C2 -r1.14 -r1.14.2.1
*** class.bofilters.inc.php 14 Mar 2003 04:00:10 -0000 1.14
--- class.bofilters.inc.php 8 Sep 2003 08:33:31 -0000 1.14.2.1
***************
*** 722,725 ****
--- 722,730 ----
// we can only set a non-array value, but we can use
array string for the base
// but we can grab structures
+
+ // NEW we need to wipe the cached filters
+ $my_location = '0;cached_prefs';
+ if ($this->debug_set_prefs > 1) { echo
'bofilters.save_all_filters_to_repository('.__LINE__.'): NEW: EXPIRE CACHED
PREFERENCES, calling ->msg->so->so_appsession_passthru('.$my_location.', "
")<br>'; }
+
$GLOBALS['phpgw']->msg->so->so_appsession_passthru($my_location, ' ');
// first we delete any existing data at the desired
prefs location
***************
*** 887,903 ****
function do_filter()
{
! if ($this->debug > 0) { echo 'bofilters.do_filter:
ENTERING<br>'; }
if (count($this->all_filters) == 0)
{
! if ($this->debug > 0) { echo
'bofilters.do_filter: LEAVING with ERROR, no filters exist<br>'; }
return False;
}
//if ($this->debug > 0) { echo 'bofilters.do_filter:
LINE '.__LINE__.' call "->msg->event_begin_big_move" to notice event of
impending big batch moves or deletes<br>'; }
//$GLOBALS['phpgw']->msg->event_begin_big_move(array(),
'bofilters.do_filter: LINE '.__LINE__);
// "False" means return $this->not_set if no filter
number was found anywhere
$found_filter_num = $this->obtain_filer_num(False);
! if ($this->debug > 1) { echo
'bofilters.obtain_filer_num: $found_filter_num :
[<code>'.serialize($found_filter_num).'</code>]<br>'."\r\n"; }
if ($found_filter_num == $this->not_set)
--- 892,913 ----
function do_filter()
{
! if ($this->debug > 0) { echo
'bofilters.do_filter('.__LINE__.'): ENTERING<br>'; }
if (count($this->all_filters) == 0)
{
! if ($this->debug > 0) { echo
'bofilters.do_filter('.__LINE__.'): LEAVING with ERROR, no filters exist<br>';
}
return False;
}
//if ($this->debug > 0) { echo 'bofilters.do_filter:
LINE '.__LINE__.' call "->msg->event_begin_big_move" to notice event of
impending big batch moves or deletes<br>'; }
+ // CORRECTION: the move function now buffers the
commands and the count of those buffered commands is kept there, where big move
or not is now determined
//$GLOBALS['phpgw']->msg->event_begin_big_move(array(),
'bofilters.do_filter: LINE '.__LINE__);
+ // filtering thousands of messages can require more time
+ if ($this->debug > 0) { echo
'bofilters.do_filter('.__LINE__.'): calling set_time_limit giving value of 120
ie 2 minutes? <br>'; }
+ set_time_limit(120);
+
// "False" means return $this->not_set if no filter
number was found anywhere
$found_filter_num = $this->obtain_filer_num(False);
! if ($this->debug > 1) { echo
'bofilters.do_filter('.__LINE__.'): $found_filter_num :
[<code>'.serialize($found_filter_num).'</code>]<br>'."\r\n"; }
if ($found_filter_num == $this->not_set)
***************
*** 907,911 ****
for ($filter_idx=0; $filter_idx <
count($this->all_filters); $filter_idx++)
{
! if ($this->debug > 1) { echo
'bofilters.do_filter: run_all_finters_mode: calling
$this->run_single_filter['.$filter_idx.']<br>'; }
$this->run_single_filter((int)$filter_idx);
if ($this->just_testing())
--- 917,921 ----
for ($filter_idx=0; $filter_idx <
count($this->all_filters); $filter_idx++)
{
! if ($this->debug > 1) { echo
'bofilters.do_filter('.__LINE__.'): run_all_finters_mode: calling
$this->run_single_filter['.$filter_idx.']<br>'; }
$this->run_single_filter((int)$filter_idx);
if ($this->just_testing())
***************
*** 920,924 ****
// we were given a filter_num, that means run
THAT FILTER ONLY
$this->do_filter_apply_all = False;
! if ($this->debug > 1) { echo
'bofilters.do_filter: run_single_filter mode: calling
$this->run_single_filter['.$found_filter_num.']<br>'; }
$this->run_single_filter((int)$found_filter_num);
if ($this->just_testing())
--- 930,934 ----
// we were given a filter_num, that means run
THAT FILTER ONLY
$this->do_filter_apply_all = False;
! if ($this->debug > 1) { echo
'bofilters.do_filter('.__LINE__.'): run_single_filter mode: calling
$this->run_single_filter['.$found_filter_num.']<br>'; }
$this->run_single_filter((int)$found_filter_num);
if ($this->just_testing())
***************
*** 956,960 ****
$GLOBALS['phpgw']->common->phpgw_header();
! echo '<h4>Apply Filters Report:</h4>'."\r\n";
for ($filter_idx=0; $filter_idx <
count($this->all_filters); $filter_idx++)
{
--- 966,970 ----
$GLOBALS['phpgw']->common->phpgw_header();
! echo '<h4>'.lang('Apply Filters
Report:').'</h4>'."\r\n";
for ($filter_idx=0; $filter_idx <
count($this->all_filters); $filter_idx++)
{
***************
*** 963,985 ****
parse_str($this_filter['actions'][0]['folder'], $target_folder);
echo '<p>'."\r\n"
! .'<strong>Filter number
'.(string)$filter_idx.':</strong>'.'<br>'."\r\n"
! .' '.'filter name:
['.$this_filter['filtername'].']<br>'."\r\n"
! .' '.'number of
matches: ['.(string)$num_matches.']'.'<br>'."\r\n"
! .' '.'requested filter
action: ['.$this_filter['actions'][0]['judgement'].'] ; Acctnum
['.(string)$target_folder['acctnum'].'] ; Folder:
['.htmlspecialchars($target_folder['folder']).']<br>'."\r\n"
.'</p>'."\r\n"
.'<p> </p>'."\r\n";
}
}
! if ($this->debug > 1) { echo 'bofilters.do_filter:
calling end_request<br>'; }
$GLOBALS['phpgw']->msg->end_request();
! if ($this->debug > 0) { echo 'bofilters.do_filter:
LEAVING<br>'; }
$take_me_to_url = $GLOBALS['phpgw']->link(
'/index.php',
!
'menuaction=email.uifilters.filters_list');
! $take_me_to_href = '<a href="'.$take_me_to_url.'"> Go
Back </a>';
//Header('Location: ' . $take_me_to_url);
! echo
'<br><p>'.' '.$take_me_to_href.'</p>';
! if ($this->debug > 0) { echo 'bofilters.do_filter:
LEAVING<br>'; }
}
--- 973,997 ----
parse_str($this_filter['actions'][0]['folder'], $target_folder);
echo '<p>'."\r\n"
! .'<strong>'.lang('Filter number').'
'.(string)$filter_idx.':</strong>'.'<br>'."\r\n"
! .' '.lang('filter
name:').' ['.$this_filter['filtername'].']<br>'."\r\n"
! .' '.lang('number of
matches:').' ['.(string)$num_matches.']'.'<br>'."\r\n"
!
! .' '.lang('requested
filter action:').' ['.$this_filter['actions'][0]['judgement'].'] ; Acctnum
['.(string)$target_folder['acctnum'].'] ; '.lang('Folder').':
['.htmlspecialchars($target_folder['folder']).']<br>'."\r\n"
.'</p>'."\r\n"
.'<p> </p>'."\r\n";
}
}
! if ($this->debug > 1) { echo
'bofilters.do_filter('.__LINE__.'): calling end_request<br>'; }
$GLOBALS['phpgw']->msg->end_request();
! if ($this->debug > 0) { echo
'bofilters.do_filter('.__LINE__.'): LEAVING<br>'; }
$take_me_to_url = $GLOBALS['phpgw']->link(
'/index.php',
!
//'menuaction=email.uifilters.filters_list');
!
'menuaction=email.uiindex.index');
! $take_me_to_href = '<a href="'.$take_me_to_url.'">
'.lang('Go Back').' </a>';
//Header('Location: ' . $take_me_to_url);
! echo
'<br><p>'.' '.$take_me_to_href.'</p><BR>';
! if ($this->debug > 0) { echo
'bofilters.do_filter('.__LINE__.'): LEAVING<br>'; }
}
***************
*** 993,1014 ****
function run_single_filter($filter_num='')
{
! if ($this->debug > 0) { echo
'bofilters.run_single_filter: ENTERING, feed $filter_num :
[<code>'.serialize($filter_num).'</code>]<br>'; }
if (count($this->all_filters) == 0)
{
! if ($this->debug > 0) { echo
'bofilters.run_single_filter: LEAVING with ERROR, no filters exist<br>'; }
}
$filter_exists = $this->filter_exists($filter_num);
if (!$filter_exists)
{
! if ($this->debug > 0) { echo
'bofilters.run_single_filter: LEAVING with ERROR, filter data for $filter_num
['.$filter_num.'] does not exist, return False<br>'; }
return False;
}
$this_filter = $this->all_filters[$filter_num];
! if ($this->debug > 2) { echo
'bofilters.run_single_filter: $filter_num ['.$filter_num.'] ; $this_filter
DUMP:<pre>'; print_r($this_filter); echo "</pre>\r\n"; }
// WE NEED TO DO THIS FOR EVERY SOURCE ACCOUNT
specified in this filter
for ($src_acct_loop_num=0; $src_acct_loop_num <
count($this_filter['source_accounts']); $src_acct_loop_num++)
{
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: source_accounts loop
['.$src_acct_loop_num.']<br>'; }
// ACCOUNT TO SEARCH (always filter source is
INBOX)
--- 1005,1026 ----
function run_single_filter($filter_num='')
{
! if ($this->debug > 0) { echo
'bofilters.run_single_filter('.__LINE__.'): ENTERING, feed $filter_num :
[<code>'.serialize($filter_num).'</code>]<br>'; }
if (count($this->all_filters) == 0)
{
! if ($this->debug > 0) { echo
'bofilters.run_single_filter('.__LINE__.'): LEAVING with ERROR, no filters
exist<br>'; }
}
$filter_exists = $this->filter_exists($filter_num);
if (!$filter_exists)
{
! if ($this->debug > 0) { echo
'bofilters.run_single_filter('.__LINE__.'): LEAVING with ERROR, filter data for
$filter_num ['.$filter_num.'] does not exist, return False<br>'; }
return False;
}
$this_filter = $this->all_filters[$filter_num];
! if ($this->debug > 2) { echo
'bofilters.run_single_filter('.__LINE__.'): $filter_num ['.$filter_num.'] ;
$this_filter DUMP:<pre>'; print_r($this_filter); echo "</pre>\r\n"; }
// WE NEED TO DO THIS FOR EVERY SOURCE ACCOUNT
specified in this filter
for ($src_acct_loop_num=0; $src_acct_loop_num <
count($this_filter['source_accounts']); $src_acct_loop_num++)
{
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): source_accounts loop
['.$src_acct_loop_num.']<br>'; }
// ACCOUNT TO SEARCH (always filter source is
INBOX)
***************
*** 1022,1031 ****
||
(count($this->inbox_full_msgball_list[$src_acct_loop_num]) > 0))
{
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: already obtained inbox_full_msgball_list, during
a previous filter, for $src_acct_loop_num ['.$src_acct_loop_num.']<br>'; }
}
else
{
// get FULL msgball list for this INBOX
(we always filter INBOXs only)
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: get_msgball_list for later XOR ing for
<code>['.serialize($fake_fldball).']</code><br>'; }
//$this->inbox_full_msgball_list[$src_acct_loop_num] =
$GLOBALS['phpgw']->msg->get_msgball_list($fake_fldball['acctnum'],
$fake_fldball['folder']);
// FIXME: FOR BACKWARDS COMPAT WE GET
AN OLD STYLE MSGBALL LIST
--- 1034,1043 ----
||
(count($this->inbox_full_msgball_list[$src_acct_loop_num]) > 0))
{
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): already obtained
inbox_full_msgball_list, during a previous filter, for $src_acct_loop_num
['.$src_acct_loop_num.']<br>'; }
}
else
{
// get FULL msgball list for this INBOX
(we always filter INBOXs only)
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): get_msgball_list for later XOR ing
for <code>['.serialize($fake_fldball).']</code><br>'; }
//$this->inbox_full_msgball_list[$src_acct_loop_num] =
$GLOBALS['phpgw']->msg->get_msgball_list($fake_fldball['acctnum'],
$fake_fldball['folder']);
// FIXME: FOR BACKWARDS COMPAT WE GET
AN OLD STYLE MSGBALL LIST
***************
*** 1036,1040 ****
// FOR EACH MSG, GET IT'S RAW HEADERS
// only if we have not got them yet
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: get headers for each msg in $src_acct_loop_num
['.$src_acct_loop_num.']<br>'; }
for ($msg_iteration=0; $msg_iteration <
count($this->inbox_full_msgball_list[$src_acct_loop_num]); $msg_iteration++)
{
--- 1048,1052 ----
// FOR EACH MSG, GET IT'S RAW HEADERS
// only if we have not got them yet
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): get headers for each msg in
$src_acct_loop_num ['.$src_acct_loop_num.']<br>'; }
for ($msg_iteration=0; $msg_iteration <
count($this->inbox_full_msgball_list[$src_acct_loop_num]); $msg_iteration++)
{
***************
*** 1044,1048 ****
// we ALREADY hav the headers
// continue to the next message
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: already obtained headers, during a previous
filter, for $src_acct_loop_num ['.$src_acct_loop_num.']<br>'; }
continue;
}
--- 1056,1060 ----
// we ALREADY hav the headers
// continue to the next message
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): already obtained headers, during a
previous filter, for $src_acct_loop_num ['.$src_acct_loop_num.']<br>'; }
continue;
}
***************
*** 1119,1123 ****
{
// this message had already
been filtered AND MOVED OR DELETED, continue to next loop
! if ($this->debug > 1) { echo
'<br>bofilters.run_single_filter: skipping... this message has already been
moved, deleted by a previous filter, $src_acct_loop_num
['.$src_acct_loop_num.'] $msg_iteration ['.$msg_iteration.']<br><br>'; }
continue;
}
--- 1131,1135 ----
{
// this message had already
been filtered AND MOVED OR DELETED, continue to next loop
! if ($this->debug > 1) { echo
'<br>bofilters.run_single_filter('.__LINE__.'): skipping... this message has
already been moved, deleted by a previous filter, $src_acct_loop_num
['.$src_acct_loop_num.'] $msg_iteration ['.$msg_iteration.']<br><br>'; }
continue;
}
***************
*** 1126,1130 ****
// this patiular message has not been
looked at yet, initialize it match keeper value
$this->inbox_full_msgball_list[$src_acct_loop_num][$msg_iteration]['match_keeper']
= 0;
! if ($this->debug > 2) { echo
'bofilters.run_single_filter:
$this->inbox_full_msgball_list['.$src_acct_loop_num.']['.$msg_iteration.'][headers_text]
DUMP:<pre>';
print_r($this->inbox_full_msgball_list[$src_acct_loop_num][$msg_iteration]['headers_text']);
echo "</pre>\r\n"; }
// every header line gets looked at by
every row of match criteria
--- 1138,1142 ----
// this patiular message has not been
looked at yet, initialize it match keeper value
$this->inbox_full_msgball_list[$src_acct_loop_num][$msg_iteration]['match_keeper']
= 0;
! if ($this->debug > 2) { echo
'bofilters.run_single_filter('.__LINE__.'):
$this->inbox_full_msgball_list['.$src_acct_loop_num.']['.$msg_iteration.'][headers_text]
DUMP:<pre>';
print_r($this->inbox_full_msgball_list[$src_acct_loop_num][$msg_iteration]['headers_text']);
echo "</pre>\r\n"; }
// every header line gets looked at by
every row of match criteria
***************
*** 1132,1136 ****
for ($matches_row=0; $matches_row <
count($this_filter['matches']); $matches_row++)
{
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: source_accounts loop ['.$src_acct_loop_num.'] ;
$msg_iteration ['.$msg_iteration.'] ; $matches_row ['.$matches_row.']<br>'; }
// Note on "RECIPIENT" :
to,cc, bcc "tri-fecta" all three headers must be considered
// this is why we made a faux
header line that contains all three of those in one line
--- 1144,1148 ----
for ($matches_row=0; $matches_row <
count($this_filter['matches']); $matches_row++)
{
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): source_accounts loop
['.$src_acct_loop_num.'] ; $msg_iteration ['.$msg_iteration.'] ; $matches_row
['.$matches_row.']<br>'; }
// Note on "RECIPIENT" :
to,cc, bcc "tri-fecta" all three headers must be considered
// this is why we made a faux
header line that contains all three of those in one line
***************
*** 1154,1158 ****
$inspect_me =
stristr($headers_text, "\r\n".$search_key_imap);
// inspect_me will be
everything to the right of the "neede" INCLUDING the "needle" itself and the
REST of the headers
! if ($this->debug > 1) { echo
'bofilters.run_single_filter: $search_key_imap ['.$search_key_imap.'] ;
$comparator ['.$comparator.'] ; $search_for ['.$search_for.']<br>'; }
if ($inspect_me)
{
--- 1166,1170 ----
$inspect_me =
stristr($headers_text, "\r\n".$search_key_imap);
// inspect_me will be
everything to the right of the "neede" INCLUDING the "needle" itself and the
REST of the headers
! if ($this->debug > 1) { echo
'bofilters.run_single_filter('.__LINE__.'): $search_key_imap
['.$search_key_imap.'] ; $comparator ['.$comparator.'] ; $search_for
['.$search_for.']<br>'; }
if ($inspect_me)
{
***************
*** 1165,1169 ****
// get everything FROM
beginning of string TO pos $cut_here (the end of the line);
$inspect_me =
substr($inspect_me, 0, $cut_here);
! if ($this->debug > 1) {
echo 'bofilters.run_single_filter: GOT HEADER TO LOOK IN: $inspect_me
['.htmlspecialchars($inspect_me).']<br>'; }
// look for EXISTS or
NOT EXISTS our search string
if
--- 1177,1181 ----
// get everything FROM
beginning of string TO pos $cut_here (the end of the line);
$inspect_me =
substr($inspect_me, 0, $cut_here);
! if ($this->debug > 1) {
echo 'bofilters.run_single_filter('.__LINE__.'): GOT HEADER TO LOOK IN:
$inspect_me ['.htmlspecialchars($inspect_me).']<br>'; }
// look for EXISTS or
NOT EXISTS our search string
if
***************
*** 1175,1179 ****
)
{
! if
($this->debug > 1) { echo 'bofilters.run_single_filter: ** GOT ROW CRITERIA
MATCH ** $matches_row '.$matches_row.'<br>'; }
// MATCH: this
row matches the search criteria
// i.e. this
header line does -or- does not have the seach for text, as requested
--- 1187,1191 ----
)
{
! if
($this->debug > 1) { echo 'bofilters.run_single_filter('.__LINE__.'): ** GOT
ROW CRITERIA MATCH ** $matches_row '.$matches_row.'<br>'; }
// MATCH: this
row matches the search criteria
// i.e. this
header line does -or- does not have the seach for text, as requested
***************
*** 1210,1214 ****
// header we are
looking for does not exist in this messages headers
// probably lookinf for
an "X-" header, like "X-Mailer:"
! if ($this->debug > 1) {
echo 'bofilters.run_single_filter: requested header $search_key_imap
['.$search_key_imap.'] not in this messages headers<br>'; }
}
// this is the last code that
gets run BEFORE we move on to the next row of match criteria
--- 1222,1226 ----
// header we are
looking for does not exist in this messages headers
// probably lookinf for
an "X-" header, like "X-Mailer:"
! if ($this->debug > 1) {
echo 'bofilters.run_single_filter('.__LINE__.'): requested header
$search_key_imap ['.$search_key_imap.'] not in this messages headers<br>'; }
}
// this is the last code that
gets run BEFORE we move on to the next row of match criteria
Index: class.bofolder.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bofolder.inc.php,v
retrieving revision 1.8
retrieving revision 1.8.2.1
diff -C2 -r1.8 -r1.8.2.1
*** class.bofolder.inc.php 14 Mar 2003 04:00:10 -0000 1.8
--- class.bofolder.inc.php 8 Sep 2003 08:33:31 -0000 1.8.2.1
***************
*** 4,8 ****
* http://www.anglemail.org
*
* Written by Angelo (Angles) Puglisi <address@hidden> *
! * Copyright 2001, 2002 Angelo (Angles) Puglisi
*
* --------------------------------------------
*
* This program is free software; you can redistribute it and/or modify
it *
--- 4,8 ----
* http://www.anglemail.org
*
* Written by Angelo (Angles) Puglisi <address@hidden> *
! * Copyright 2001, 2003 Angelo (Angles) Puglisi
*
* --------------------------------------------
*
* This program is free software; you can redistribute it and/or modify
it *
***************
*** 26,30 ****
--- 26,33 ----
var $use_cachable_status = True;
//var $use_cachable_status = False;
+
var $debug = 0;
+ //var $debug = 3;
+
var $xi;
***************
*** 95,98 ****
--- 98,104 ----
$source_fldball =
$GLOBALS['phpgw']->msg->get_arg_value('source_fldball');
$target_fldball =
$GLOBALS['phpgw']->msg->get_arg_value('target_fldball');
+ if ($this->debug > 1) { echo
'email.bofolder.folder_action('.__LINE__.'): we will delete, rename, or create
a folder; ->msg->get_arg_value("action") is
['.$GLOBALS['phpgw']->msg->get_arg_value('action').']'.'<br>'; }
+ if ($this->debug > 2) { echo
'email.bofolder.folder_action('.__LINE__.'): $source_fldball DUMP<pre>';
print_r($source_fldball); echo '<pre>'; }
+ if ($this->debug > 2) { echo
'email.bofolder.folder_action('.__LINE__.'): $target_fldball DUMP<pre>';
print_r($target_fldball); echo '<pre>'; }
// ---- Establish Email Server
Connectivity Conventions ----
***************
*** 142,146 ****
// add server string to target folder
! $target_fldball['folder'] =
$server_str.$target_fldball['folder'];
// NOTE the dcom class will set a flag
indicating a folder list change, ->dcom->folder_list_changed=True
--- 148,157 ----
// add server string to target folder
! //$target_fldball['folder'] =
$server_str.$target_fldball['folder'];
! //$target_fldball['folder'] =
$target_fldball['folder'];
! $re_encoded =
$GLOBALS['phpgw']->msg->prep_folder_out($target_fldball['folder']);
! $target_fldball['folder'] = $re_encoded;
!
! if ($this->debug > 2) { echo
'email.bofolder.folder_action('.__LINE__.'): processed $target_fldball
DUMP<pre>'; print_r($target_fldball); echo '<pre>'; }
// NOTE the dcom class will set a flag
indicating a folder list change, ->dcom->folder_list_changed=True
***************
*** 153,162 ****
||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create_expert'))
{
! $success =
$GLOBALS['phpgw']->msg->phpgw_createmailbox($target_fldball);
}
elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete')
||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete_expert'))
{
! $success =
$GLOBALS['phpgw']->msg->phpgw_deletemailbox($target_fldball);
}
elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
--- 164,182 ----
||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'create_expert'))
{
! if ($this->debug > 1) { echo
'email.bofolder.folder_action('.__LINE__.'): calling
->phpgw_createmailbox_ex($target_fldball) DUMP<pre>'; print_r($target_fldball);
echo '<pre>'; }
! //$success =
$GLOBALS['phpgw']->msg->phpgw_createmailbox($target_fldball);
! $success =
$GLOBALS['phpgw']->msg->phpgw_createmailbox_ex($target_fldball);
! // UPDATE: use new
phpgw_createmailbox_ex, it wants NO server str, and a urlENcoded foldername
! //$no_server_str =
str_replace($server_str, '', $target_fldball['folder']);
! //$re_encoded =
$GLOBALS['phpgw']->msg->prep_folder_out($no_server_str);
! //$target_fldball['folder'] =
$re_encoded;
! //if ($this->debug > 1) { echo
'email.bofolder.folder_action('.__LINE__.'): calling
->phpgw_createmailbox_ex($target_fldball) DUMP<pre>'; print_r($target_fldball);
echo '<pre>'; }
! //$success =
$GLOBALS['phpgw']->msg->phpgw_createmailbox_ex($target_fldball);
}
elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete')
||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'delete_expert'))
{
! //$success =
$GLOBALS['phpgw']->msg->phpgw_deletemailbox($target_fldball);
! $success =
$GLOBALS['phpgw']->msg->phpgw_deletemailbox_ex($target_fldball);
}
elseif
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
***************
*** 165,188 ****
//
phpgw->msg->get_arg_value('source_folder') is taken directly from the listbox,
so it *should* be official long name already
// but it does need to be
prep'd in because we prep out the foldernames put in that listbox
! $source_preped =
$GLOBALS['phpgw']->msg->prep_folder_in($source_fldball['folder']);
! $source_fldball['folder'] =
$source_preped;
// add server string to source
folder
! $source_fldball['folder'] =
$server_str.$source_fldball['folder'];
! $success =
$GLOBALS['phpgw']->msg->phpgw_renamemailbox($source_fldball, $target_fldball);
}
// Result Message
if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
{
$action_report =
!
$GLOBALS['phpgw']->msg->get_arg_value('action') .' '.lang('folder').'
"'.htmlspecialchars($source_fldball['folder']).'" '
! .lang('to').'
"'.htmlspecialchars($target_fldball['folder']) .'" '
.lang('result').' : ';
}
else
{
! $action_report =
$GLOBALS['phpgw']->msg->get_arg_value('action').' '.lang('folder').'
"'.htmlspecialchars($target_fldball['folder']).'" '
! .lang('result').' : ';
}
// did it work or not
--- 185,253 ----
//
phpgw->msg->get_arg_value('source_folder') is taken directly from the listbox,
so it *should* be official long name already
// but it does need to be
prep'd in because we prep out the foldernames put in that listbox
! //$source_preped =
$GLOBALS['phpgw']->msg->prep_folder_in($source_fldball['folder']);
! //$source_fldball['folder'] =
$source_preped;
// add server string to source
folder
! //$source_fldball['folder'] =
$server_str.$source_fldball['folder'];
! //$success =
$GLOBALS['phpgw']->msg->phpgw_renamemailbox($source_fldball, $target_fldball);
! $src_re_encoded =
$GLOBALS['phpgw']->msg->prep_folder_out($source_fldball['folder']);
! $source_fldball['folder'] =
$src_re_encoded;
! $success =
$GLOBALS['phpgw']->msg->phpgw_renamemailbox_ex($source_fldball,
$target_fldball);
}
// Result Message
+ // we are not sure which folder will
actually exists, new or old, so we can not really use "prep_folder_in" unless
we check
+ if (isset($target_fldball['folder']))
+ {
+ if
($GLOBALS['phpgw']->msg->prep_folder_in($target_fldball['folder']))
+ {
+ $target_folder_decoded
= $GLOBALS['phpgw']->msg->prep_folder_in($target_fldball['folder']);
+ }
+ elseif
(urldecode($target_fldball['folder']))
+ {
+ $target_folder_decoded
= urldecode($target_fldball['folder']);
+ }
+ else
+ {
+ $target_folder_decoded
= lang('Unable to get target folder name');
+ }
+ }
+ if (isset($source_fldball['folder']))
+ {
+ if
($GLOBALS['phpgw']->msg->prep_folder_in($source_fldball['folder']))
+ {
+ $source_folder_decoded
= $GLOBALS['phpgw']->msg->prep_folder_in($source_fldball['folder']);
+ }
+ elseif
(urldecode($source_fldball['folder']))
+ {
+ $source_folder_decoded
= urldecode($source_fldball['folder']);
+ }
+ else
+ {
+ $source_folder_decoded
= lang('Unable to get source folder name');
+ }
+ }
+
if
(($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename')
||
($GLOBALS['phpgw']->msg->get_arg_value('action') == 'rename_expert'))
{
$action_report =
!
'<em>'.$GLOBALS['phpgw']->msg->get_arg_value('action') .'
'.lang('folder').'</em>'
! .'<br>'
!
.htmlspecialchars($source_folder_decoded)
! .'<br>'
!
.'<em>'.lang('to').'</em>'
! .'<br>'
!
.htmlspecialchars($target_folder_decoded)
! .'<br>'
.lang('result').' : ';
}
else
{
! $action_report =
!
'<em>'.$GLOBALS['phpgw']->msg->get_arg_value('action').'
'.lang('folder').'</em>'
! .'<br>'
!
.htmlspecialchars($target_folder_decoded)
! .'<br>'
! .lang('result').' : ';
}
// did it work or not
Index: class.boindex.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.boindex.inc.php,v
retrieving revision 1.30.2.3
retrieving revision 1.30.2.4
diff -C2 -r1.30.2.3 -r1.30.2.4
*** class.boindex.inc.php 6 Apr 2003 10:09:11 -0000 1.30.2.3
--- class.boindex.inc.php 8 Sep 2003 08:33:31 -0000 1.30.2.4
***************
*** 74,78 ****
'lang_total2' => lang('Total
Messages'),
'lang_size2' => lang('Folder Size'),
! 'stats_to_txt' => '-', // this is not
the word in other lang's as the other lang('to')'s
'lang_to' => lang('to'),
'lang_get_size' => lang('get size'),
--- 74,80 ----
'lang_total2' => lang('Total
Messages'),
'lang_size2' => lang('Folder Size'),
! //'stats_to_txt' => lang('to'),
! // ralfbecker: this is not the word in other
lang's as the other lang('to')'s
! 'stats_to_txt' => '-',
'lang_to' => lang('to'),
'lang_get_size' => lang('get size'),
***************
*** 83,87 ****
'lang_delete' => lang('delete'),
'mlist_attach_txt' => lang('file'),
! 'lang_inbox' => lang('INBOX')
);
--- 85,94 ----
'lang_delete' => lang('delete'),
'mlist_attach_txt' => lang('file'),
! 'lang_inbox' => lang('INBOX'),
! 'lang_flagged' => lang('flagged'),
! 'lang_answered' => lang('answered'),
! 'lang_draft' => lang('draft'),
! 'lang_deleted' => lang('deleted'),
! 'lang_important' =>
lang('important')
);
***************
*** 573,587 ****
// FIXME
- /* TEST-RALFBECKER
$this->xi['email_prefs_link'] = $GLOBALS['phpgw']->link(
'/index.php',
'menuaction=email.uipreferences.preferences'
.'&ex_acctnum='.$GLOBALS['phpgw']->msg->get_acctnum());
- */
- $acctnum = $GLOBALS['phpgw']->msg->get_acctnum();
- $this->xi['email_prefs_link'] =
$GLOBALS['phpgw']->link('/preferences/preferences.php',array(
- 'appname' => 'email',
- 'prefix' => $acctnum ? 'ex_accounts/'.$acctnum
: ''
- ));
$this->xi['email_prefs_img'] =
$GLOBALS['phpgw']->msg->img_maketag($GLOBALS['phpgw']->msg->_image_on('email',$this->icon_theme.'/customize-'.$this->icon_size,'_on'),$this->xi['folders_txt1'],'','','0');
--- 580,587 ----
***************
*** 612,615 ****
--- 612,616 ----
}
+ /*
// DEPRECIATED
$this->xi['ctrl_bar_acct_0_link'] =
$GLOBALS['phpgw']->link(
***************
*** 635,639 ****
.'&start=');
$this->xi['ctrl_bar_acct_1_link'] = '<a
href="'.$this->xi['ctrl_bar_acct_1_link'].'">'.'goto extra 1'.'</a>';
!
$this->xi['ctrl_bar_back1'] =
$GLOBALS['phpgw_info']['theme']['row_on'];
--- 636,640 ----
.'&start=');
$this->xi['ctrl_bar_acct_1_link'] = '<a
href="'.$this->xi['ctrl_bar_acct_1_link'].'">'.'goto extra 1'.'</a>';
! */
$this->xi['ctrl_bar_back1'] =
$GLOBALS['phpgw_info']['theme']['row_on'];
***************
*** 774,778 ****
//if (
$GLOBALS['phpgw']->msg->get_folder_short($GLOBALS['phpgw']->msg->get_arg_value('folder'))
// !=
$GLOBALS['phpgw']->msg->get_folder_short($GLOBALS['phpgw']->msg->get_pref_value('sent_folder_name')))
! // try this new core function
$querey_fldball = array();
$querey_fldball['acctnum'] =
$GLOBALS['phpgw']->msg->get_acctnum();
--- 775,783 ----
//if (
$GLOBALS['phpgw']->msg->get_folder_short($GLOBALS['phpgw']->msg->get_arg_value('folder'))
// !=
$GLOBALS['phpgw']->msg->get_folder_short($GLOBALS['phpgw']->msg->get_pref_value('sent_folder_name')))
! // UPDATE use this new core function
! // NOTE how to do the querey we need a folder name
"prepped out" i.e. urlencoded
! // and also note that for some backwards reason the arg
"folder" is one of the only times a folder name is stored "prepped in", this is
a grandfathered in situation
! // NOTE: this common_folder_is querey for "Sent" folder
can not be true unless user has pref "Use Sent Folder" set to True!
! // i.e. a folder named "Sent" is not THE sent folder
unless the prefs say so
$querey_fldball = array();
$querey_fldball['acctnum'] =
$GLOBALS['phpgw']->msg->get_acctnum();
***************
*** 805,825 ****
$this->xi['check_image'] =
$GLOBALS['phpgw']->common->image_on('email','check','_on');
//$this->xi['mlist_attach'] = '<div
align="right">'.'<img src="'.$this->xi['attach_img'].'"
alt="'.$this->xi['mlist_attach_txt'].'">'.'</div>';
! $this->xi['mlist_attach'] = '<img
src="'.$this->xi['attach_img'].'" alt="'.$this->xi['mlist_attach_txt'].'">';
$this->xi['flagged_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','flag-for-followup-16','_on')
! .'"
alt="'.$this->xi['FIXME_flagged'].'">';
$this->xi['answered_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','replied','_on')
! .'"
alt="'.$this->xi['FIXME_answered'].'">';
$this->xi['draft_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','regular_draft','_on')
! .'"
alt="'.$this->xi['FIXME_draft'].'">';
$this->xi['deleted_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','deleted','_on')
! .'"
alt="'.$this->xi['FIXME_deleted'].'">';
// loop thru the messages and get the data that the UI
will display
--- 810,843 ----
$this->xi['check_image'] =
$GLOBALS['phpgw']->common->image_on('email','check','_on');
//$this->xi['mlist_attach'] = '<div
align="right">'.'<img src="'.$this->xi['attach_img'].'"
alt="'.$this->xi['mlist_attach_txt'].'">'.'</div>';
! $this->xi['mlist_attach'] = '<img
src="'.$this->xi['attach_img'].'" title="'.$this->xi['mlist_attach_txt'].'"
alt="'.$this->xi['mlist_attach_txt'].'">';
$this->xi['flagged_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','flag-for-followup-16','_on')
! .'"
title="'.$this->xi['lang_flagged'].'"'
! .'"
alt="'.$this->xi['lang_flagged'].'">';
$this->xi['answered_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','replied','_on')
! .'"
title="'.$this->xi['lang_answered'].'"'
! .'"
alt="'.$this->xi['lang_answered'].'">';
$this->xi['draft_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','regular_draft','_on')
! .'" title="'.$this->xi['lang_draft'].'"'
! .'" alt="'.$this->xi['lang_draft'].'">';
$this->xi['deleted_img'] =
'<img src="'
.$GLOBALS['phpgw']->common->image_on('email','deleted','_on')
! .'"
title="'.$this->xi['lang_deleted'].'"'
! .'"
alt="'.$this->xi['lang_deleted'].'">';
! /*
! // FUTURE USE: MS mail puts "important" indicator in
the message headers
! // note do we have an image for this yet?
! $this->xi['important_img'] =
! '<img src="'
!
.$GLOBALS['phpgw']->common->image_on('email','important','_on')
! .'"
title="'.$this->xi['lang_important'].'"'
! .'"
alt="'.$this->xi['lang_important'].'">';
! */
// loop thru the messages and get the data that the UI
will display
***************
*** 869,872 ****
--- 887,891 ----
if ($this->xi['mailsvr_supports_folders'])
{
+ /*
$feed_args = Array();
$feed_args = Array(
***************
*** 882,885 ****
--- 901,911 ----
);
$this->xi['delmov_listbox'] =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
+ */
+ // UPDATE use the newer widgets high level
function
+ $my_widgets =
CreateObject('email.html_widgets');
+ $skip_fldball = array();
+ $skip_fldball['acctnum'] =
$GLOBALS['phpgw']->msg->get_acctnum();
+ $skip_fldball['folder'] =
$GLOBALS['phpgw']->msg->prep_folder_out($GLOBALS['phpgw']->msg->get_arg_value('folder'));
+ $this->xi['delmov_listbox'] =
$my_widgets->all_folders_combobox('delmov', True, $skip_fldball);
}
else
***************
*** 887,905 ****
$this->xi['delmov_listbox'] = ' ';
}
! $delmov_text = lang('Delete');
! $delmov_image =
$GLOBALS['phpgw']->msg->img_maketag($GLOBALS['phpgw']->msg->_image_on('email',$this->icon_theme.'/trash-'.$this->icon_size,'_on'),$delmov_text,'','','0');
! $this->xi['delmov_image'] = $delmov_image;
! //$delmov_image =
$GLOBALS['phpgw']->msg->img_maketag($GLOBALS['phpgw']->common->image_on('email',$icon_theme.'-trash-'.$icon_size,'_on'),$delmov_text,'','','0');
! //$delmov_image =
$GLOBALS['phpgw']->msg->img_maketag($this->xi['image_dir'].'/'.$this->icon_theme.'-trash-'.$this->icon_size.'.gif',$this->xi['delmov_text'],'','','0');
$delmov_onclick = "javascript:do_action('delall')";
switch
($GLOBALS['phpgw']->msg->get_pref_value('button_type',$acctnum)){
case 'text':
! $this->xi['delmov_button'] = '<a
href="'.$delmov_onclick.'">'.$delmov_text.'</a>';
break;
case 'image':
! $this->xi['delmov_button'] = '<a
href="'.$delmov_onclick.'">'.$delmov_image.'</a>';
break;
case 'both':
! $this->xi['delmov_button'] = '<a
href="'.$delmov_onclick.'">'.$delmov_image.' '.$delmov_text.'</a>';
break;
}
--- 913,929 ----
$this->xi['delmov_listbox'] = ' ';
}
! $this->xi['delmov_image'] =
$GLOBALS['phpgw']->msg->img_maketag($GLOBALS['phpgw']->msg->_image_on('email',$this->icon_theme.'/trash-'.$this->icon_size,'_on'),$this->xi['lang_delete'],'','','0');
! //$this->xi['delmov_image'] =
$GLOBALS['phpgw']->msg->img_maketag($GLOBALS['phpgw']->common->image_on('email',$icon_theme.'-trash-'.$icon_size,'_on'),$this->xi['lang_delete'],'','','0');
! //$this->xi['delmov_image'] =
$GLOBALS['phpgw']->msg->img_maketag($this->xi['image_dir'].'/'.$this->icon_theme.'-trash-'.$this->icon_size.'.gif',$this->xi['lang_delete'],'','','0');
$delmov_onclick = "javascript:do_action('delall')";
switch
($GLOBALS['phpgw']->msg->get_pref_value('button_type',$acctnum)){
case 'text':
! $this->xi['delmov_button'] = '<a
href="'.$delmov_onclick.'">'.$this->xi['lang_delete'].'</a>';
break;
case 'image':
! $this->xi['delmov_button'] = '<a
href="'.$delmov_onclick.'">'.$this->xi['delmov_image'].'</a>';
break;
case 'both':
! $this->xi['delmov_button'] = '<a
href="'.$delmov_onclick.'">'.$this->xi['delmov_image'].' '.$this->xi['lang_delete'].'</a>';
break;
}
***************
*** 1067,1081 ****
$this->xi['folders_btn'] = ' ';
}
- /* TEST-RALFBECKER
$this->xi['email_prefs_link'] = $GLOBALS['phpgw']->link(
'/index.php',
'menuaction=email.uipreferences.preferences');
- */
- $acctnum = $GLOBALS['phpgw']->msg->get_acctnum();
- $this->xi['email_prefs_link'] =
$GLOBALS['phpgw']->link('/preferences/preferences.php',array(
- 'appname' => 'email',
- 'prefix' => $acctnum ? 'ex_accounts/'.$acctnum
: ''
- ));
-
$this->xi['filters_link'] = $GLOBALS['phpgw']->link(
'/'.$GLOBALS['phpgw_info']['flags']['currentapp'].'/filters.php');
--- 1091,1097 ----
Index: class.bomessage.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bomessage.inc.php,v
retrieving revision 1.14
retrieving revision 1.14.2.1
diff -C2 -r1.14 -r1.14.2.1
*** class.bomessage.inc.php 14 Mar 2003 04:00:10 -0000 1.14
--- class.bomessage.inc.php 8 Sep 2003 08:33:31 -0000 1.14.2.1
***************
*** 27,38 ****
--- 27,50 ----
'message_data' => True
);
+ // Convience var REFERENCE to globals[phpgw]->msg
+ var $msg='##NOTHING##';
+
var $preserve_no_fmt = True;
//var $preserve_no_fmt = False;
var $no_fmt='';
+ // do we show both plain and enhanced (html, apple "enriched")
parts of an alternative set
+ // or do we hide the simpler plain part of the pair
+ var $hide_alt_hide = True;
+ //var $hide_alt_hide = False;
+
var $debug = 0;
//var $debug = 2;
//var $debug = 3;
+ // Special Debug data assembled about the message
+ var $show_debug_parts_summary=0;
+ //var $show_debug_parts_summary=1;
+
var $debug_nav = 0;
***************
*** 136,145 ****
@author Angles
*/
! $this->xi['lang_warn_has_iframe_maybe_klez'] =
lang('warn_has_iframe_maybe_klez');
! $this->xi['lang_warn_script_tags'] =
lang('warn_script_tags');
! $this->xi['lang_warn_b64_encoded_displayable'] =
lang('warn_b64_encoded_displayable');
! $this->xi['lang_warn_attachment_only_mail'] =
lang('warn_attachment_only_mail');
! $this->xi['lang_warn_attachment_name_dangerous'] =
lang('warn_attachment_name_DANGEROUS');
! $this->xi['lang_warn_style_sheet'] =
lang('warn_style_sheet');
if ($this->debug > 2) { echo
'class.bomessage.*constructor* ('.__LINE__.'): langs put in $this->xi
DUMP:<pre>'; print_r($this->xi); echo '</pre>'; }
--- 148,166 ----
@author Angles
*/
! //$this->xi['lang_warn_has_iframe_maybe_klez'] =
lang('warn_has_iframe_maybe_klez');
! //$this->xi['lang_warn_script_tags'] =
lang('warn_script_tags');
! //$this->xi['lang_warn_b64_encoded_displayable'] =
lang('warn_b64_encoded_displayable');
! //$this->xi['lang_warn_attachment_only_mail'] =
lang('warn_attachment_only_mail');
! //$this->xi['lang_warn_attachment_name_dangerous'] =
lang('warn_attachment_name_DANGEROUS');
! //$this->xi['lang_warn_style_sheet'] =
lang('warn_style_sheet');
! // Reiner Jung recommends putting the whole phrase
right here instead of the lang file
! // it seems to make it easier for the translator to see
the these as an example to translate
! $this->xi['lang_warn_has_iframe_maybe_klez'] =
lang('html messages with the IFRAME tag may be KLEZ or other worm emails.');
! $this->xi['lang_warn_script_tags'] = lang(' a scrips
tag block of code, javascript or otherwise, is in an inline html message. Not
necessarily bad, but user may want to know. This is SCRIPT ... code ... SCRIPT
blocks, not the "OnMouseOver" stuff.');
! $this->xi['lang_warn_b64_encoded_displayable'] =
lang('It is not RFC standard to base64 encode a part of a message that is NOT
an attachment. NOTE this check is currently done after the message is already
being viewed, it should probably stop the message from being automatically
displayed, i.e. give a "show this" button instead.');
! $this->xi['lang_warn_attachment_only_mail'] =
lang('There is no text or other part of the email to display to the user, all
part(s) are attachments.');
! $this->xi['lang_warn_attachment_name_dangerous'] =
lang('Message has an attachment that is some kind of script or exe file that
Windows users should be warned not to click on it. These are filenames like
attachments the end with the usual "bad stuff", such as bat, inf, pif, com,
exe, reg, vbs, and scr');
! $this->xi['lang_warn_style_sheet'] = lang('This is
really a visual template conflict issue. The phpGW template already has it own
CSS, and style sheets are cascading, subsequent CSS can be inherited by the
page and TOTALLY B0RK the look of the template theme. Or maybe not, only
certain CSS tags are really capable of this such as the css BODY property, or
the A (href) properties.');
!
if ($this->debug > 2) { echo
'class.bomessage.*constructor* ('.__LINE__.'): langs put in $this->xi
DUMP:<pre>'; print_r($this->xi); echo '</pre>'; }
***************
*** 159,168 ****
*/
function message_data()
! {
! if ($this->debug > 0) { echo 'ENTERING:
email.bomessage.message_data'.'<br>'; }
!
// make sure we have msg object and a server stream
! $this->msg_bootstrap =
CreateObject("email.msg_bootstrap");
!
$this->msg_bootstrap->ensure_mail_msg_exists('email.bomessage.message_data',
$this->debug);
// ---- BEGIN BOMESSAGE ----
--- 180,196 ----
*/
function message_data()
! {
// make sure we have msg object and a server stream
! $this->msg_bootstrap =
CreateObject('email.msg_bootstrap');
!
//$this->msg_bootstrap->ensure_mail_msg_exists('email.bomessage.message_data('.__LINE__.')',
$this->debug);
!
$this->msg_bootstrap->ensure_mail_msg_exists('email.bomessage.message_data('.__LINE__.')');
! // we know we have msg object, now make convience
reference
! if ($this->msg == '##NOTHING##')
! {
! $this->msg =& $GLOBALS['phpgw']->msg;
! }
! // now we can use msg object debug calls
! if ($this->debug > 0) {
$this->msg->dbug->out('ENTERING:
email.bomessage.message_data('.__LINE__.')'.'<br>'); }
!
// ---- BEGIN BOMESSAGE ----
***************
*** 247,250 ****
--- 275,279 ----
if ($this->xi['mailsvr_supports_folders'])
{
+ /*
$feed_args = Array();
$feed_args = Array(
***************
*** 260,263 ****
--- 289,299 ----
);
$this->xi['delmov_listbox'] =
$GLOBALS['phpgw']->msg->all_folders_listbox($feed_args);
+ */
+ // UPDATE use the newer widgets high level
function
+ $my_cbox_widgets =
CreateObject('email.html_widgets');
+ $skip_fldball = array();
+ $skip_fldball['acctnum'] =
$GLOBALS['phpgw']->msg->get_acctnum();
+ $skip_fldball['folder'] =
$GLOBALS['phpgw']->msg->prep_folder_out($GLOBALS['phpgw']->msg->get_arg_value('folder'));
+ $this->xi['delmov_listbox'] =
$my_cbox_widgets->all_folders_combobox('delmov', True, $skip_fldball,
$this->xi['lang_move_this_message_into']);
}
else
***************
*** 276,283 ****
// ---- General Information about The Message -----
$msgball =
$GLOBALS['phpgw']->msg->get_arg_value('msgball');
! if ($this->debug > 2) { echo
'email.bomessage.message_data: get_arg_value("msgball") dump: <pre>';
print_r($msgball); echo '</pre>'; }
$msg_struct =
$GLOBALS['phpgw']->msg->phpgw_fetchstructure($msgball);
$msg_headers =
$GLOBALS['phpgw']->msg->phpgw_header($msgball);
/*
// MOVED TO EVENT, TRIGGERED BY GETTING A BODY OR BODY
PART
--- 312,323 ----
// ---- General Information about The Message -----
$msgball =
$GLOBALS['phpgw']->msg->get_arg_value('msgball');
!
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): processed
msgball DUMP:', $msgball); }
$msg_struct =
$GLOBALS['phpgw']->msg->phpgw_fetchstructure($msgball);
$msg_headers =
$GLOBALS['phpgw']->msg->phpgw_header($msgball);
+ if ($this->debug > 2) {
$this->msg->dbug->out('class.bomessage.message_data('.__LINE__.'): $msg_struct
DUMP:', $msg_struct); }
+ if ($this->debug > 2) {
$this->msg->dbug->out('class.bomessage.message_data('.__LINE__.'): $msg_headers
DUMP:', $msg_headers); }
+
/*
// MOVED TO EVENT, TRIGGERED BY GETTING A BODY OR BODY
PART
***************
*** 297,304 ****
$folder_info = array();
$folder_info =
$GLOBALS['phpgw']->msg->get_folder_status_info();
! if ($this->debug > 2) { echo
'email.bomessage.message_data: get_folder_status_info() dump: <pre>';
print_r($folder_info); echo '</pre>'; }
$totalmessages = $folder_info['number_all'];
$subject =
$GLOBALS['phpgw']->msg->get_subject($msg_headers,'');
$message_date =
$GLOBALS['phpgw']->common->show_date($msg_headers->udate);
--- 337,397 ----
$folder_info = array();
$folder_info =
$GLOBALS['phpgw']->msg->get_folder_status_info();
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'):
get_folder_status_info() DUMP:', $folder_info); }
$totalmessages = $folder_info['number_all'];
$subject =
$GLOBALS['phpgw']->msg->get_subject($msg_headers,'');
+
+ /*
+ # begin GMT handling by "acros"
+ #le quitamos el offset a los mensajes de correo electrónico.
+ ######
+ $msg_date2=$msg_headers->date;
+ $comma = strpos($msg_date2,',');
+
+ if($comma)
+ {
+ $msg_date2 = substr($msg_date2,$comma + 2);
+ }
+ //echo 'Msg Date : '.$msg_date."<br>\n";
+ $dta = array();
+ $ta = array();
+
+ $dta = explode(' ',$msg_date2);
+ $ta = explode(':',$dta[3]);
+
+ if(substr($dta[4],0,3) <> 'GMT')
+ {
+ $tzoffset = substr($dta[4],0,1);
+ (int)$tzhours = substr($dta[4],1,2);
+ (int)$tzmins = substr($dta[4],3,2);
+ #echo"$ta[0] y $tzoffset";
+ switch ($tzoffset)
+ {
+ case '+':
+ (int)$ta[0] -= (int)$tzhours;
+ (int)$ta[1] -= (int)$tzmins;
+ #echo"$ta[0]";
+ break;
+ case '-':
+ (int)$ta[0] += (int)$tzhours;
+ (int)$ta[1] += (int)$tzmins;
+ break;
+ }
+ }
+
+ $new_time =
mktime($ta[0],$ta[1],$ta[2],$GLOBALS['month_array'][strtolower($dta[1])],$dta[0],$dta[2])
- ((60 * 60) *
intval($GLOBALS['phpgw_info']['user']['preferences']['common']['tzoffset']));
+
+
+ $new_time2=gmdate("D, d M Y H:m:s",$new_time)." GMT";
+ $msg_headers->date = $new_time2;
+ $msg_headers->udate = $new_time;
+ #echo("<br>Hora cojonuda: $new_time2");
+ #echo"udate $msg_headers->udate<br>";
+ #echo"date $msg_headers->date<br>";
+ #echo"$new_time<br>";
+ #echo("estamos en bomessage 589<br>");
+ # end GMT handling by "acros"
+ */
+
$message_date =
$GLOBALS['phpgw']->common->show_date($msg_headers->udate);
***************
*** 314,318 ****
.$this->no_fmt);
- if ($this->debug > 2) { echo
'class.bomessage.message_data: $msg_struct DUMP:<pre>'; print_r($msg_struct);
echo '</pre>'; }
address@hidden(0);
--- 407,410 ----
***************
*** 320,324 ****
// this is used at least by the calendar for the
notifications
$this->xi['application'] = '';
! $msgtype =
$GLOBALS['phpgw']->msg->phpgw_get_flag('X-phpGW-Type');
$this->xi['msgtype'] = $msgtype;
--- 412,425 ----
// this is used at least by the calendar for the
notifications
$this->xi['application'] = '';
! // THIS IS NOT CACHED DATA, only call this is
session_cache_extreme is FALSE
! // or else we will connect even if we ALREADY HAVE THE
BODY IN CACHE!!!
! if ($GLOBALS['phpgw']->msg->session_cache_extreme ==
True)
! {
! $msgtype = '';
! }
! else
! {
! $msgtype =
$GLOBALS['phpgw']->msg->phpgw_get_flag('X-phpGW-Type');
! }
$this->xi['msgtype'] = $msgtype;
***************
*** 370,374 ****
// in the event that the "get_msgball_list()" returns
bogus data or is not available
$nav_data =
$GLOBALS['phpgw']->msg->prev_next_navigation($folder_info['number_all']);
! if ($this->debug_nav > 2) { echo
'email.bomessage.message_data: $nav_data[] dump <pre>: '; print_r($nav_data);
echo '</pre>'; }
// ---- "Go To Previous Message" Handling -----
--- 471,475 ----
// in the event that the "get_msgball_list()" returns
bogus data or is not available
$nav_data =
$GLOBALS['phpgw']->msg->prev_next_navigation($folder_info['number_all']);
! if ($this->debug_nav > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): $nav_data[]
DUMP:', $nav_data); }
// ---- "Go To Previous Message" Handling -----
***************
*** 482,485 ****
--- 583,588 ----
$from_personal =
$GLOBALS['phpgw']->msg->decode_header_string($from->personal);
}
+ // escape certain undesirable chars before HTML
display
+ $from_personal =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($from_personal);
// display "From" according to user preferences
if
(($GLOBALS['phpgw']->msg->get_isset_pref('show_addresses'))
***************
*** 489,492 ****
--- 592,597 ----
// user wants to see "personal" info
AND the plain address, and we have both available to us
$from_extra_info = ' ('.$from_plain.')
';
+ // escape certain undesirable chars
before HTML display
+ $from_extra_info =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($from_extra_info);
}
else
***************
*** 542,546 ****
else
{
! for ($i = 0; $i < count($msg_headers->to); $i++)
{
$topeople = $msg_headers->to[$i];
--- 647,658 ----
else
{
! $to_loops = count($msg_headers->to);
! // begin test of Maz Num of To loop limitation
! $max_to_loops = 25;
! if ($to_loops > $max_to_loops)
! {
! $to_loops = $max_to_loops;
! }
! for ($i = 0; $i < $to_loops; $i++)
{
$topeople = $msg_headers->to[$i];
***************
*** 554,561 ****
--- 666,677 ----
$to_personal =
$GLOBALS['phpgw']->msg->decode_header_string($topeople->personal);
}
+ // escape certain undesirable chars
before HTML display
+ $to_personal =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($to_personal);
if
(($GLOBALS['phpgw']->msg->get_pref_value('show_addresses') != 'none')
&& ($to_personal != $to_plain))
{
$to_extra_info = '
('.$to_plain.') ';
+ // escape certain undesirable
chars before HTML display
+ $to_extra_info =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($to_extra_info);
}
else
***************
*** 604,608 ****
if (isset($msg_headers->cc) && count($msg_headers->cc)
> 0)
{
! for ($i = 0; $i < count($msg_headers->cc); $i++)
{
$ccpeople = $msg_headers->cc[$i];
--- 720,731 ----
if (isset($msg_headers->cc) && count($msg_headers->cc)
> 0)
{
! $cc_loops = count($msg_headers->cc);
! // begin test of Maz Num of CC loop limitation
! $max_cc_loops = 25;
! if ($cc_loops > $max_cc_loops)
! {
! $cc_loops = $max_cc_loops;
! }
! for ($i = 0; $i < $cc_loops; $i++)
{
$ccpeople = $msg_headers->cc[$i];
***************
*** 616,619 ****
--- 739,744 ----
$cc_personal =
$GLOBALS['phpgw']->msg->decode_header_string($ccpeople->personal);
}
+ // escape certain undesirable chars
before HTML display
+ $cc_personal =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($cc_personal);
//if
(($GLOBALS['phpgw_info']['user']['preferences']['email']['show_addresses'] !=
'none')
if
(($GLOBALS['phpgw']->msg->get_pref_value('show_addresses') != 'none')
***************
*** 621,624 ****
--- 746,751 ----
{
$cc_extra_info = '
('.$cc_plain.') ';
+ // escape certain undesirable
chars before HTML display
+ $cc_extra_info =
$GLOBALS['phpgw']->msg->htmlspecialchars_encode($cc_extra_info);
}
else
***************
*** 672,677 ****
// ---- Generate phpgw CUSTOM FLATTENED FETCHSTRUCTURE
ARRAY -----
$this->part_nice = Array();
$this->part_nice =
$GLOBALS['phpgw']->msg->get_flat_pgw_struct($msg_struct);
! if ($this->debug > 2) { echo
'email.bomessage.message_data: $this->part_nice dump <pre>: ';
print_r($this->part_nice); echo '</pre>'; }
--- 799,805 ----
// ---- Generate phpgw CUSTOM FLATTENED FETCHSTRUCTURE
ARRAY -----
$this->part_nice = Array();
+ // NO NEED TO CACHE THIS DATA, NO CONTACT WITH
MAILSERVER IS NEEDED FOR THIS DATA
$this->part_nice =
$GLOBALS['phpgw']->msg->get_flat_pgw_struct($msg_struct);
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'):
$this->part_nice DUMP:', $this->part_nice); }
***************
*** 815,823 ****
// ---- DEBUG: Show Information About Each Part -----
! // --- UPDATE THIS debug output (gotta be a better way)
and move it somewhere else ---
! $show_debug_parts = False;
! //$show_debug_parts = True;
!
! if ($this->debug > 3)
{
// what's the count in the array?
--- 943,947 ----
// ---- DEBUG: Show Information About Each Part -----
! if ($this->show_debug_parts_summary > 0)
{
// what's the count in the array?
***************
*** 832,844 ****
$crlf = "\r\n";
! $msg_body_info = '<pre>' .$crlf;
$msg_body_info .= 'Top Level Headers:' .$crlf;
$msg_body_info .= $msg_raw_headers .$crlf;
$msg_body_info .= $crlf;
$msg_body_info .= 'This message has
'.$max_parts.' part(s)' .$crlf;
$msg_body_info .= 'deepest_level:
'.$deepest_level .$crlf;
$msg_body_info .= 'Array Keys:
'.$GLOBALS['phpgw']->msg->array_keys_str($this->part_nice) .$crlf;
$msg_body_info .= $crlf;
for ($i = 0; $i < count($this->part_nice); $i++)
{
--- 956,979 ----
$crlf = "\r\n";
! //$msg_body_info = '<pre>' .$crlf;
$msg_body_info .= 'Top Level Headers:' .$crlf;
$msg_body_info .= $msg_raw_headers .$crlf;
$msg_body_info .= $crlf;
+ // what is the deepest level debth
+ $deepest_level = 0;
+ for ($i = 0; $i < count($this->part_nice); $i++)
+ {
+ if
($this->part_nice[$i]['ex_level_debth'] > $deepest_level)
+ {
+ $deepest_level =
$this->part_nice[$i]['ex_level_debth'];
+ }
+ }
+
$msg_body_info .= 'This message has
'.$max_parts.' part(s)' .$crlf;
$msg_body_info .= 'deepest_level:
'.$deepest_level .$crlf;
$msg_body_info .= 'Array Keys:
'.$GLOBALS['phpgw']->msg->array_keys_str($this->part_nice) .$crlf;
$msg_body_info .= $crlf;
+
for ($i = 0; $i < count($this->part_nice); $i++)
{
***************
*** 931,937 ****
}
! $msg_body_info .= '</pre>' .$crlf;
! $this->xi['msg_body_info'] = $msg_body_info;
!
//$GLOBALS['phpgw']->template->parse('V_debug_parts','B_debug_parts');
}
else
--- 1066,1074 ----
}
! //$msg_body_info .= '</pre>' .$crlf;
! //$this->xi['msg_body_info'] = $msg_body_info;
! $this->xi['msg_body_info'] = '';
!
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): assembled
debug data $msg_body_info DUMP:', $msg_body_info);
!
}
else
***************
*** 941,944 ****
--- 1078,1082 ----
}
+
// ----- Message_Display Template Handles it from here
-------
$this->xi['theme_font'] =
$GLOBALS['phpgw_info']['theme']['font'];
***************
*** 1016,1020 ****
// Force Echo Out Unformatted Text for email with 1
part which is a large text messages (in bytes) , such as a system report from
cron
// php (4.0.4pl1 last tested) and some imap servers
(courier and uw-imap are confirmed) will time out retrieving this type of
message
! $force_echo_size = 20000;
--- 1154,1159 ----
// Force Echo Out Unformatted Text for email with 1
part which is a large text messages (in bytes) , such as a system report from
cron
// php (4.0.4pl1 last tested) and some imap servers
(courier and uw-imap are confirmed) will time out retrieving this type of
message
! //$force_echo_size = 20000;
! $force_echo_size = 60000;
***************
*** 1059,1064 ****
for ($i = 0; $i < $count_part_nice; $i++)
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: disp loop: '.($i+1).' of
'.$count_part_nice.'<br>'; }
! if ($this->debug > 3) { echo
'email.bomessage.message_data: d_loop: $this->part_nice[$i] DUMP<pre>';
print_r($this->part_nice[$i]); echo '</pre>'; }
// Do We Break out of this Loop Block
if ($done_processing)
--- 1198,1203 ----
for ($i = 0; $i < $count_part_nice; $i++)
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): disp loop:
'.($i+1).' of '.$count_part_nice.'<br>'); }
! if ($this->debug > 3) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop:
$this->part_nice[$i] DUMP:', $this->part_nice[$i]); }
// Do We Break out of this Loop Block
if ($done_processing)
***************
*** 1081,1085 ****
|| ($this->part_nice[$i]['m_description'] ==
'packagelist')) )
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: "Mime-Ignorant Email Server", Num Parts
is 1 AND part is a container OR packagelist <br>'; }
// ==== MIME IGNORANT SERVER ====
--- 1220,1224 ----
|| ($this->part_nice[$i]['m_description'] ==
'packagelist')) )
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop:
"Mime-Ignorant Email Server", Num Parts is 1 AND part is a container OR
packagelist <br>'); }
// ==== MIME IGNORANT SERVER ====
***************
*** 1143,1147 ****
&& ((int)$this->part_nice[$i]['bytes'] >
$force_echo_size))
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: ECHO OUT: part meets five criteria
<br>'; }
$title_text =
' '.$this->xi['lang_message'].': ';
--- 1282,1286 ----
&& ((int)$this->part_nice[$i]['bytes'] >
$force_echo_size))
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: ECHO
OUT: part meets five criteria <br>'); }
$title_text =
' '.$this->xi['lang_message'].': ';
***************
*** 1192,1197 ****
elseif (($this->part_nice[$i]['m_description']
== 'presentable')
&& (stristr($this->part_nice[$i]['m_keywords'],
'HTML')))
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: part is HTML, presentable <br>'; }
// get the body
--- 1331,1338 ----
elseif (($this->part_nice[$i]['m_description']
== 'presentable')
&& (stristr($this->part_nice[$i]['m_keywords'],
'HTML')))
+ // enriched = part of APPLE MAIL multipart /
alternative subpart where the html part usually is
+ // HOWEVER enriched is not complete html so it
will not render anything special in a browser so we can NOT treat enriched like
html
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is HTML, presentable <br>'); }
// get the body
***************
*** 1232,1238 ****
// ---- HTML Related Parts Handling
----
$parent_idx =
$this->part_nice[$i]['ex_parent_flat_idx'];
- $msg_raw_headers =
$GLOBALS['phpgw']->msg->phpgw_fetchheader($msgball);
// NEEDS UPDATING !!!!!
! $ms_related_str = 'X-MimeOLE: Produced
By Microsoft MimeOLE';
// ---- Replace "Related" part's ID
with a mime reference link
--- 1373,1380 ----
// ---- HTML Related Parts Handling
----
$parent_idx =
$this->part_nice[$i]['ex_parent_flat_idx'];
// NEEDS UPDATING !!!!!
! //$msg_raw_headers =
$GLOBALS['phpgw']->msg->phpgw_fetchheader($msgball);
! //$ms_related_str = 'X-MimeOLE:
Produced By Microsoft MimeOLE';
! // NEW: use $msg_struct object to check
for top level "RELATED" subtype
// ---- Replace "Related" part's ID
with a mime reference link
***************
*** 1240,1246 ****
// update: now common in Ximian
if
(($this->part_nice[$parent_idx]['m_html_related_kids'])
! || (stristr($msg_raw_headers,
$ms_related_str)))
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: * part is RELATED, HTML, presentable
<br>'; }
// typically it's the NEXT mime
part that should be inserted into this one
for ($rel = $i+1; $rel <
count($this->part_nice)+1; $rel++)
--- 1382,1391 ----
// update: now common in Ximian
if
(($this->part_nice[$parent_idx]['m_html_related_kids'])
! //|| (stristr($msg_raw_headers,
$ms_related_str)))
! //|| (stristr($msg_struct->subtype,
'RELATED'))
! //||
(stristr($this->part_nice[$parent_idx]['subtype'], 'RELATED')))
! )
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: *
part is RELATED, HTML, presentable <br>'); }
// typically it's the NEXT mime
part that should be inserted into this one
for ($rel = $i+1; $rel <
count($this->part_nice)+1; $rel++)
***************
*** 1285,1289 ****
if
(preg_match("/<iframe.*>.*<\/iframe>/ismx", $dsp))
{
! if ($this->debug > 2) {
echo 'email.bomessage.message_data: d_loop: part ** HAS IFRAME <br>'; }
//$this->part_nice[$i]['d_threat_level'] .= 'warn_HAS_IFRAME_maybe_KLEZ ';
$this->part_nice[$i]['d_threat_level'] .=
$this->xi['lang_warn_has_iframe_maybe_klez'].' ';
--- 1430,1434 ----
if
(preg_match("/<iframe.*>.*<\/iframe>/ismx", $dsp))
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
** HAS IFRAME <br>'); }
//$this->part_nice[$i]['d_threat_level'] .= 'warn_HAS_IFRAME_maybe_KLEZ ';
$this->part_nice[$i]['d_threat_level'] .=
$this->xi['lang_warn_has_iframe_maybe_klez'].' ';
***************
*** 1309,1313 ****
// stuff the modified html in a
hidden var, submit it then echo it back
if
(($this->part_nice[$parent_idx]['m_html_related_kids'])
! || (stristr($msg_raw_headers,
$ms_related_str)))
{
// -- View As HTML
Button With Special HTML RELATED handling
--- 1454,1461 ----
// stuff the modified html in a
hidden var, submit it then echo it back
if
(($this->part_nice[$parent_idx]['m_html_related_kids'])
! //|| (stristr($msg_raw_headers,
$ms_related_str)))
! //||
(stristr($msg_struct->subtype, 'RELATED'))
! //||
(stristr($this->part_nice[$parent_idx]['subtype'], 'RELATED')))
! )
{
// -- View As HTML
Button With Special HTML RELATED handling
***************
*** 1408,1414 ****
//$GLOBALS['phpgw']->template->parse('V_display_part','B_display_part', True);
}
elseif ($this->part_nice[$i]['m_description']
== 'presentable')
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: part is presentable (non-html) <br>'; }
// ----- get the part from the server
--- 1556,1576 ----
//$GLOBALS['phpgw']->template->parse('V_display_part','B_display_part', True);
}
+ elseif (($this->part_nice[$i]['m_description']
== 'presentable')
+ && (stristr($this->part_nice[$i]['m_keywords'],
'alt_hide'))
+ && ($this->hide_alt_hide == True))
+ {
+ // is this a multipart alternative set,
and this is the plain part, and do not want to show it
+ if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is presentable BUT it is alt_hide so we do NOT want to show it <br>'); }
+
+ // ---- DISPLAY INSTRUCTIONS ----
+ $this->part_nice[$i]['d_instructions']
= 'skip';
+ // is this necessary here?
+ $this->part_nice[$i]['d_processed_as']
= 'empty_part';
+ // LOOP CONTROL
+ $done_processing = False;
+ }
elseif ($this->part_nice[$i]['m_description']
== 'presentable')
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is presentable (non-html) <br>'); }
// ----- get the part from the server
***************
*** 1556,1562 ****
}
}
elseif ($this->part_nice[$i]['m_description']
== 'presentable/image')
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: part is presentable image <br>'; }
$title_text =
$this->xi['lang_section'].': '.$this->part_nice[$i]['m_part_num_mime'];
--- 1718,1738 ----
}
}
+ elseif (($this->part_nice[$i]['m_description']
== 'presentable/image')
+ && (stristr($this->part_nice[$i]['m_keywords'],
'alt_hide'))
+ && ($this->hide_alt_hide == True))
+ {
+ // is this a multipart alternative set,
and this is the plain part, and do not want to show it
+ if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is presentable IMAGE BUT it is alt_hide because it is html related to a parent
so we do NOT want to show it again<br>'); }
+
+ // ---- DISPLAY INSTRUCTIONS ----
+ $this->part_nice[$i]['d_instructions']
= 'skip';
+ // is this necessary here?
+ $this->part_nice[$i]['d_processed_as']
= 'empty_part';
+ // LOOP CONTROL
+ $done_processing = False;
+ }
elseif ($this->part_nice[$i]['m_description']
== 'presentable/image')
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is presentable image <br>'); }
$title_text =
$this->xi['lang_section'].': '.$this->part_nice[$i]['m_part_num_mime'];
***************
*** 1580,1589 ****
elseif ($this->part_nice[$i]['m_description']
== 'attachment')
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: part is attachment <br>'; }
// if this is a 1 part message with
only this attachment, WARN
if (count($this->part_nice) == 1)
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: * WARN message has only 1 part and it is
an attachment <br>'; }
//$this->part_nice[$i]['d_threat_level'] .= 'warn_attachment_only_mail ';
$this->part_nice[$i]['d_threat_level'] .=
$this->xi['lang_warn_attachment_only_mail'].' ';
--- 1756,1765 ----
elseif ($this->part_nice[$i]['m_description']
== 'attachment')
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is attachment <br>'); }
// if this is a 1 part message with
only this attachment, WARN
if (count($this->part_nice) == 1)
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: *
WARN message has only 1 part and it is an attachment <br>'); }
//$this->part_nice[$i]['d_threat_level'] .= 'warn_attachment_only_mail ';
$this->part_nice[$i]['d_threat_level'] .=
$this->xi['lang_warn_attachment_only_mail'].' ';
***************
*** 1593,1597 ****
if
(preg_match('/^.*\.(bat|inf|pif|com|exe|reg|vbs|scr)$/',
$this->part_nice[$i]['ex_part_name']))
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: * WARN attachment has NEFARIOUS filename
extension, ex_part_name: '.$this->part_nice[$i]['ex_part_name'].'<br>'; }
//$this->part_nice[$i]['d_threat_level'] .= 'warn_attachment_name_DANGEROUS ';
$this->part_nice[$i]['d_threat_level'] .=
$this->xi['lang_warn_attachment_name_dangerous'].' ';
--- 1769,1773 ----
if
(preg_match('/^.*\.(bat|inf|pif|com|exe|reg|vbs|scr)$/',
$this->part_nice[$i]['ex_part_name']))
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: *
WARN attachment has NEFARIOUS filename extension, ex_part_name:
'.$this->part_nice[$i]['ex_part_name'].'<br>'); }
//$this->part_nice[$i]['d_threat_level'] .= 'warn_attachment_name_DANGEROUS ';
$this->part_nice[$i]['d_threat_level'] .=
$this->xi['lang_warn_attachment_name_dangerous'].' ';
***************
*** 1623,1627 ****
&& ($this->part_nice[$i]['m_description'] !=
'packagelist'))
{
! if ($this->debug > 2) { echo
'email.bomessage.message_data: d_loop: part is ERROR - unknown <br>'; }
// if we get here then we've got some
kind of error, all things we know about are handle above
--- 1799,1803 ----
&& ($this->part_nice[$i]['m_description'] !=
'packagelist'))
{
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'): d_loop: part
is ERROR - unknown <br>'); }
// if we get here then we've got some
kind of error, all things we know about are handle above
***************
*** 1688,1692 ****
// DO NOT end request yet because the "echo_out" part
(if exists) will require this connection
//$GLOBALS['phpgw']->msg->end_request();
! if ($this->debug > 2) { echo
'email.bomessage.message_data: $this->part_nice (With Instructions) dump:
<pre>'; print_r($this->part_nice); echo '</pre>'; }
}
--- 1864,1868 ----
// DO NOT end request yet because the "echo_out" part
(if exists) will require this connection
//$GLOBALS['phpgw']->msg->end_request();
! if ($this->debug > 2) {
$this->msg->dbug->out('email.bomessage.message_data('.__LINE__.'):
$this->part_nice (With Instructions) DUMP:', $this->part_nice); }
}
Index: class.bopreferences.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bopreferences.inc.php,v
retrieving revision 1.23.2.2
retrieving revision 1.23.2.3
diff -C2 -r1.23.2.2 -r1.23.2.3
*** class.bopreferences.inc.php 6 Apr 2003 10:09:11 -0000 1.23.2.2
--- class.bopreferences.inc.php 8 Sep 2003 08:33:31 -0000 1.23.2.3
***************
*** 33,36 ****
--- 33,38 ----
);
var $msg_bootstrap;
+ // convience reference to the msg object
+ var $msg='##NOTHING##';
var $not_set='-1';
var $std_prefs=array();
***************
*** 51,54 ****
--- 53,57 ----
[...1693 lines suppressed...]
function obtain_ex_acctnum()
{
! if ($this->debug_set_prefs > 0) {
$this->msg->dbug->out('email: bopreferences.obtain_ex_acctnum: ENTERING<br>'); }
! if ($this->debug_set_prefs > 2) {
$this->msg->dbug->out('email: bopreferences.obtain_ex_acctnum:
$GLOBALS[HTTP_POST_VARS] DUMP:', $GLOBALS['phpgw']->msg->ref_POST); }
! if ($this->debug_set_prefs > 2) {
$this->msg->dbug->out('email: bopreferences.obtain_ex_acctnum:
$GLOBALS[HTTP_GET_VARS] DUMP:', $GLOBALS['phpgw']->msg->ref_GET); }
// get fromPOST or GET
$prelim_acctnum = '##NOTHING##';
***************
*** 1982,1986 ****
$final_acctnum = $prelim_acctnum;
}
! if ($this->debug_set_prefs > 0) { echo
'email.bopreferences.obtain_ex_acctnum: LEAVING, returning $final_acctnum:
['.serialize($final_acctnum).'] <br>'; }
return $final_acctnum;
}
--- 1813,1817 ----
$final_acctnum = $prelim_acctnum;
}
! if ($this->debug_set_prefs > 0) {
$this->msg->dbug->out('email.bopreferences.obtain_ex_acctnum: LEAVING,
returning $final_acctnum: ['.serialize($final_acctnum).'] <br>'); }
return $final_acctnum;
}
Index: class.bosend.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.bosend.inc.php,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -C2 -r1.11 -r1.11.2.1
*** class.bosend.inc.php 14 Mar 2003 04:00:21 -0000 1.11
--- class.bosend.inc.php 8 Sep 2003 08:33:32 -0000 1.11.2.1
***************
*** 40,43 ****
--- 40,44 ----
var $debug_struct = 0;
//var $debug_struct = 3;
+ var $company_disclaimer = '';
function bosend()
***************
*** 45,48 ****
--- 46,53 ----
if ($this->debug_constructor > 0) { echo 'email.bosend
*constructor*: ENTERING<br>'; }
+ // May 9, 2003 Ryan Bonham adds company disclaimer code
+ // This Disclaimer will be added to any out going mail
+ //var $company_disclaimer = "\r\n\r\n-- \r\n This
message was sent using Forester GroupWare. Visit the Forest City Regional
website at http://www.forestcityschool.org.\r\nThis message does not
necessarily reflect the views of the Forest City Regional School District, nor
has it been approved or sanctioned by it. \r\n";
+
$this->msg_bootstrap =
CreateObject("email.msg_bootstrap");
$this->msg_bootstrap->ensure_mail_msg_exists('email.bosend.constructor',
$this->debug_send);
***************
*** 522,525 ****
--- 527,534 ----
$body = $body ."\r\n"."\r\n".'-- '."\r\n"
.$user_sig ."\r\n";
}
+ if ($this->company_disclaimer)
+ {
+ $body = $body .$this->company_disclaimer;
+ }
// Step One Addition
// ---- Request Delivery Notification in Headers ----
***************
*** 911,915 ****
{
if
($this->debug_struct > 2) { echo '$next_pos ['.$next_pos.'] :: string
['.$datachunk.'] :: b64 version ['.base64_encode($datachunk).']<br>'."\r\n"; }
!
$this->mail_out['body'][$body_part_num]['mime_body'][$next_pos] =
base64_encode($datachunk);
$next_pos++;
}
--- 920,924 ----
{
if
($this->debug_struct > 2) { echo '$next_pos ['.$next_pos.'] :: string
['.$datachunk.'] :: b64 version ['.base64_encode($datachunk).']<br>'."\r\n"; }
!
$this->mail_out['body'][$body_part_num]['mime_body'][$next_pos] =
base64_encode($datachunk);
$next_pos++;
}
Index: class.html_widgets.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.html_widgets.inc.php,v
retrieving revision 1.3.2.2
retrieving revision 1.3.2.3
diff -C2 -r1.3.2.2 -r1.3.2.3
*** class.html_widgets.inc.php 6 Apr 2003 10:09:11 -0000 1.3.2.2
--- class.html_widgets.inc.php 8 Sep 2003 08:33:32 -0000 1.3.2.3
***************
*** 1,1760 ****
! <?php
!
/**************************************************************************\
! * AngleMail - E-Mail Module for phpGroupWare
*
! * http://www.anglemail.org
*
! * http://www.phpgroupware.org
*
! */
!
/**************************************************************************\
! * AngleMail - HTML Widgets
*
! * This file written by "Angles" Angelo Puglisi <address@hidden> *
! * Email related HTML Widgets and Utility Functions
*
[...3648 lines suppressed...]
! <tr bgcolor="'.$row_on.'" class="row_on">
! <td width="100%" align="left">'."\r\n"
! //.'<small style="font-size: 10pt;">'
! .'<small style="font-size: xx-small;">'
! .'<font color="brown">GeekBar:</font> '
! .'Server Type: ['.$this_server_type.']
-- '
! .'IMAP library: ['.$library_usage.'] --
'
! .'AngleMail Table:
['.$anglemail_table_exists.'] -- '
! .'compression: ['.$compression.'] -- '
! .'spelling: ['.$spell_available.'] -- '
! .'using XSLT: ['.$using_xslt.'] -- '
! .'did connect: ['.$did_connect.'] '
! .'</small>'
! ."\r\n"
! .' </td>
! </table>';
! return $geek_bar;
! }
! }
! ?>
Index: class.mail_dcom.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom.inc.php,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -C2 -r1.10 -r1.10.2.1
*** class.mail_dcom.inc.php 14 Mar 2003 04:00:42 -0000 1.10
--- class.mail_dcom.inc.php 8 Sep 2003 08:33:32 -0000 1.10.2.1
***************
*** 47,53 ****
--- 47,57 ----
{
$mail_server_type = $p1;
+ if ($debug_dcom) { echo 'DCOM DEBUG: found class feed arg $p1
['.serialize($p1).']<br>'; }
+ //{ echo 'DCOM DEBUG: found class feed arg $p1
['.serialize($p1).']<br>'; }
}
else
{
+ if ($debug_dcom) { echo 'DCOM DEBUG: did NOT find class feed
arg $p1 ['.serialize($p1).']<br>'; }
+ //{ echo 'DCOM DEBUG: did NOT find class feed arg $p1
['.serialize($p1).']<br>'; }
$mail_server_type =
$GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'];
}
Index: class.mail_dcom_base.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_base.inc.php,v
retrieving revision 1.9
retrieving revision 1.9.2.1
diff -C2 -r1.9 -r1.9.2.1
*** class.mail_dcom_base.inc.php 14 Mar 2003 04:00:44 -0000 1.9
--- class.mail_dcom_base.inc.php 8 Sep 2003 08:33:32 -0000 1.9.2.1
***************
*** 141,145 ****
$name['folder_before'] =
substr($name['folder_before'], 1);
// translate
! $name['folder_after'] =
imap_utf7_encode($name['folder_before']);
// replace old folder name with new folder name
$name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
--- 141,154 ----
$name['folder_before'] =
substr($name['folder_before'], 1);
// translate
! if (function_exists('recode_string') == False)
! {
! $name['folder_after'] =
imap_utf7_encode($name['folder_before']);
! }
! else
! {
! // Modif UTF-8 by Sam Przyswa so now
compatible with MS-Outlook and Netscape accentued folder name
! $name_tmp =
recode_string("ISO-8859-1..UTF-7", $name['folder_before']);
! $name['folder_after'] =
str_replace("+", "&", $name_tmp);
! }
// replace old folder name with new folder name
$name['translated'] =
str_replace($name['folder_before'], $name['folder_after'], $data_str);
***************
*** 254,258 ****
$name['folder_before'] =
substr($name['folder_before'], 1);
// translate
! $name['folder_after'] =
imap_utf7_decode($name['folder_before']);
// "imap_utf7_decode" returns False if no
translation occured (supposed to, can return identical string too)
if ( ($name['folder_after'] == False)
--- 263,276 ----
$name['folder_before'] =
substr($name['folder_before'], 1);
// translate
! if (function_exists('recode_string') == False)
! {
! $name['folder_after'] =
imap_utf7_decode($name['folder_before']);
! }
! else
! {
! // Modif UTF-8 by Sam Przyswa so now
compatible with MS-Outlook and Netscape accentued folder name
! $name_tmp = str_replace("&", "+",
$name['folder_before']);
! $name['folder_after'] =
recode_string("UTF-7..ISO-8859-1", $name_tmp);
! }
// "imap_utf7_decode" returns False if no
translation occured (supposed to, can return identical string too)
if ( ($name['folder_after'] == False)
***************
*** 294,297 ****
--- 312,337 ----
}
+ /*!
+ @function folder_list_did_change
+ @abstract if folder is created, deleted, or renamed this this
function handles cleanup of stale data in main msg object.
+ @author Angles
+ */
+ function folder_list_did_change()
+ {
+ // NOTE THIS FLAG "folder_list_changed" IS NOW
OBSOLETED SINCE THIS
+ // CALLBACK FUNCTION IS PROVEN TO WORK
+ $this->folder_list_changed = True;
+ if (is_object($GLOBALS['phpgw']->msg))
+ {
+ // call that classes "callback" function
designed to handle cleaning stale folder_list there
+ $sucess =
$GLOBALS['phpgw']->msg->folder_list_change_callback();
+ // if it was handled correctly, then reset the
"folder_list_changed" because we did our job
+ if ($sucess)
+ {
+ $this->folder_list_changed = False;
+ }
+ }
+ }
+
/*!
@function get_flag
Index: class.mail_dcom_base_sock.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_base_sock.inc.php,v
retrieving revision 1.24
retrieving revision 1.24.2.1
diff -C2 -r1.24 -r1.24.2.1
*** class.mail_dcom_base_sock.inc.php 14 Mar 2003 04:00:48 -0000 1.24
--- class.mail_dcom_base_sock.inc.php 8 Sep 2003 08:33:32 -0000 1.24.2.1
***************
*** 319,322 ****
--- 319,324 ----
class mail_dcom_base extends network
{
+ // OBSOLETED "folder_list_changed" by the newer function
"folder_list_did_change"
+ var $folder_list_changed=False;
// Cached Data
// raw message data from the server, some raw data, some
exploded into a string list
***************
*** 596,599 ****
--- 598,624 ----
{
return str_replace("\r\n", 'CRLF', $data);
+ }
+
+ /*!
+ @function folder_list_did_change
+ @abstract if folder is created, deleted, or renamed this this
function handles cleanup of stale data in main msg object.
+ @discussion THIS IS A COPY OF THE FUNCTION IN THE NON-SOCK
CLASS, THEY SHOULD BE THE SAME
+ @author Angles
+ */
+ function folder_list_did_change()
+ {
+ // NOTE THIS FLAG "folder_list_changed" IS NOW
OBSOLETED SINCE THIS
+ // CALLBACK FUNCTION IS PROVEN TO WORK
+ $this->folder_list_changed = True;
+ if (is_object($GLOBALS['phpgw']->msg))
+ {
+ // call that classes "callback" function
designed to handle cleaning stale folder_list there
+ $sucess =
$GLOBALS['phpgw']->msg->folder_list_change_callback();
+ // if it was handled correctly, then reset the
"folder_list_changed" because we did our job
+ if ($sucess)
+ {
+ $this->folder_list_changed = False;
+ }
+ }
}
Index: class.mail_dcom_imap.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_imap.inc.php,v
retrieving revision 1.21
retrieving revision 1.21.2.1
diff -C2 -r1.21 -r1.21.2.1
*** class.mail_dcom_imap.inc.php 14 Mar 2003 04:00:51 -0000 1.21
--- class.mail_dcom_imap.inc.php 8 Sep 2003 08:33:32 -0000 1.21.2.1
***************
*** 45,49 ****
{
$mailbox = $this->utf7_encode($mailbox);
! $this->folder_list_changed = True;
return imap_createmailbox($stream,$mailbox);
}
--- 45,49 ----
{
$mailbox = $this->utf7_encode($mailbox);
! $this->folder_list_did_change();
return imap_createmailbox($stream,$mailbox);
}
***************
*** 51,55 ****
function deletemailbox($stream,$mailbox)
{
! $this->folder_list_changed = True;
$mailbox = $this->utf7_encode($mailbox);
return imap_deletemailbox($stream,$mailbox);
--- 51,55 ----
function deletemailbox($stream,$mailbox)
{
! $this->folder_list_did_change();
$mailbox = $this->utf7_encode($mailbox);
return imap_deletemailbox($stream,$mailbox);
***************
*** 58,62 ****
function renamemailbox($stream,$mailbox_old,$mailbox_new)
{
! $this->folder_list_changed = True;
$mailbox_old = $this->utf7_encode($mailbox_old);
$mailbox_new = $this->utf7_encode($mailbox_new);
--- 58,62 ----
function renamemailbox($stream,$mailbox_old,$mailbox_new)
{
! $this->folder_list_did_change();
$mailbox_old = $this->utf7_encode($mailbox_old);
$mailbox_new = $this->utf7_encode($mailbox_new);
Index: class.mail_dcom_imap_sock.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_imap_sock.inc.php,v
retrieving revision 1.15
retrieving revision 1.15.2.1
diff -C2 -r1.15 -r1.15.2.1
*** class.mail_dcom_imap_sock.inc.php 14 Mar 2003 04:00:52 -0000 1.15
--- class.mail_dcom_imap_sock.inc.php 8 Sep 2003 08:33:32 -0000 1.15.2.1
***************
*** 275,278 ****
--- 275,280 ----
// not yet implemented
if ($this->debug_dcom >= 1) { echo 'imap: call to
unimplemented socket function: createmailbox<br>'; }
+ // eventually this will use this function to call for
expiration of stale cached data, if any
+ //$this->folder_list_did_change();
return true;
}
***************
*** 285,290 ****
--- 287,307 ----
// not yet implemented
if ($this->debug_dcom >= 1) { echo 'imap: call to
unimplemented socket function: deletemailbox<br>'; }
+ // eventually this will use this function to call for
expiration of stale cached data, if any
+ //$this->folder_list_did_change();
return true;
}
+ /*!
+ @function renamemailbox
+ @abstract not yet implemented in IMAP sockets module
+ */
+ function renamemailbox($stream,$mailbox_old,$mailbox_new)
+ {
+ // not yet implemented
+ if ($this->debug_dcom >= 1) { echo 'imap: call to
unimplemented socket function: renamemailbox<br>'; }
+ // eventually this will use this function to call for
expiration of stale cached data, if any
+ //$this->folder_list_did_change();
+ return true;
+ }
+
/*!
@function expunge
Index: class.mail_dcom_nntp.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_nntp.inc.php,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
Index: class.mail_dcom_pop3.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_dcom_pop3.inc.php,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -C2 -r1.11 -r1.11.2.1
Index: class.mail_filters.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_filters.inc.php,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -C2 -r1.7 -r1.7.2.1
Index: class.mail_msg.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg.inc.php,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -C2 -r1.4 -r1.4.2.1
Index: class.mail_msg_base.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg_base.inc.php,v
retrieving revision 1.78.2.3
retrieving revision 1.78.2.4
diff -C2 -r1.78.2.3 -r1.78.2.4
*** class.mail_msg_base.inc.php 6 Apr 2003 10:09:11 -0000 1.78.2.3
--- class.mail_msg_base.inc.php 8 Sep 2003 08:33:32 -0000 1.78.2.4
***************
*** 235,238 ****
--- 235,241 ----
var $acctnum = 0;
var $fallback_default_acctnum = 0;
+
+ // this object is 3 files, each an object "extending" the
other, this prevents 3 constructor calls
+ var $been_constructed = False;
// data storage for caching functions moved to SO object
var $so = '##NOTHING##';
***************
*** 265,270 ****
[...1922 lines suppressed...]
}
else
{
$alt_tag = ' alt="['.$alt_default_txt.']"';
+ $title_tag = '';
}
if ($height != '')
***************
*** 5721,5725 ****
$border_tag = '';
}
! $image_html = '<img src="'.$location.'"' .$height_tag
.$width_tag .$border_tag .$alt_tag .'>';
return $image_html;
}
--- 6097,6101 ----
$border_tag = '';
}
! $image_html = '<img src="'.$location.'"' .$height_tag
.$width_tag .$border_tag .$title_tag .$alt_tag .'>';
return $image_html;
}
Index: class.mail_msg_display.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg_display.inc.php,v
retrieving revision 1.40.2.1
retrieving revision 1.40.2.2
diff -C2 -r1.40.2.1 -r1.40.2.2
*** class.mail_msg_display.inc.php 6 Apr 2003 00:00:44 -0000 1.40.2.1
--- class.mail_msg_display.inc.php 8 Sep 2003 08:33:34 -0000 1.40.2.2
***************
*** 31,35 ****
class mail_msg extends mail_msg_wrappers
{
!
/*!
@function get_common_langs
--- 31,50 ----
class mail_msg extends mail_msg_wrappers
{
!
! /*!
! @function mail_msg
! @abstract Constructor
! @discussion normally this would call $this->initialize_mail_msg which
is a function in the base class,
! HOWEVER I had to stop the auto constructor runthrough because
preferences class API keeps making
! copies of this object thus calling the constructor unnecessarily for
what the pref API needs, which is
! only a few functions in this object, SO NOW this class has NO real auto
called constructor,
! instead the initialization function needs to be explicitly called,
which it is in the bootstrap class.
! */
! function mail_msg()
! {
! //$this->initialize_mail_msg();
! return;
! }
!
/*!
@function get_common_langs
***************
*** 119,124 ****
}
*/
! if (($query_fldball == $this->nothing)
! || ($match_fld_name == $this->nothing))
{
if ($this->debug_args_special_handlers > 0) {
$this->dbug->out('mail_msg(_display)('.__LINE__.'): common_folder_is: LEAVING
with Error, not enough param data supplied, so returning False<br>'); }
--- 134,139 ----
}
*/
! if (((string)$query_fldball == $this->nothing)
! || ((string)$match_fld_name == $this->nothing))
{
if ($this->debug_args_special_handlers > 0) {
$this->dbug->out('mail_msg(_display)('.__LINE__.'): common_folder_is: LEAVING
with Error, not enough param data supplied, so returning False<br>'); }
***************
*** 137,140 ****
--- 152,157 ----
return False;
}
+ if ($this->debug_args_special_handlers > 1) {
$this->dbug->out('mail_msg(_display)('.__LINE__.'): common_folder_is:
$query_fldball DUMP:', $query_fldball); }
+
// First, handle the easiest test - INBOX
if (($match_fld_name == 'INBOX')
***************
*** 144,147 ****
--- 161,168 ----
return True;
}
+ else
+ {
+ if ($this->debug_args_special_handlers > 0) {
$this->dbug->out('mail_msg(_display)('.__LINE__.'): common_folder_is:
match_fld_name and $query_fldball["folder"], either one nor both were INBOX, so
did not match the test, so continue with more checks...<br>'); }
+ }
// continue ...
// does the mailserver have folders, if not then there is NO
trash folder no matter what
***************
*** 720,726 ****
@function prev_next_navigation
@abstract ?
@author Angles
*/
! function prev_next_navigation($old_method_totalmessages=0)
{
//$debug_nav = True;
--- 741,748 ----
@function prev_next_navigation
@abstract ?
+ @discussion Adding ex_acctnum and ex_folder params AS AN EXPERIMENT.
@author Angles
*/
! function prev_next_navigation($old_method_totalmessages=0,
$ex_acctnum='', $ex_folder='')
{
//$debug_nav = True;
***************
*** 729,749 ****
if ($debug_nav > 0) { $this->dbug->out('mail_msg_display:
prev_next_navigation('.__LINE__.'): ENTERING, (try debug_index_page_display = 3
to see data dumps)<br>'); }
- // this gets a verified non stale msgball_list and puts it in
cache, or uses the one in cache if it passes verified and not stale test
- $this->get_msgball_list();
// but we do not want a COPY of this data it can be thousands
of items, so we try to get a reference
$nav_data = array();
$nav_data['msgball_list'] = array();
! $ex_acctnum = $this->get_acctnum();
if (($this->session_cache_enabled == True)
! &&
(isset($this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'])))
! //&&
(isset($GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'])))
{
! $nav_data['msgball_list'] =&
$this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'];
! //$nav_data['msgball_list'] =&
$GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'];
}
else
{
// ok we could not obtain a reference for some reason,
get a COPY then
! $nav_data['msgball_list'] = $this->get_msgball_list();
}
//$nav_data['msgnum_idx'] =
$this->array_search_ex($this->get_arg_value('["msgball"]["msgnum"]'),
$nav_data['msgball_list']);
--- 751,783 ----
if ($debug_nav > 0) { $this->dbug->out('mail_msg_display:
prev_next_navigation('.__LINE__.'): ENTERING, (try debug_index_page_display = 3
to see data dumps)<br>'); }
// but we do not want a COPY of this data it can be thousands
of items, so we try to get a reference
$nav_data = array();
$nav_data['msgball_list'] = array();
! // TESTING THIS AS AN OPTIONAL PARAM HERE
! // we used to obtain it here no matter what, now it may be
passed as a param
! if ((!isset($ex_acctnum))
! || ((string)$ex_acctnum == ''))
! {
! $ex_acctnum = $this->get_acctnum();
! }
! // TESTING THIS AS AN OPTIONAL PARAM HERE
! if ((!isset($ex_folder))
! || ((string)$ex_folder == ''))
! {
! $ex_folder =
$this->prep_folder_out($this->get_arg_value('folder', $acctnum));
! }
! // TESTING this gets a verified non stale msgball_list and puts
it in cache, or uses the one in cache if it passes verified and not stale test
! //$this->get_msgball_list($ex_acctnum, $ex_folder);
! // remember the actual msgball_list is a sub element of an
array that includes validity info
if (($this->session_cache_enabled == True)
! &&
(isset($this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list'][$ex_folder]['msgball_list'])))
! //&&
(isset($GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'][$ex_folder])))
{
! $nav_data['msgball_list'] =&
$this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list'][$ex_folder]['msgball_list'];
}
else
{
// ok we could not obtain a reference for some reason,
get a COPY then
! $nav_data['msgball_list'] =
$this->get_msgball_list($ex_acctnum, $ex_folder);
}
//$nav_data['msgnum_idx'] =
$this->array_search_ex($this->get_arg_value('["msgball"]["msgnum"]'),
$nav_data['msgball_list']);
***************
*** 829,837 ****
/*!
! @function all_ex_accounts_listbox
@abstract Creates a listbox with all email accounts.
@discussion Used in the switch account combobox, and the filers page
too, I think. The listbox
is sort of an HTML widget. For the raw data, see the function, it is
easy to get the data without the
! HTML if you want that.
@author Angles
*/
--- 863,871 ----
/*!
! @function all_ex_accounts_listbox DEPRECIATED
@abstract Creates a listbox with all email accounts.
@discussion Used in the switch account combobox, and the filers page
too, I think. The listbox
is sort of an HTML widget. For the raw data, see the function, it is
easy to get the data without the
! HTML if you want that. DEPRECIATED now should use function in widgets
class.
@author Angles
*/
***************
*** 1042,1046 ****
/*!
@function get_who_wrote
! @abstract
@author Angles and code from previous maintainer
*/
--- 1076,1080 ----
/*!
@function get_who_wrote
! @abstract PROBABLY NO LONGER USED
@author Angles and code from previous maintainer
*/
***************
*** 1071,1075 ****
// non-us-ascii chars in headers MUST be specially
encoded, so decode them (if any) now
$personal = $this->decode_header_string($personal);
! //$personal = $this->qprint_rfc_header($personal);
$personal = $personal .'
('.$from->mailbox.'@'.$from->host.')';
}
--- 1105,1111 ----
// non-us-ascii chars in headers MUST be specially
encoded, so decode them (if any) now
$personal = $this->decode_header_string($personal);
! ////$personal = $this->qprint_rfc_header($personal);
! // escape certain undesirable chars before HTML display
! $personal = $this->htmlspecialchars_encode($personal);
$personal = $personal .'
('.$from->mailbox.'@'.$from->host.')';
}
***************
*** 1131,1135 ****
/*!
@function get_flat_pgw_struct
! @abstract Message Structure Analysis, make multilevel php message
struct into a flat array
@param $struct (php structure from ?)
@discussion This is the meat of the home grown MIME analysis this app
uses.
--- 1167,1171 ----
/*!
@function get_flat_pgw_struct
! @abstract Message Structure Analysis, make multilevel php message
struct into a flat array aka "part_nice"
@param $struct (php structure from ?)
@discussion This is the meat of the home grown MIME analysis this app
uses.
***************
*** 1138,1141 ****
--- 1174,1211 ----
function get_flat_pgw_struct($struct)
{
+ if ($this->debug_message_display > 0) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: ENTERING <br>'); }
+ //if ($this->debug_message_display > 1) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: param $msgball
['.serialize($msgball).']<br>'); }
+ if ($this->debug_message_display > 2) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: param $struct DUMP:',
$struct); }
+
+ /*
+ // NO NEED TO CACHE THIS DATA, NO CONTACT WITH MAILSERVER IS
NEEDED FOR THIS DATA
+ // try to get it from cache, this function handles checking for
session_cache_extreme True or False
+ if ($this->session_cache_extreme == True)
+ {
+ if ((isset($msgball['folder']))
+ && (trim($msgball['folder']) != '')
+ && (isset($msgball['acctnum']))
+ && ((string)($msgball['acctnum']) != ''))
+ {
+ $ex_folder = $msgball['folder'];
+ $ex_msgnum = $msgball['msgnum'];
+ }
+ else
+ {
+ $ex_folder = $this->prep_folder_out();
+ $ex_msgnum = $this->get_acctnum();
+ }
+ // the cached data is returned as a ready to use array
if it exists, or False if not existing
+ $cache_flat_pgw_struct =
$this->read_session_cache_item('flat_pgw_struct', $acctnum, $ex_folder,
$ex_msgnum);
+ //echo '** flat_pgw_struct: $specific_key
['.$specific_key.'] :: $cache_flat_pgw_struct DUMP<pre>';
print_r($cache_phpgw_header); echo '</pre>';
+ if ($cache_flat_pgw_struct)
+ {
+ if ($this->debug_message_display > 0) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: LEAVING returning
cached data<br>'); }
+ return $cache_flat_pgw_struct;
+ }
+ }
+ if ($this->debug_message_display > 1) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: beginning ... no
cached data available or caching is not enabled<br>'); }
+ */
+
if (isset($this->not_set))
{
***************
*** 1487,1491 ****
a) if no subpart(s) then we have either "presentable"
or "attachment"
b) if subpart(s) and a boundary param, then we have a
"packagelist" (HeadersOnly)
! c) else we have a container
*/
if ((int)$part_nice[$i]['ex_num_subparts'] < 1)
--- 1557,1562 ----
a) if no subpart(s) then we have either "presentable"
or "attachment"
b) if subpart(s) and a boundary param, then we have a
"packagelist" (HeadersOnly)
! c) else we have a container.
! Presentable can be qualified with "image".
*/
if ((int)$part_nice[$i]['ex_num_subparts'] < 1)
***************
*** 1513,1516 ****
--- 1584,1588 ----
{
// not an attachment, nor an attachment
that's an image for inline display
+ // so it is presentable
$part_nice[$i]['m_description'] =
'presentable';
}
***************
*** 1533,1537 ****
$part_nice[$i]['m_keywords'] = '';
if ((stristr($part_nice[$i]['subtype'], 'plain'))
! || (stristr($part_nice[$i]['subtype'], 'html')))
{
$part_nice[$i]['m_keywords'] .=
$part_nice[$i]['subtype'] .' ';
--- 1605,1611 ----
$part_nice[$i]['m_keywords'] = '';
if ((stristr($part_nice[$i]['subtype'], 'plain'))
! || (stristr($part_nice[$i]['subtype'], 'html'))
! // enriched = part of APPLE MAIL multipart /
alternative subpart where the html part usually is
! || (stristr($part_nice[$i]['subtype'], 'enriched')))
{
$part_nice[$i]['m_keywords'] .=
$part_nice[$i]['subtype'] .' ';
***************
*** 1543,1546 ****
--- 1617,1709 ----
}
+ // keyword "alt_hide"
+ // Also a keywords we use can be "alt_hide" which means
that the
+ // part is part of an alternative pair of parts and
this one can be hidden because
+ // it is the simpler text part, while we desire to show
the html part as the better-to-show
+ // part, and showing 2 of the same, i.e. both of the
alternatives, is undesirable.
+ // so is a presentable part of an alternative pair of
parts
+ if ($part_nice[$i]['m_description'] == 'presentable')
+ {
+ // TEST THIS:
+ // (a) is the part text/plain
+ // (b) if so, is that parent marked as
multipart/related
+ //// (c) is the very next part HTML, because
apple uses "enhanced" which looks b0rked,
+ //// so that case needs the simpler part to
also be shown.
+ ////UPDATE this (c) thing will fail if the html
is in a related nest, so skip this check
+ // and CHECK 2 TIMES: note that we test 2 times
+ // (1) the first is where the mail has only 2
parts
+ // and AngleMail flatening code has left the
top level headers out of the
+ // flat array, as it does sometimes.
+ // (2) The second is for anything deep enough
so that the parent part IS in the
+ // flat array, which is more typical.
+ $presentable_parent_idx =
$part_nice[$i]['ex_parent_flat_idx'];
+ if (
+ ($part_nice[$i]['type'] == 'text')
+ && ($part_nice[$i]['subtype'] == 'plain')
+ &&
($part_nice[$presentable_parent_idx]['ex_parent_flat_idx'] == $not_set)
+ && (stristr($struct->type, 'multipart'))
+ // SHOULD BE THIS && ((string)$struct->type
== '1') // "1" = "multipart"
+ && (stristr($struct->subtype, 'alternative'))
+ //&& ($part_nice[$i+1]['type'] == 'text')
+ //&& ($part_nice[$i+1]['subtype'] == 'html')
+ )
+ {
+ // SET THIS FLAG: then, in presentation
loop, we can decide not to show it
+ $part_nice[$i]['m_keywords'] .=
'alt_hide' .' ';
+ }
+ // same as above but we do not need to look all
the way back to the top level headers
+ // ie because the parent part is included in
the flat parts array
+ elseif (
+ ($part_nice[$i]['ex_level_debth'] > 1)
+ && ($part_nice[$i]['type'] == 'text')
+ && ($part_nice[$i]['subtype'] == 'plain')
+ && ($part_nice[$presentable_parent_idx]['type']
== 'multipart')
+ &&
($part_nice[$presentable_parent_idx]['subtype'] == 'alternative')
+ //&& ($part_nice[$i+1]['type'] == 'text')
+ //&& ($part_nice[$i+1]['subtype'] == 'html')
+ )
+ {
+ // SET THIS FLAG: then, in presentation
loop, we can decide not to show it
+ $part_nice[$i]['m_keywords'] .=
'alt_hide' .' ';
+ }
+ }
+ // more keyword "alt_hide"
+ // ALSO use this same kind of test to hide images that
get swapped into the main related part,
+ // so we do not show these images on their own
+ if ($part_nice[$i]['m_description'] ==
'presentable/image')
+ {
+ //echo '('.__LINE__.') presentable/image ,
$struct->type ['.$struct->type.'] , $struct->subtype
['.$struct->subtype.']<br>';
+ // TEST THIS:
+ // * IS the parent marked as multipart/related
+ // and CHECK 2 TIMES: note that we test 2 times
+ // (1) the first is where the mail has only 2
parts
+ // and AngleMail flatening code has left the
top level headers out of the
+ // flat array, as it does sometimes.
+ // (2) The second is for anything deep enough
so that the parent part IS in the
+ // flat array, which is more typical.
+ $presentable_parent_idx =
$part_nice[$i]['ex_parent_flat_idx'];
+ if (
+ //ok I am an image, is my parent the top
level headers
+ ($part_nice[$i]['ex_parent_flat_idx'] ==
$not_set)
+ && ((string)$struct->type == '1') // "1" =
"multipart"
+ && (stristr($struct->subtype, 'related'))
+ )
+ {
+ //echo '('.__LINE__.')
presentable/image , alt_hide related to top level<br>';
+ // SET THIS FLAG: then, in presentation
loop, we can decide not to show it
+ $part_nice[$i]['m_keywords'] .=
'alt_hide' .' ';
+ }
+ // same as above but we do not need to look all
the way back to the top level headers
+ // ie because the parent part is included in
the flat parts array
+ elseif (
+ ($part_nice[$i]['ex_level_debth'] > 1)
+ && ($part_nice[$presentable_parent_idx]['type']
== 'multipart')
+ &&
($part_nice[$presentable_parent_idx]['subtype'] == 'related')
+ )
+ {
+ // SET THIS FLAG: then, in presentation
loop, we can decide not to show it
+ $part_nice[$i]['m_keywords'] .=
'alt_hide' .' ';
+ }
+ }
// ------ EXCEPTIONS TO THE RULES -------
***************
*** 1552,1561 ****
// "container" instead of "packagelist"
! // (1) Exception: multipart/RELATED: for ex. Outl00k
Stationary handling
// where an HTML part has references to other parts
(images) in it
! // treat it's *child* multipart/alternative as
"container", not as "packagelist"
$part_nice[$i]['m_html_related_kids'] = False;
$parent_idx = $part_nice[$i]['ex_parent_flat_idx'];
! if (($part_nice[$i]['ex_level_debth'] > 1) // does not
apply to level1, b/c level1 has no parent
&& ($part_nice[$i]['type'] == 'multipart')
&& ($part_nice[$i]['subtype'] == 'alternative')
--- 1715,1766 ----
// "container" instead of "packagelist"
! // (1a) Exception: multipart/RELATED: for ex. Outl00k
Stationary handling
// where an HTML part has references to other parts
(images) in it
! // the first 2 tests simple set a "m_html_related_kids"
flag
! // the 3rd test is another form of exception concerning
related parts
! // which requires a change to "container" instead of
"packagelist"
$part_nice[$i]['m_html_related_kids'] = False;
$parent_idx = $part_nice[$i]['ex_parent_flat_idx'];
! // level 1 has no parent in part_nice because we skip
to presentable stuff
! // so in that case we need to check top level headers
! if (
! ($part_nice[$i]['type'] == 'text')
! && ($part_nice[$i]['subtype'] == 'html')
! && ($part_nice[$parent_idx]['type'] == 'multipart')
! && ($part_nice[$parent_idx]['subtype'] == 'alternative')
! && ($part_nice[$parent_idx]['ex_parent_flat_idx'] ==
$not_set)
! && (stristr($struct->subtype, 'RELATED'))
! )
! {
! // SET THIS FLAG: then, in presentation loop,
see if a HTML part
! // has a parent with this flag - if so, replace
"id" reference(s) with
! // http... mime reference(s). Example: MS
Stationary mail's image background
! $part_nice[$parent_idx]['m_html_related_kids']
= True;
! //$part_nice[$i]['m_keywords'] .= 'id_swap' .'
';
! $part_nice[$i]['m_keywords'] .= 'related' .' ';
! }
! // same as above but we do not need to look all the way
back to the top level headers
! // ie an html part with a parent that is explicitly set
as RELATED
! elseif (
! ($part_nice[$i]['ex_level_debth'] > 1)
! && ($part_nice[$i]['type'] == 'text')
! && ($part_nice[$i]['subtype'] == 'html')
! && ($part_nice[$parent_idx]['type'] == 'multipart')
! && ($part_nice[$parent_idx]['subtype'] == 'related')
! )
! {
! // SET THIS FLAG: then, in presentation loop,
see if a HTML part
! // has a parent with this flag - if so, replace
"id" reference(s) with
! // http... mime reference(s). Example: MS
Stationary mail's image background
! $part_nice[$parent_idx]['m_html_related_kids']
= True;
! //$part_nice[$i]['m_keywords'] .= 'id_swap' .'
';
! $part_nice[$i]['m_keywords'] .= 'related' .' ';
! }
! // (1b) Exception: multipart/RELATED: for ex. Outl00k
Stationary handling
! // where an HTML part has references to other parts
(images) in it
! // treat it's *child* multipart/alternative as
"container", not as "packagelist"
! // similar to above but more serious, MANIPULATE
"container" vs. "packagelist"
! // while also determining is it has related html style
child parts
! elseif (($part_nice[$i]['ex_level_debth'] > 1) // does
not apply to level1, b/c level1 has no parent
&& ($part_nice[$i]['type'] == 'multipart')
&& ($part_nice[$i]['subtype'] == 'alternative')
***************
*** 1572,1575 ****
--- 1777,1807 ----
$part_nice[$i]['m_keywords'] .= 'id_swap' .' ';
}
+ // (1c) Exception: multipart/RELATED: for ex.
"courier-users digest, Vol 1 #2565 - 6 msgs" segment 3.1
+ // DAMN this is similar to exception 1b, I wonder if I
screwed 1b up and 1c is the real thing?
+ // where an HTML part has references to other parts
(images) in it
+ // treat it's *child* multipart/alternative as
"container", not as "packagelist"
+ // similar to above but more serious, MANIPULATE
"container" vs. "packagelist"
+ // while also determining is it has related html style
child parts
+ //this is tricky because it is part of a segment
alternative, and this is the htm part encased in a related subsegment
+ // - 3.1.0 segment header (multipart / alternative)
+ // -- 3.1.1 plain part (text / plain)
+ // --- 3.1.2 related subpart (subsegment) in entirety,
both html part and image part (multipart / related) *** NEEDS TO BE A CONTAINER
***
+ // ---- 3.1.2.1 html part of the related segment (text
/ html)
+ // ---- 3.1.2.2 image part of the related subsegment
(image / gif)
+ elseif (($part_nice[$i]['ex_level_debth'] > 1) // does
not apply to level1, b/c level1 has no parent
+ && ($part_nice[$i]['type'] == 'multipart')
+ && ($part_nice[$i]['subtype'] == 'related')
+ && ($part_nice[$parent_idx]['type'] == 'multipart')
+ && ($part_nice[$parent_idx]['subtype'] ==
'alternative'))
+ {
+ // NOTE: treat it's *child*
multipart/alternative as "container", not as "packagelist"
+ $part_nice[$i]['m_description'] = 'container';
+ $part_nice[$i]['m_keywords'] .= 'Force
Container, id_swap' .' ';
+ // SET THIS FLAG: then, in presentation loop,
see if a HTML part
+ // has a parent with this flag - if so, replace
"id" reference(s) with
+ // http... mime reference(s). Example: MS
Stationary mail's image background
+ $part_nice[$i]['m_html_related_kids'] = True;
+ $part_nice[$i]['m_keywords'] .= 'id_swap' .' ';
+ }
// (2) Exception: multipart/APPLEDOUBLE (ex. mac thru
X.400 gateway)
***************
*** 1613,1619 ****
$part_nice[$i]['ex_part_href'] =
$click_info['part_href'];
$part_nice[$i]['ex_part_clickable'] =
$click_info['part_clickable'];
! }
// finally, return the customized flat phpgw msg structure array
return $part_nice;
}
--- 1845,1853 ----
$part_nice[$i]['ex_part_href'] =
$click_info['part_href'];
$part_nice[$i]['ex_part_clickable'] =
$click_info['part_clickable'];
! }
// finally, return the customized flat phpgw msg structure array
+ if ($this->debug_message_display > 2) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: returning $part_nice
DUMP:', $part_nice); }
+ if ($this->debug_message_display > 0) {
$this->dbug->out('mail_msg(display).get_flat_pgw_struct: LEAVING we made a
$part_nice, returning it<br>'); }
return $part_nice;
}
***************
*** 1653,1659 ****
// 1: TYPE
$part_nice['type'] = $not_set; // Default value if not filled
! if (isset($part->type) && $part->type)
{
! switch ($part->type)
{
case TYPETEXT : $part_type = 'text';
break;
--- 1887,1895 ----
// 1: TYPE
$part_nice['type'] = $not_set; // Default value if not filled
! // note that 0 (the number ZERO) IS A VALID possible value
here, so 0 != not filled !
! if ((isset($part->type))
! && (trim((string)$part->type) != ''))
{
! switch ((int)$part->type)
{
case TYPETEXT : $part_type = 'text';
break;
***************
*** 1680,1686 ****
// 2: ENCODING
$part_nice['encoding'] = $not_set; // Default value if not
filled
! if (isset($part->encoding) && $part->encoding)
{
! switch ($part->encoding)
{
case ENC7BIT : $part_encoding =
'7bit'; break;
--- 1916,1924 ----
// 2: ENCODING
$part_nice['encoding'] = $not_set; // Default value if not
filled
! // note that 0 (the number ZERO) IS A VALID possible value
here, so 0 != not filled !
! if ((isset($part->encoding))
! && (trim((string)$part->encoding) != ''))
{
! switch ((int)$part->encoding)
{
case ENC7BIT : $part_encoding =
'7bit'; break;
***************
*** 2054,2057 ****
--- 2292,2297 ----
// Make CLICKABLE link directly to this attachment or part
$href_part_name = $this->decode_header_string($part_name);
+ // escape certain undesirable chars before HTML display
+ $href_part_name =
$this->htmlspecialchars_encode($href_part_name);
// ex_part_clickable
$ex_part_clickable = '<a
href="'.$ex_part_href.'">'.$href_part_name.'</a>';
***************
*** 2207,2210 ****
--- 2447,2453 ----
{
$_tf =
$this->prep_folder_in($this->get_arg_value('tf'));
+ // NOTE if the folder name has html unfriendly
chars, like " or <, we need to do this just in case
+ //echo '$this->htmlspecialchars_encode($_tf)
['.$this->htmlspecialchars_encode($_tf).'] <br>';
+ $_tf = $this->htmlspecialchars_encode($_tf);
}
else
***************
*** 2217,2229 ****
// these args are filled, indicating a MOVE was
attempted
// but since 0 messages were in fact moved,
there must have been an error
! $report_this = lang("Error moving messages
to").' '.$_tf;
}
elseif ($this->get_arg_value('tm') == 1)
{
! $report_this = lang("1 message has been moved
to").' '.$_tf;
}
else
{
! $report_this = $this->get_arg_value('tm').'
'.lang("messages have been moved to").' '.$_tf;
}
}
--- 2460,2472 ----
// these args are filled, indicating a MOVE was
attempted
// but since 0 messages were in fact moved,
there must have been an error
! $report_this = lang('Error moving messages
to').' '.$_tf;
}
elseif ($this->get_arg_value('tm') == 1)
{
! $report_this = lang('1 message has been moved
to').' '.$_tf;
}
else
{
! $report_this = $this->get_arg_value('tm').'
'.lang('messages have been moved to').' '.$_tf;
}
}
***************
*** 2298,2301 ****
--- 2541,2549 ----
$do_show_size = True;
}
+ elseif ($this->get_isset_pref('show_foldersize'))
+ {
+ // user has set the pref to always show the size of the
folder
+ $do_show_size = True;
+ }
// if we get to here and $do_show_size has not specifically
been set to True, then False is the fallback default
***************
*** 2420,2432 ****
if (!$msgball_list)
{
// msgball_list may be thousands of items, try to fill
the cache and get a reference
//GLOBALS[phpgw_session][phpgw_app_sessions][email]
! $this->get_msgball_list();
! $ex_acctnum = $this->get_acctnum();
if (($this->session_cache_enabled == True)
! &&
(isset($this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'])))
//&&
(isset($GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'])))
{
! $msgball_list =&
$this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'];
//$msgball_list =&
$GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'];
//{ echo 'mail_msg_display:
get_msg_list_display('.__LINE__.'): $msgball_list *REFERENCE* DUMP:<pre>';
print_r($msgball_list); echo '</pre>'; }
--- 2668,2686 ----
if (!$msgball_list)
{
+ // NOW WE USE FOLDER NAME ALSO IN THE DATA KEY FOR
MSGBALL_LIST
+ $ex_folder = $folder_info['fldball']['folder'];
+
// msgball_list may be thousands of items, try to fill
the cache and get a reference
//GLOBALS[phpgw_session][phpgw_app_sessions][email]
! // fill the cache ? - NO this is folly
! //$this->get_msgball_list();
! //$ex_acctnum = $this->get_acctnum();
! // TESTING get the acctnum from the folder info
! $ex_acctnum = $folder_info['fldball']['acctnum'];
if (($this->session_cache_enabled == True)
! &&
(isset($this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list'][$ex_folder]['msgball_list'])))
//&&
(isset($GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'])))
{
! $msgball_list =&
$this->ref_SESSION['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list'][$ex_folder]['msgball_list'];
//$msgball_list =&
$GLOBALS['phpgw_session']['phpgw_app_sessions']['email']['dat'][$ex_acctnum]['msgball_list']['msgball_list'];
//{ echo 'mail_msg_display:
get_msg_list_display('.__LINE__.'): $msgball_list *REFERENCE* DUMP:<pre>';
print_r($msgball_list); echo '</pre>'; }
***************
*** 2436,2440 ****
{
// ok we could not obtain a reference for some
reason, get a COPY then
! $msgball_list = $this->get_msgball_list();
}
}
--- 2690,2696 ----
{
// ok we could not obtain a reference for some
reason, get a COPY then
! //$msgball_list = $this->get_msgball_list();
! // EXPERIMENT with passing arge to this
! $msgball_list =
$this->get_msgball_list($ex_acctnum, $ex_folder);
}
}
***************
*** 2518,2521 ****
--- 2774,2825 ----
$hdr_envelope = $this->phpgw_header($this_loop_msgball);
+ /*
+ // begin GMT handling by "acros"
+ // pongo bien la hora de los correos (GMT)
+ # echo"hora inicial $hdr_envelope->date<br>";
+ # echo"hora inicial
$hdr_envelope->udate<br>";
+ ///modificacion
+ $msg_date2=$hdr_envelope->date;
+ $comma = strpos($msg_date2,',');
+ if($comma)
+ {
+ $msg_date2 = substr($msg_date2,$comma + 2);
+ }
+ //echo 'Msg Date : '.$msg_date."<br>\n";
+ $dta = array();
+ $ta = array();
+
+ $dta = explode(' ',$msg_date2);
+ $ta = explode(':',$dta[3]);
+ if(substr($dta[4],0,3) <> 'GMT')
+ {
+ $tzoffset = substr($dta[4],0,1);
+ (int)$tzhours = substr($dta[4],1,2);
+ (int)$tzmins = substr($dta[4],3,2);
+ #echo"$ta[0] y $tzoffset";
+ switch ($tzoffset)
+ {
+ case '+':
+ (int)$ta[0] -= (int)$tzhours;
+ (int)$ta[1] -= (int)$tzmins;
+ #echo"$ta[0]";
+ break;
+ case '-':
+ (int)$ta[0] += (int)$tzhours;
+ (int)$ta[1] += (int)$tzmins;
+ break;
+ }
+ }
+
+ $new_time =
mktime($ta[0],$ta[1],$ta[2],$GLOBALS['month_array'][strtolower($dta[1])],$dta[0],$dta[2])
- ((60 * 60) *
intval($GLOBALS['phpgw_info']['user']['preferences']['common']['tzoffset']));
+ $new_time2=gmdate("D, d M Y H:m:s",$new_time)." GMT";
+ $hdr_envelope->date = $new_time2;
+ $hdr_envelope->udate = $new_time;
+ #echo"hora final $hdr_envelope->udate<br>";
+ #echo"hora final $hdr_envelope->date<br>";
+ #$message_date =
$GLOBALS['phpgw']->common->show_date($msg_headers->udate);
+ //fin modificacion
+ // end GMT handling by "acros"
+ */
// MESSAGE REFERENCE (a) NUMBER (b) FOLDER (c) ACCTNUM
and (d) FAKE_URL EMBEDDED MULTI DATA
$msg_list_display[$x]['msgnum'] =
$this_loop_msgball['msgnum'];
***************
*** 2634,2637 ****
--- 2938,2943 ----
$personal = $replyto;
}
+ // escape certain undesirable chars before HTML display
+ $personal = $this->htmlspecialchars_encode($personal);
if (($this->get_pref_value('show_addresses') == 'from')
***************
*** 2681,2685 ****
// Part 1 of 2 of the From string (see above)
// NOTE: wasn't this decode_header_string proc already
done above?
! $msg_list_display[$x]['from_name'] =
$this->decode_header_string($personal);
// ---- From Link ----
--- 2987,2992 ----
// Part 1 of 2 of the From string (see above)
// NOTE: wasn't this decode_header_string proc already
done above?
! //$msg_list_display[$x]['from_name'] =
$this->decode_header_string($personal);
! $msg_list_display[$x]['from_name'] = $personal;
// ---- From Link ----
***************
*** 2713,2716 ****
--- 3020,3024 ----
// date_time has both date and time, which probably is
long enough to make a TD cell wrap text to 2 lines
$msg_date_time =
$GLOBALS['phpgw']->common->show_date($hdr_envelope->udate);
+ //echo"$msg_date_time";
if($GLOBALS['phpgw']->common->show_date($hdr_envelope->udate,'Ymd') !=
date('Ymd'))
{
***************
*** 2732,2740 ****
if (!$hdr_envelope->to)
{
! $to_data_final = lang('undisclosed_recipients');
}
else
{
! for ($z = 0; $z < count($hdr_envelope->to);
$z++)
{
$topeople = $hdr_envelope->to[$z];
--- 3040,3055 ----
if (!$hdr_envelope->to)
{
! $to_data_final = lang('undisclosed recipients');
}
else
{
! $to_loops = count($hdr_envelope->to);
! // begin test of Maz Num of To loop limitation
! $max_to_loops = 25;
! if ($to_loops > $max_to_loops)
! {
! $to_loops = $max_to_loops;
! }
! for ($z = 0; $z < $to_loops; $z++)
{
$topeople = $hdr_envelope->to[$z];
***************
*** 2746,2751 ****
else
{
! $to_person =
$GLOBALS['phpgw']->msg->decode_header_string($topeople->personal);
}
$to_data_array[$z] = $to_person;
}
--- 3061,3068 ----
else
{
! $to_person =
$this->decode_header_string($topeople->personal);
}
+ // escape certain undesirable chars
before HTML display
+ $to_person =
$this->htmlspecialchars_encode($to_person);
$to_data_array[$z] = $to_person;
}
***************
*** 2777,2782 ****
function _image_on($appname,$image,$extension='_on',$navbar=False)
{
! //$prefer_ext = '.gif';
! $prefer_ext = '.png';
return
$GLOBALS['phpgw_info']['server']['webserver_url'].'/'.$appname.'/templates/default/images'.'/'.$image.$prefer_ext;
}
--- 3094,3099 ----
function _image_on($appname,$image,$extension='_on',$navbar=False)
{
! $prefer_ext = '.gif';
! //$prefer_ext = '.png';
return
$GLOBALS['phpgw_info']['server']['webserver_url'].'/'.$appname.'/templates/default/images'.'/'.$image.$prefer_ext;
}
Index: class.mail_msg_wrappers.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_msg_wrappers.inc.php,v
retrieving revision 1.37.2.1
retrieving revision 1.37.2.2
diff -C2 -r1.37.2.1 -r1.37.2.2
*** class.mail_msg_wrappers.inc.php 6 Apr 2003 00:00:44 -0000 1.37.2.1
--- class.mail_msg_wrappers.inc.php 8 Sep 2003 08:33:35 -0000 1.37.2.2
***************
*** 43,46 ****
--- 43,55 ----
{
+ /*!
+ @function mail_msg_wrappers
+ @abstract CONSTRUCTOR place holder, does nothing
+ */
+ function mail_msg_wrappers()
+ {
+ return;
[...1356 lines suppressed...]
* BEGIN PARAM / ARGS / PREFS ACCESS FUNCTIONS
*
--- 4982,4986 ----
/**************************************************************************\
! * END CACHING HANDLERS
*
* - - - - - - - - - - - - - - - - - - - - - - - - -
*
* BEGIN PARAM / ARGS / PREFS ACCESS FUNCTIONS
*
***************
*** 4733,4737 ****
@function set_pref_array
@abstract set the entire preference data array FOR ONE ACCOUNT
! @param $pref_array_data (array) either (a) correctly formed
emai pref array data, or (b) an empty array
@param $acctnum (int) OPTIONAL
@result boolean True is successfully sets $pref_array_data,
False to indicate all we did was clear the args, no data was fed
--- 5253,5257 ----
@function set_pref_array
@abstract set the entire preference data array FOR ONE ACCOUNT
! @param $pref_array_data (array) either (a) correctly formed
email pref array data, or (b) an empty array
@param $acctnum (int) OPTIONAL
@result boolean True is successfully sets $pref_array_data,
False to indicate all we did was clear the args, no data was fed
Index: class.mail_send.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.mail_send.inc.php,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -C2 -r1.11 -r1.11.2.1
*** class.mail_send.inc.php 14 Mar 2003 04:01:08 -0000 1.11
--- class.mail_send.inc.php 8 Sep 2003 08:33:35 -0000 1.11.2.1
***************
*** 203,212 ****
$fromuser = $mail_out['mta_from'];
// START SMTP SESSION - now we can send our message.
1st we identify ourselves and the sender
! $cmds = array (
! "\$src = \$this->msg2socket(\$socket,\"EHLO
\$mymachine\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src = \$this->msg2socket(\$socket,\"MAIL
FROM:\$fromuser\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);"
! );
if ($this->debug_fake_send)
{
--- 203,242 ----
$fromuser = $mail_out['mta_from'];
// START SMTP SESSION - now we can send our message.
1st we identify ourselves and the sender
! // START CHANGES JF
! // lets assume for the purpose of testing that these variables were already
set up somewhere.
! // That still needs to be done properly.
! // angles: this is a temp handler until it gets in the email site setup page
as site option
! $smtp_auth_login_required = False;
! //$smtp_auth_login_required = true;
! $mylogin = "xxxxxx";
! $mypassword = "xxxxxxxxxx";
!
! if ($smtp_auth_login_required)
! {
! $mybase64login=base64_encode($mylogin);
! $mybase64password=base64_encode($mypassword);
! $cmds = array (
! "\$src =
\$this->msg2socket(\$socket,\"EHLO \$mymachine\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src =
\$this->msg2socket(\$socket,\"AUTH LOGIN\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src =
\$this->msg2socket(\$socket,\"\$mybase64login\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src =
\$this->msg2socket(\$socket,\"\$mybase64password\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src =
\$this->msg2socket(\$socket,\"MAIL FROM:\$fromuser\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);"
! );
! }
! else
! {
! $cmds = array (
! "\$src =
\$this->msg2socket(\$socket,\"EHLO \$mymachine\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);",
! "\$src =
\$this->msg2socket(\$socket,\"MAIL FROM:\$fromuser\r\n\");",
! "\$rrc = \$this->socket2msg(\$socket);"
! );
! }
! // END CHANGES JF
if ($this->debug_fake_send)
{
Index: class.msg_bootstrap.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.msg_bootstrap.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
*** class.msg_bootstrap.inc.php 14 Mar 2003 04:01:08 -0000 1.2
--- class.msg_bootstrap.inc.php 8 Sep 2003 08:33:35 -0000 1.2.2.1
***************
*** 49,52 ****
--- 49,55 ----
var $do_login_ex = 0;
+ var $debug_level=0;
+ //var $debug_level=3;
+
function msg_bootstrap()
{
***************
*** 123,127 ****
function set_do_login($do_login='##NOTHING##',
$called_by='not_provided')
{
! if ($debug_level > 0) { echo 'ENTERING: msg_bootstrap:
set_do_login: (called_by: '.$called_by.') param $do_login:
['.serialize($do_login).']'.'<br>'; }
// backward compat, when this was only true or false
if (is_bool($do_login))
--- 126,130 ----
function set_do_login($do_login='##NOTHING##',
$called_by='not_provided')
{
! if ($this->debug_level > 0) { echo 'ENTERING:
msg_bootstrap: set_do_login: (called_by: '.$called_by.') param $do_login:
['.serialize($do_login).']'.'<br>'; }
// backward compat, when this was only true or false
if (is_bool($do_login))
***************
*** 138,142 ****
}
// LEAVING HERE
! if ($debug_level > 0) { echo 'LEAVING:
msg_bootstrap: set_do_login: (bool input) (called_by: '.$called_by.')
$this->do_login: ['.$this->do_login.'] $this->do_login_ex:
['.$this->do_login_ex.'] '.'<br>'; }
return $this->do_login;
}
--- 141,145 ----
}
// LEAVING HERE
! if ($this->debug_level > 0) { echo 'LEAVING:
msg_bootstrap: set_do_login: (bool input) (called_by: '.$called_by.')
$this->do_login: ['.$this->do_login.'] $this->do_login_ex:
['.$this->do_login_ex.'] '.'<br>'; }
return $this->do_login;
}
***************
*** 176,180 ****
$this->do_login_ex = BS_LOGIN_ONLY_IF_NEEDED;
}
! if ($debug_level > 0) { echo 'LEAVING: msg_bootstrap:
set_do_login: (not bool input) (called_by: '.$called_by.') $this->do_login:
['.$this->do_login.'] $this->do_login_ex: ['.$this->do_login_ex.'] '.'<br>'; }
return $this->do_login_ex;
}
--- 179,183 ----
$this->do_login_ex = BS_LOGIN_ONLY_IF_NEEDED;
}
! if ($this->debug_level > 0) { echo 'LEAVING:
msg_bootstrap: set_do_login: (not bool input) (called_by: '.$called_by.')
$this->do_login: ['.$this->do_login.'] $this->do_login_ex:
['.$this->do_login_ex.'] '.'<br>'; }
return $this->do_login_ex;
}
***************
*** 234,238 ****
function ensure_mail_msg_exists($called_by='not_provided',
$debug_level=0)
{
! if ($debug_level > 0) { echo 'ENTERING: msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.')'.'<br>'; }
// make sure do_login has been set
--- 237,245 ----
function ensure_mail_msg_exists($called_by='not_provided',
$debug_level=0)
{
! if ($debug_level > $this->debug_level)
! {
! $this->debug_level = $debug_level;
! }
! if ($this->debug_level > 0) { echo 'ENTERING:
msg_bootstrap: ensure_mail_msg_exists: (called_by: '.$called_by.')'.'<br>'; }
// make sure do_login has been set
***************
*** 248,258 ****
if (is_object($GLOBALS['phpgw']->msg))
{
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): is_object test:
$GLOBALS[phpgw]->msg is already set, do not create again<br>'; }
}
else
{
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): $GLOBALS[phpgw]->msg is
NOT set, creating mail_msg object<br>'; }
$GLOBALS['phpgw']->msg =
CreateObject("email.mail_msg");
}
--- 255,276 ----
if (is_object($GLOBALS['phpgw']->msg))
+ //if ((isset($GLOBALS['phpgw']->msg))
+ //&& (isset($GLOBALS['phpgw']->msg->been_constructed))
+ //&& ($GLOBALS['phpgw']->msg->been_constructed == True)
+ //)
{
! if ($this->debug_level > 1) { echo
'msg_bootstrap: ensure_mail_msg_exists('.__LINE__.'): (called_by:
'.$called_by.'): is_object test: $GLOBALS[phpgw]->msg is already set, do not
create again<br>'; }
}
else
{
! if ($this->debug_level > 1) { echo
'msg_bootstrap: ensure_mail_msg_exists('.__LINE__.'): (called_by:
'.$called_by.'): $GLOBALS[phpgw]->msg is NOT set, creating mail_msg
object<br>'; }
$GLOBALS['phpgw']->msg =
CreateObject("email.mail_msg");
+ //$GLOBALS['phpgw']->msg =&
CreateObject("email.mail_msg");
+
//include_once(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_base.inc.php');
+
//include_once(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_wrappers.inc.php');
+
//include_once(PHPGW_INCLUDE_ROOT.'/email/inc/class.mail_msg_display.inc.php');
+ //$GLOBALS['phpgw']->msg =& new mail_msg;
+ if ($this->debug_level > 1) { echo
'msg_bootstrap: ensure_mail_msg_exists('.__LINE__.'): $GLOBALS[phpgw]->msg
created mail_msg object, now calling needed initialization function aka manual
constructor function, "initialize_mail_msg"<br>'; }
+ $GLOBALS['phpgw']->msg->initialize_mail_msg();
}
***************
*** 260,264 ****
{
// mail_msg had already run thru
"begin_request", do not call it again
! if ($debug_level > 0) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): LEAVING , msg object
already initialized<br>'; }
return True;
}
--- 278,282 ----
{
// mail_msg had already run thru
"begin_request", do not call it again
! if ($this->debug_level > 0) { echo
'msg_bootstrap: ensure_mail_msg_exists('.__LINE__.'): (called_by:
'.$called_by.'): LEAVING , msg object already initialized<br>'; }
return True;
}
***************
*** 266,276 ****
$args_array = Array();
// should we log in or not
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): $this->do_login:
['.serialize($this->do_login).']<br>'; }
$args_array['do_login'] = $this->do_login;
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): $this->do_login_ex:
['.serialize($this->do_login_ex).']<br>'; }
$args_array['do_login_ex'] = $this->do_login_ex;
// "start your engines"
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): call msg->begin_request
with args array:<pre>'; print_r($args_array); echo '</pre>'; }
$some_stream =
$GLOBALS['phpgw']->msg->begin_request($args_array);
// error if login failed
--- 284,294 ----
$args_array = Array();
// should we log in or not
! if ($this->debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): $this->do_login:
['.serialize($this->do_login).']<br>'; }
$args_array['do_login'] = $this->do_login;
! if ($this->debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): $this->do_login_ex:
['.serialize($this->do_login_ex).']<br>'; }
$args_array['do_login_ex'] = $this->do_login_ex;
// "start your engines"
! if ($this->debug_level > 1) { echo 'msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.'): call msg->begin_request
with args array:<pre>'; print_r($args_array); echo '</pre>'; }
$some_stream =
$GLOBALS['phpgw']->msg->begin_request($args_array);
// error if login failed
***************
*** 282,286 ****
// login error will halt this script execution
// else all is good to go and script continues...
! if ($debug_level > 0) { echo 'EXIT: msg_bootstrap:
ensure_mail_msg_exists: (called_by: '.$called_by.')'.'<br>'; }
}
--- 300,305 ----
// login error will halt this script execution
// else all is good to go and script continues...
! if ($this->debug_level > 2) { echo 'msg_bootstrap:
about to leave ensure_mail_msg_exists, $GLOBALS[] DUMP:<pre>';
print_r($GLOBALS); echo '</pre>'; }
! if ($this->debug_level > 0) { echo 'EXIT:
msg_bootstrap: ensure_mail_msg_exists: (called_by: '.$called_by.')'.'<br>'; }
}
***************
*** 301,313 ****
//$debug_level = 3;
! if ($debug_level > 0) { echo 'ENTERING: msg_bootstrap:
ensure_utility_classes: <br>'; }
if (is_object($GLOBALS['phpgw']->widgets))
{
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_utility_classes: is_object test: $GLOBALS[phpgw]->widgets is already
set, do not create again<br>'; }
}
else
{
! if ($debug_level > 1) { echo 'msg_bootstrap:
ensure_utility_classes: $GLOBALS[phpgw]->widgets is NOT set, creating
html_widgets object<br>'; }
$my_widgets =
CreateObject("email.html_widgets");
$GLOBALS['phpgw']->widgets = $my_widgets;
--- 320,332 ----
//$debug_level = 3;
! if ($this->debug_level > 0) { echo 'ENTERING:
msg_bootstrap: ensure_utility_classes: <br>'; }
if (is_object($GLOBALS['phpgw']->widgets))
{
! if ($this->debug_level > 1) { echo
'msg_bootstrap: ensure_utility_classes: is_object test:
$GLOBALS[phpgw]->widgets is already set, do not create again<br>'; }
}
else
{
! if ($this->debug_level > 1) { echo
'msg_bootstrap: ensure_utility_classes: $GLOBALS[phpgw]->widgets is NOT set,
creating html_widgets object<br>'; }
$my_widgets =
CreateObject("email.html_widgets");
$GLOBALS['phpgw']->widgets = $my_widgets;
***************
*** 315,319 ****
! if ($debug_level > 0) { echo 'EXIT: msg_bootstrap:
ensure_utility_classes: <br>'; }
}
--- 334,338 ----
! if ($this->debug_level > 0) { echo 'EXIT:
msg_bootstrap: ensure_utility_classes: <br>'; }
}
Index: class.so_mail_msg.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.so_mail_msg.inc.php,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -r1.1.1.1 -r1.1.1.1.2.1
*** class.so_mail_msg.inc.php 13 Mar 2003 20:03:17 -0000 1.1.1.1
--- class.so_mail_msg.inc.php 8 Sep 2003 08:33:35 -0000 1.1.1.1.2.1
***************
*** 35,39 ****
class so_mail_msg
{
!
/*!
@cabability appsession TEMPORARY DATA CACHING - data we generate
--- 35,61 ----
class so_mail_msg
{
! var $use_group_data=True;
! //var $use_group_data=False;
! var $data_group_array=array();
! var $data_group_done_filled=0;
! // when something with a folder triggers gathering of group data
! // store that something here so we know what triggered
gathering group data
! // because if "folder_status_info" is the trigger, it may not
contain the
! // folder that is actually what we need later on, because "show
number new
! // in combobox" will cache that for ALL folders, so a request
for that
! // status info may to fill the combobox and have nothing to do
with the
! // folder in which we are later going to need the group data.
! var $data_group_last_trigger = '';
!
! /*!
! @function so_mail_msg
! @abstract Constructor
! */
! function so_mail_msg()
! {
! if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: ('.__LINE__.'):
*constructor*<br>'); }
! return;
! }
!
/*!
@cabability appsession TEMPORARY DATA CACHING - data we generate
***************
*** 217,223 ****
@author Angles
*/
! function expire_db_session_bulk_data($called_by='not_specified')
{
!
// for DB sessions_db, OR used for anglemail table
if (($GLOBALS['phpgw_info']['server']['sessions_type']
== 'db')
--- 239,245 ----
@author Angles
*/
! function
expire_db_session_bulk_data($called_by='not_specified',
$wipe_absolutely_everything=False)
{
! $this->so_clear_data_group();
// for DB sessions_db, OR used for anglemail table
if (($GLOBALS['phpgw_info']['server']['sessions_type']
== 'db')
***************
*** 261,301 ****
}
! // RE-INSERT IMPORTANT DATA
! for ($i=0; $i <
count($GLOBALS['phpgw']->msg->extra_and_default_acounts); $i++)
{
! if
($GLOBALS['phpgw']->msg->extra_and_default_acounts[$i]['status'] == 'enabled')
{
! $this_acctnum =
$GLOBALS['phpgw']->msg->extra_and_default_acounts[$i]['acctnum'];
! if
($retained_data[$this_acctnum]['mailsvr_callstr'])
{
! if
($GLOBALS['phpgw']->msg->use_private_table == True)
! {
!
$this->so_set_data((string)$this_acctnum.';mailsvr_callstr',
$retained_data[$this_acctnum]['mailsvr_callstr']);
! }
! else
{
!
$GLOBALS['phpgw']->session->appsession((string)$this_acctnum.';mailsvr_callstr',
'email', $retained_data[$this_acctnum]['mailsvr_callstr']);
}
! }
! if
($retained_data[$this_acctnum]['folder_list'])
! {
! if
($GLOBALS['phpgw']->msg->use_private_table == True)
{
!
$this->so_set_data((string)$this_acctnum.';folder_list',
$retained_data[$this_acctnum]['folder_list']);
}
! else
{
!
$GLOBALS['phpgw']->session->appsession((string)$this_acctnum.';folder_list',
'email', $retained_data[$this_acctnum]['folder_list']);
! }
! }
! if
($retained_data[$this_acctnum]['mailsvr_namespace'])
! {
! if
($GLOBALS['phpgw']->msg->use_private_table == True)
! {
!
$this->so_set_data((string)$this_acctnum.';mailsvr_namespace',
$retained_data[$this_acctnum]['mailsvr_namespace']);
! }
! else
! {
!
$GLOBALS['phpgw']->session->appsession((string)$this_acctnum.';mailsvr_namespace',
'email', $retained_data[$this_acctnum]['mailsvr_namespace']);
}
}
--- 283,326 ----
}
! if ($wipe_absolutely_everything == False)
{
! // RE-INSERT IMPORTANT DATA
! for ($i=0; $i <
count($GLOBALS['phpgw']->msg->extra_and_default_acounts); $i++)
{
! if
($GLOBALS['phpgw']->msg->extra_and_default_acounts[$i]['status'] == 'enabled')
{
! $this_acctnum =
$GLOBALS['phpgw']->msg->extra_and_default_acounts[$i]['acctnum'];
! if
($retained_data[$this_acctnum]['mailsvr_callstr'])
{
! if
($GLOBALS['phpgw']->msg->use_private_table == True)
! {
!
$this->so_set_data((string)$this_acctnum.';mailsvr_callstr',
$retained_data[$this_acctnum]['mailsvr_callstr']);
! }
! else
! {
!
$GLOBALS['phpgw']->session->appsession((string)$this_acctnum.';mailsvr_callstr',
'email', $retained_data[$this_acctnum]['mailsvr_callstr']);
! }
}
! if
($retained_data[$this_acctnum]['folder_list'])
{
! if
($GLOBALS['phpgw']->msg->use_private_table == True)
! {
!
$this->so_set_data((string)$this_acctnum.';folder_list',
$retained_data[$this_acctnum]['folder_list']);
! }
! else
! {
!
$GLOBALS['phpgw']->session->appsession((string)$this_acctnum.';folder_list',
'email', $retained_data[$this_acctnum]['folder_list']);
! }
}
! if
($retained_data[$this_acctnum]['mailsvr_namespace'])
{
! if
($GLOBALS['phpgw']->msg->use_private_table == True)
! {
!
$this->so_set_data((string)$this_acctnum.';mailsvr_namespace',
$retained_data[$this_acctnum]['mailsvr_namespace']);
! }
! else
! {
!
$GLOBALS['phpgw']->session->appsession((string)$this_acctnum.';mailsvr_namespace',
'email', $retained_data[$this_acctnum]['mailsvr_namespace']);
! }
}
}
***************
*** 315,322 ****
--- 340,367 ----
{
$look_for_me = 'phpgw_anglemail';
+
+ // have we cached this in SESSION cache - NOT the AM
table itself!
+ $appsession_key = $look_for_me.'_exists';
+ $affirmative_value = 'yes';
+ $negative_value = 'no';
+ $appsession_returns =
$this->so_appsession_passthru($appsession_key);
+ if ($appsession_returns == $affirmative_value)
+ {
+ //echo 'so_am_table_exists: result: Actual
APPSESSION reports stored info saying table ['.$look_for_me.'] DOES exist<br>';
+ return True;
+ }
+ elseif ($appsession_returns == $negative_value)
+ {
+ //echo 'so_am_table_exists: result: Actual
APPSESSION reports stored info saying table ['.$look_for_me.'] does NOT
exist<br>';
+ return False;
+ }
+
+ // NO APPSESSION data, continue ...
$table_names = $GLOBALS['phpgw']->db->table_names();
$table_names_serialized = serialize($table_names);
if (strstr($table_names_serialized, $look_for_me))
{
+ // STORE THE POSITIVE ANSWER
+ $this->so_appsession_passthru($appsession_key,
$affirmative_value);
//echo 'so_am_table_exists: result: table
['.$look_for_me.'] DOES exist<br>';
return True;
***************
*** 324,327 ****
--- 369,374 ----
else
{
+ // STORE THE NEGATIVE ANSWER
+ $this->so_appsession_passthru($appsession_key,
$negative_value);
//echo 'so_am_table_exists: result: table
['.$look_for_me.'] does NOT exist<br>';
return False;
***************
*** 337,346 ****
@abstract ?
*/
! function so_set_data($data_key, $content)
{
$account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
$data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
! $content = serialize($content);
! $content =
$GLOBALS['phpgw']->db->db_addslashes($content);
$GLOBALS['phpgw']->db->query("SELECT content FROM
phpgw_anglemail WHERE "
--- 384,426 ----
@abstract ?
*/
! function so_set_data($data_key, $content, $compression=False)
{
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_set_data('.__LINE__.'):
ENTERING, $data_key ['.$data_key.'], $compression
['.serialize($compression).']<br>'); }
$account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
$data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
! // for compression, first choice is BZ2, second choice
is GZ
! //if (($compression)
! //&& (function_exists('bzcompress')))
! //{
! // $content_preped =
base64_encode(bzcompress(serialize($content)));
! // $content = '';
! // unset($content);
! // if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_set_data('.__LINE__.'):
$compression is ['.serialize($compression).'] AND we did serialize and <font
color="green">did BZ2 compress</font>, no addslashes for compressed
content<br>'); }
! //}
! //else
! if (($compression)
! && (function_exists('gzcompress')))
! {
! $content_preped =
base64_encode(gzcompress(serialize($content)));
! $content = '';
! unset($content);
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_set_data('.__LINE__.'):
$compression is ['.serialize($compression).'] AND we did serialize and <font
color="green">did GZ compress</font>, no addslashes for compressed
content<br>'); }
! }
! else
! {
! // addslashes only if NOT compressing data
! // serialize only is NOT a string
! if (is_string($content))
! {
! $content_preped =
$GLOBALS['phpgw']->db->db_addslashes($content);
! }
! else
! {
! $content_preped =
$GLOBALS['phpgw']->db->db_addslashes(serialize($content));
! }
! $content = '';
! unset($content);
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_set_data('.__LINE__.'):
$compress is ['.serialize($compress).'] AND we did serialize with NO
compression<br>'); }
! }
$GLOBALS['phpgw']->db->query("SELECT content FROM
phpgw_anglemail WHERE "
***************
*** 350,360 ****
{
$GLOBALS['phpgw']->db->query("INSERT INTO
phpgw_anglemail (account_id,data_key,content) "
! . "VALUES ('" . $account_id . "','" .
$data_key . "','" . $content . "')",__LINE__,__FILE__);
}
else
{
! $GLOBALS['phpgw']->db->query("UPDATE
phpgw_anglemail set content='" . $content
. "' WHERE account_id='" . $account_id
. "' AND data_key='" . $data_key . "'",__LINE__,__FILE__);
}
}
--- 430,441 ----
{
$GLOBALS['phpgw']->db->query("INSERT INTO
phpgw_anglemail (account_id,data_key,content) "
! . "VALUES ('" . $account_id . "','" .
$data_key . "','" . $content_preped . "')",__LINE__,__FILE__);
}
else
{
! $GLOBALS['phpgw']->db->query("UPDATE
phpgw_anglemail set content='" . $content_preped
. "' WHERE account_id='" . $account_id
. "' AND data_key='" . $data_key . "'",__LINE__,__FILE__);
}
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_set_data('.__LINE__.'):
LEAVING <br>'); }
}
***************
*** 363,389 ****
@abstract ?
*/
! function so_get_data($data_key)
{
! $account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
! $data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
! $GLOBALS['phpgw']->db->query("SELECT content FROM
phpgw_anglemail WHERE "
! . "account_id = '".$account_id."' AND data_key
= '".$data_key."'",__LINE__,__FILE__);
! if ($GLOBALS['phpgw']->db->num_rows()==0)
{
! return False;
}
else
{
! $GLOBALS['phpgw']->db->next_record();
! //return
unserialize($GLOBALS['phpgw']->db->f('content', 'stripslashes'));
! $my_content =
$GLOBALS['phpgw']->db->f('content', 'stripslashes');
if (!$my_content)
{
return False;
}
! $my_content = unserialize($my_content);
! return $my_content;
}
}
--- 444,651 ----
@abstract ?
*/
! function so_get_data($data_key, $compression=False)
{
! if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
ENTERING, $data_key ['.$data_key.'], $compression
['.serialize($compression).']<br>'); }
! // initialize vars to blank
! $my_content = '';
! $my_content_preped = '';
! if (($this->use_group_data == True)
! && ($this->so_have_data_group() == False)
! && ($this->data_group_done_filled < 3))
{
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
requesting to fill group data<br>'); }
! // TRUE = make this into a generic LIKE match
string
! $func_returns =
$this->so_fill_data_group($data_key, True);
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
fill group data function returns $func_returns
['.serialize($func_returns).']<br>'); }
! }
! elseif (
! ($this->use_group_data == True)
! && ($this->so_have_data_group() == True)
! && ($this->data_group_done_filled < 3)
! && (strstr($this->data_group_last_trigger,
'folder_status_info'))
! && (!strstr($data_key, 'folder_status_info'))
! )
! {
! // the folder_status_info retry allowed,
! // if folder_status_info was the thing that
triggered getting group data,
! // i.e. the first thing to come in here with a
folder element in it,
! // then we are allowed one more try for the
next item that is requested
! // after that that is NOT folder_status_info
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
folder_ststus_info retry block, first trigger was folder_status_info, so now
wipe existing group data and retry<br>'); }
! $this->so_clear_data_group();
! // TRUE = make this into a generic LIKE match
string
! $func_returns =
$this->so_fill_data_group($data_key, True);
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
retry of fill group data function returns $func_returns
['.serialize($func_returns).']<br>'); }
! }
!
! if (($this->use_group_data == False)
! || ($this->so_have_data_group() == False))
! {
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
group data either disabled or nothing returned, requesting individual data
record<br>'); }
! $account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
! $data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
!
! $GLOBALS['phpgw']->db->query("SELECT content
FROM phpgw_anglemail WHERE "
! . "account_id = '".$account_id."' AND
data_key = '".$data_key."'",__LINE__,__FILE__);
!
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
$GLOBALS[phpgw]->db->num_rows() = ['.$GLOBALS['phpgw']->db->num_rows().']
<br>'); }
!
! if ($GLOBALS['phpgw']->db->num_rows()==0)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, returning False<br>'); }
! return False;
! }
! }
!
! if (($compression)
! //&& ((function_exists('bzdecompress')) ||
(function_exists('gzuncompress')) )
! && (function_exists('gzuncompress')))
! {
! if (($this->use_group_data == True)
! && ($this->so_have_data_group() == True))
! {
! // no stripslashes for compressed data
(False)
! $my_content =
$this->so_lookup_data_group($data_key, False);
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
using SO_LOOKUP_DATA_GROUP <br>'); }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
so_lookup_data_group $my_content DUMP:', $my_content); }
! }
! else
! {
! $GLOBALS['phpgw']->db->next_record();
! // no stripslashes for compressed data
! $my_content =
$GLOBALS['phpgw']->db->f('content');
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
query for individual record, NOT using group data<br>'); }
! }
! $comp_desc = array();
! $comp_desc['before_decomp'] = 'NA';
! $comp_desc['after_decomp'] = 'NA';
! $comp_desc['ratio_txt'] = 'NA';
! $comp_desc['ratio_math'] = 'NA';
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $comp_desc['before_decomp'] = strlen($my_content); }
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
strlen($my_content) is ['.$comp_desc['before_decomp'].'], BEFORE decompress,
$compression is ['.serialize($compression).']<br>'); }
! //if ($GLOBALS['phpgw']->msg->debug_so_class >
2) { $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
$GLOBALS[phpgw]->db->next_record() yields $my_content DUMP:', $my_content); }
! if (!$my_content)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, returning False<br>'); }
! return False;
! }
! // for compression, first choice is BZ2, second
choice is GZ
! // NEW: BZ2 is SLOWER than zlib
! //if (function_exists('bzdecompress'))
! //{
! // $my_content_preped =
unserialize(bzdecompress(base64_decode($my_content)));
! // if
($GLOBALS['phpgw']->msg->debug_so_class > 1) { $comp_desc['after_decomp'] =
strlen(serialize($my_content_preped)); $comp_desc['ratio_math'] =
(string)(round(($comp_desc['after_decomp']/$comp_desc['before_decomp']), 1) *
1).'X'; $comp_desc['ratio_txt'] = 'pre/post is ['.$comp_desc['before_decomp'].'
to '.$comp_desc['after_decomp']; }
! // if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
$compression: ['.serialize($compression).'] using <font color="brown">BZ2
decompress</font> pre/post is ['.$comp_desc['ratio_txt'].']; ratio:
['.$comp_desc['ratio_math'].'] <br>'); }
! //}
! //else
! if (function_exists('gzuncompress'))
! {
! $my_content_preped =
unserialize(gzuncompress(base64_decode($my_content)));
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) { $comp_desc['after_decomp'] =
strlen(serialize($my_content_preped)); $comp_desc['ratio_math'] =
(string)(round(($comp_desc['after_decomp']/$comp_desc['before_decomp']), 1) *
1).'X'; $comp_desc['ratio_txt'] = 'pre/post is ['.$comp_desc['before_decomp'].'
to '.$comp_desc['after_decomp']; }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
$compression: ['.serialize($compression).'] using <font color="brown">GZ
uncompress</font> pre/post is ['.$comp_desc['ratio_txt'].']; ratio:
['.$comp_desc['ratio_math'].'] <br>'); }
! }
! else
! {
! $my_content_preped = '';
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
ERROR: $compression: ['.serialize($compression).'] <font
color="brown">decompression ERROR</font> neither "bzdecompress" (first choice)
nor "gzuncompress" (second choice) is available<br>'); }
! }
! $my_content = '';
! unset($my_content);
! if (!$my_content_preped)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
AFTER DECOMPRESS and UNserialization $my_content_preped is GONE!'); }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, returning False, <font color="red">content did not unserialize,
compression was in use </font> <br>'); }
! return False;
! }
! else
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
AFTER DECOMPRESS and UNserialization $my_content_preped DUMP:',
$my_content_preped); }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, got content, <font color="brown"> did decompress </font> , returning
that content<br>'); }
! return $my_content_preped;
! }
}
else
{
! if (($this->use_group_data == True)
! && ($this->so_have_data_group() == True))
! {
! // not using compression so we will
stripslashes
! $my_content =
$this->so_lookup_data_group($data_key, True);
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
using SO_LOOKUP_DATA_GROUP <br>'); }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
so_lookup_data_group $my_content DUMP:', $my_content); }
! }
! else
! {
! $GLOBALS['phpgw']->db->next_record();
! // NOTE: we only stripslashes when NOT
using compression
! $my_content =
$GLOBALS['phpgw']->db->f('content', 'stripslashes');
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
query for individual record, NOT using group data<br>'); }
! }
! if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{ $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
strlen($my_content) is ['.strlen($my_content).']<br>'); }
! //if ($GLOBALS['phpgw']->msg->debug_so_class >
2) { $GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
$GLOBALS[phpgw]->db->next_record() yields $my_content DUMP:', $my_content); }
if (!$my_content)
{
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, returning False<br>'); }
return False;
}
! // we serialize only NON-strings,
! // so unserialize only if content is already
serialized
! //if
($GLOBALS['phpgw']->msg->is_serialized_str($my_content) == True)
! if
($GLOBALS['phpgw']->msg->is_serialized_smarter($my_content) == True)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'): we
need to unserialize this <br>'); }
! $my_content_preped =
unserialize($my_content);
! // DID IT WORK
! //$try_recover = True;
! $try_recover = False;
! if (!$my_content_preped)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'): <b>
<font color="red">ERROR unserializing </font> </b> , probably a slashes
problem<br>'); }
! if ($try_recover == True)
! {
! // try some recovery
methods
! $my_content_recover =
$my_content;
! $my_content_recover =
str_replace(':"',':_LEGITQUOTE_',$my_content_recover);
! $my_content_recover =
str_replace('":','_LEGITQUOTE_:',$my_content_recover);
! $my_content_recover =
str_replace('";','_LEGITQUOTE_;',$my_content_recover);
! //$my_content_recover =
str_replace('\/','_ESCAPEDSLASH_',$my_content_recover);
! //$my_content_recover =
str_replace('/','\/',$my_content_recover);
! $my_content_recover =
str_replace('\\','\\\\',$my_content_recover);
! // HACK
! //$my_content_recover =
str_replace('/','//',$my_content_recover);
! //$my_content_recover =
str_replace('"','/"',$my_content_recover);
! $my_content_recover =
str_replace('\"','\_LEGITQUOTE_',$my_content_recover);
! $my_content_recover =
str_replace('"','\"',$my_content_recover);
! $my_content_recover =
str_replace('_LEGITQUOTE_','"',$my_content_recover);
! //$my_content_recover =
str_replace('_ESCAPEDSLASH_','\/',$my_content_recover);
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
so_lookup_data_group $my_content_recover DUMP:', $my_content_recover); }
! $my_content_preped =
unserialize($my_content_recover);
! if (!$my_content_preped)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'): <b>
<font color="red">2nd ERROR unserializing </font> </b> , recovery did not work,
probably a slashes problem<br>'); }
! }
! }
! }
! }
! else
! {
! $my_content_preped = $my_content;
! }
! $my_content = '';
! unset($my_content);
! if (!$my_content_preped)
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
AFTER UNserialization $my_content_preped is GONE!'); }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, returning False, <font color="red">content did not unserialize </font>
<br>'); }
! return False;
! }
! else
! {
! if
($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
AFTER UNserialization $my_content_preped DUMP:', $my_content_preped); }
! if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg: so_get_data('.__LINE__.'):
LEAVING, got content, returning that content<br>'); }
! return $my_content_preped;
! }
}
}
***************
*** 399,402 ****
--- 661,665 ----
$GLOBALS['phpgw']->db->query("DELETE FROM
phpgw_anglemail "
. " WHERE account_id='" . $account_id . "' AND
data_key='" . $data_key . "'",__LINE__,__FILE__);
+ $this->so_clear_data_group($data_key);
}
***************
*** 410,415 ****
--- 673,1058 ----
$GLOBALS['phpgw']->db->query("DELETE FROM
phpgw_anglemail "
. " WHERE account_id='" . $account_id .
"'",__LINE__,__FILE__);
+ $this->so_clear_data_group();
}
+ /*!
+ @function so_prop_use_group_data
+ @abstract Delphi style property function for "use_group_data"
+ @discussion This Delphi style property function replaces the
typical "get" and
+ "set" function. No arg passed will return the current value.
Passing False
+ or an empty string sets "use_group_data" to False,
+ passing anything else as an arg sets "use_group_data" to true.
+ @author Angles
+ */
+ function so_prop_use_group_data($feed_value='##NOTHING##')
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
ENTERING, current $this->use_group_data
['.serialize($this->use_group_data).'], $feed_value
['.serialize($feed_value).']<br>'); }
+ if ((string)$feed_value == '##NOTHING##')
+ {
+ // do nothing skip down to the return statement
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
do nothing, $feed_value ['.serialize($feed_value).'] == "##NOTHING##" means
only return current property<br>'); }
+ //return $this->use_group_data;
+ }
+ elseif ($feed_value)
+ {
+ if ($this->use_group_data != True)
+ {
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
toggle $this->use_group_data to True, and thus call "so_clear_data_group" and
set "data_group_done_filled" to 0 and then set to True<br>'); }
+ // maybe we should clear any stored
data, huh?
+ $this->so_clear_data_group();
+ // and maybe we should reset this
excess query counter too, huh?
+ $this->data_group_done_filled = 0;
+ $this->use_group_data = True;
+ }
+ else
+ {
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
do nothing, use_group_data is already TRUE<br>'); }
+ }
+ }
+ elseif (!$feed_value)
+ {
+ if ($this->use_group_data != False)
+ {
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
toggle $this->use_group_data to False, and thus call "so_clear_data_group" and
then set to False<br>'); }
+ // maybe we should clear any stored
data, huh?
+ $this->so_clear_data_group();
+ $this->use_group_data = False;
+ }
+ else
+ {
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
do nothing, use_group_data is already FALSE<br>'); }
+ }
+ }
+ else
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
ERROR why am I here?<br>'); }
+ }
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_prop_use_group_data('.__LINE__.'):
LEAVING, returning $this->use_group_data
['.serialize($this->use_group_data).']<br>'); }
+ return $this->use_group_data;
+ }
+
+ /*!
+ @function so_fill_data_group
+ @abstract ?
+ */
+ function so_fill_data_group($data_key_partial='',
$make_like=True)
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
ENTERING, $data_key_partial ['.$data_key_partial.'] $make_like
['.serialize($make_like).']<br>'); }
+ if ($this->use_group_data == False)
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
LEAVING returning False<br>'); }
+ return False;
+ }
+
+ $this->data_group_array = array();
+ if (!$data_key_partial)
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
LEAVING returning False<br>'); }
+ return False;
+ }
+
+ if ($make_like)
+ {
+ $orig_data_key_partial = $data_key_partial;
+ $data_key_exploded = array();
+ $data_key_exploded =
explode(';',$orig_data_key_partial);
+ //SQL pattern matching allows you to use `_' to
match any single character
+ //and `%' to match an arbitrary number of
characters (including zero characters)
+ // make acctnum;ANY THING;folder for our LIKE
querey
+ if ((isset($data_key_exploded[0]))
+ && (isset($data_key_exploded[2])))
+ {
+ // fill this class var, what triggered
the gathering of group data?
+ // because if it was
"folder_status_info" then later we are allowed to try again
+ // since cached folder stats may be
simply to fill the combobox and not related
+ // to the folder we really need the
group data for
+ $this->data_group_last_trigger =
$data_key_partial;
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
setting $this->data_group_last_trigger
['.$this->data_group_last_trigger.']<br>'); }
+ // prep for group data query
+ $data_key =
$data_key_exploded[0].';%;'.$data_key_exploded[2].';%';
+ //$data_key =
$data_key_exploded[0].'\;%\;'.$data_key_exploded[2].'\;%';
+ //$data_key =
(string)$data_key_exploded[0].'%'.$data_key_exploded[2].'%';
+ // HOWEVER 2 things also are kept in
the DB that do NOT HAVE A ";" after the folder name
+ $data_key_msgball =
(string)$data_key_exploded[0].';msgball_list;'.$data_key_exploded[2];
+ //$data_key_folder_status_info =
(string)$data_key_exploded[0].';folder_status_info;'.$data_key_exploded[2];
+ // so below we use the LIKE and then OR
= for those 2 additional things, all in one query
+ // without the ";" after the folder
name, the wildcard "%" could match INBOX[anything]
+ // that is bad because if inbox is the
namespace, we get the ENITRE database instead if just INBOX with "INBOX%"
+ // so we use "INBOX;%" to avoid that
madness,
+ // but add those other 2 items so we do
not EXCLUSE them because of the lack of trailing ";" as their data_key
+
+ // DAMN get the folder status info for
EVERY FOLDER in case we need it for the combo box
+ $data_key_folder_status_info =
(string)$data_key_exploded[0].';folder_status_info;%';
+
+ // OK there are some other things we
should get too
+ // these are data that are associated
with the account in general, no folder value is used
+ // NOTE IT IS RARE these are actually
needed one we do fill the group data
+ // because the first data_key with a
folder in it will trigger the filling of group data
+ // this means these things probably
were requested earlier on in the page view anyway
+ $data_key_folder_list =
(string)$data_key_exploded[0].';folder_list';
+ $data_key_mailsvr_callstr =
(string)$data_key_exploded[0].';mailsvr_callstr';
+ $data_key_mailsvr_namespace =
(string)$data_key_exploded[0].';mailsvr_namespace';
+ }
+ //elseif (isset($data_key_exploded[0]))
+ //{
+ // // NO FOLDER means the way we get mass
group data will not work
+ // $data_key =
+ // // NO FOLDER so we can not get these 2
things we would also look for
+ // $data_key_msgball = '';
+ // $data_key_folder_status_info = '';
+ // // HOWEVER ...
+ // // OK there are some other things we
can still get
+ // // these are data that are associated
with the account in general, no folder value is used
+ // $data_key_folder_list =
(string)$data_key_exploded[0].';folder_list';
+ // $data_key_mailsvr_callstr =
(string)$data_key_exploded[0].';mailsvr_callstr';
+ // $data_key_mailsvr_namespace =
(string)$data_key_exploded[0].';mailsvr_namespace';
+ //}
+ else
+ {
+ // Data Key does NOT have a folder name
+ // means the way we get mass group data
will not be worth it
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
LEAVING returning False<br>'); }
+ return False;
+ }
+ }
+ else
+ {
+ $data_key = $data_key_partial;
+ $data_key_msgball = '';
+ $data_key_folder_status_info = '';
+ $data_key_folder_list = '';
+ $data_key_mailsvr_callstr = '';
+ $data_key_mailsvr_namespace = '';
+ }
+
+ $account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
+ //if (($data_key)
+ //&& ($data_key_msgball)
+ //&& ($data_key_folder_status_info))
+ //{
+ // $data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
+ // $data_key_msgball =
$GLOBALS['phpgw']->db->db_addslashes($data_key_msgball);
+ // $data_key_folder_status_info =
$GLOBALS['phpgw']->db->db_addslashes($data_key_folder_status_info);
+ // $GLOBALS['phpgw']->db->query("SELECT * FROM
phpgw_anglemail WHERE "
+ // . "account_id = '".$account_id
+ // ."' AND (data_key LIKE '".$data_key
+ // ."' OR data_key = '".$data_key_msgball
+ // ."' OR data_key LIKE
'".$data_key_folder_status_info
+ // ."')"
+ // ,__LINE__,__FILE__);
+ //}
+ if (($data_key)
+ && ($data_key_msgball)
+ && ($data_key_folder_status_info)
+ && ($data_key_folder_list)
+ && ($data_key_mailsvr_callstr)
+ && ($data_key_mailsvr_namespace))
+ {
+ $data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
+ $data_key_msgball =
$GLOBALS['phpgw']->db->db_addslashes($data_key_msgball);
+ $data_key_folder_status_info =
$GLOBALS['phpgw']->db->db_addslashes($data_key_folder_status_info);
+ $data_key_folder_list =
$GLOBALS['phpgw']->db->db_addslashes($data_key_folder_list);
+ $data_key_mailsvr_callstr =
$GLOBALS['phpgw']->db->db_addslashes($data_key_mailsvr_callstr);
+ $data_key_mailsvr_namespace =
$GLOBALS['phpgw']->db->db_addslashes($data_key_mailsvr_namespace);
+ $GLOBALS['phpgw']->db->query("SELECT * FROM
phpgw_anglemail WHERE "
+ . "account_id = '".$account_id
+ ."' AND (data_key LIKE '".$data_key
+ ."' OR data_key = '".$data_key_msgball
+ ."' OR data_key LIKE
'".$data_key_folder_status_info
+ ."' OR data_key =
'".$data_key_folder_list
+ ."' OR data_key =
'".$data_key_mailsvr_callstr
+ ."' OR data_key =
'".$data_key_mailsvr_namespace
+ ."')"
+ ,__LINE__,__FILE__);
+ }
+ //elseif (($data_key_folder_list)
+ //&& ($data_key_mailsvr_callstr)
+ //&& ($data_key_mailsvr_namespace))
+ //{
+ // $data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
+ // $data_key_msgball =
$GLOBALS['phpgw']->db->db_addslashes($data_key_msgball);
+ // $data_key_folder_status_info =
$GLOBALS['phpgw']->db->db_addslashes($data_key_folder_status_info);
+ // $GLOBALS['phpgw']->db->query("SELECT * FROM
phpgw_anglemail WHERE "
+ // . "account_id = '".$account_id
+ // ."' AND (data_key =
'".$data_key_folder_list
+ // ."' OR data_key =
'".$data_key_mailsvr_callstr
+ // ."' OR data_key =
'".$data_key_mailsvr_namespace
+ // ."')"
+ // ,__LINE__,__FILE__);
+ //}
+ else
+ {
+ $data_key =
$GLOBALS['phpgw']->db->db_addslashes($data_key);
+ $GLOBALS['phpgw']->db->query("SELECT * FROM
phpgw_anglemail WHERE "
+ . "account_id = '".$account_id."' AND
data_key LIKE '".$data_key."'",__LINE__,__FILE__);
+ }
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg:
so_fill_data_group('.__LINE__.'): $data_key ['.htmlspecialchars($data_key).']
$data_key_msgball ['.htmlspecialchars($data_key_msgball).']
$data_key_folder_status_info
['.htmlspecialchars($data_key_folder_status_info).']<br>'); }
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg:
so_fill_data_group('.__LINE__.'): $data_key_folder_list
['.htmlspecialchars($data_key_folder_list).'] $data_key_mailsvr_callstr
['.htmlspecialchars($data_key_mailsvr_callstr).'] $data_key_mailsvr_namespace
['.htmlspecialchars($data_key_mailsvr_namespace).']<br>'); }
+ $num_rows = $GLOBALS['phpgw']->db->num_rows();
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg:
so_fill_data_group('.__LINE__.'): $num_rows ['.$num_rows.']<br>'); }
+ if ($num_rows == 0)
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
LEAVING returning False<br>'); }
+ return False;
+ }
+ // increment counter how many times we have filled
group data
+ // maybe some day we use to tell us when this is not
appropriate if overused for some transactions
+ $this->data_group_done_filled++;
+
+ for ($i = 0; $i < $num_rows; $i++)
+ {
+ $GLOBALS['phpgw']->db->next_record();
+ $my_data_key =
$GLOBALS['phpgw']->db->f('data_key', 'stripslashes');
+ // NOTE: we only stripslashes when NOT using
compression
+ // so we will stripslashes later if we need to
+ $my_content =
$GLOBALS['phpgw']->db->f('content');
+ $this->data_group_array[$my_data_key] =
$my_content;
+ }
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 2) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg:
so_fill_data_group('.__LINE__.'): $this->data_group_array DUMP:',
$this->data_group_array); }
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_fill_data_group('.__LINE__.'):
LEAVING returning TRUE, did fill group data<br>'); }
+ return True;
+ }
+
+ /*!
+ @function so_have_data_group
+ @abstract ?
+ */
+ function so_have_data_group()
+ {
+ if (!$this->data_group_array)
+ {
+ return False;
+ }
+ else
+ {
+ return True;
+ }
+ }
+
+ /*!
+ @function so_clear_data_group
+ @abstract ?
+ */
+ function so_clear_data_group($data_key='')
+ {
+ if (!$this->data_group_array)
+ {
+ return False;
+ }
+
+ if (!$data_key)
+ {
+ // wipe everything
+ $this->data_group_array = array();
+ return True;
+ }
+ elseif (isset($this->data_group_array[$data_key]))
+ {
+ // erease only one element
+ $this->data_group_array[$data_key] = '';
+ unset($this->data_group_array[$data_key]);
+ return True;
+ }
+ else
+ {
+ // supposed to erease a single element but it
is not set
+ return False;
+ }
+ }
+
+ /*!
+ @function so_lookup_data_group
+ @abstract ?
+ */
+ function so_lookup_data_group($data_key, $do_stripslashes='')
+ {
+ if ($this->use_group_data == False)
+ {
+ return False;
+ }
+ if (!$this->data_group_array)
+ {
+ return False;
+ }
+ if (!isset($this->data_group_array[$data_key]))
+ {
+ return False;
+ }
+
+ if ($do_stripslashes)
+ {
+ return
stripslashes($this->data_group_array[$data_key]);
+ }
+ else
+ {
+ return $this->data_group_array[$data_key];
+ }
+ }
+
+
+ /*!
+ @function so_appsession_passthru
+ @abstract this will ONLY use the ACTUAL REAL APPSESSION of
phpgwapi
+ @param $location (string) in phpgwapi session speak this is the
"name" of the information aka the
+ key in a key value pair
+ @param $location (string) OPTIONAL the value in the key value
pair. Empty will erase I THINK the
+ apsession data stored for the "name" aka the "location".
+ @discussion This is a SIMPLE PASSTHRU for the real phpgwapi
session call. This function will
+ never use the anglemail table, it is intended for stuff we
REALLY want to last only for one session.
+ @author Angles
+ */
+ function
so_appsession_passthru($location='',$data='##NOTHING##', $compression=False)
+ {
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
ENTERING: $location ['.$location.'], $compression
['.serialize($compression).']<br>'); }
+ if ($GLOBALS['phpgw']->msg->session_cache_enabled ==
False)
+ {
+ // flag means we do not use any session caching
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
LEAVING, msg->session_cache_enabled False, so disabled session caching,
returning False<br>'); }
+ return False;
+ }
+ // ok we are allowed to do session caching ...
+ // since $data may be boolean, boolean True will == any
filled string
+ // so for accuracy here we need to case $data as a
string to do a real == statement
+ if ((string)$data == '##NOTHING##')
+ {
+ // means we are GETTING data from appsession
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
request to get data<br>'); }
+ if (($compression)
+ && (function_exists('gzuncompress')))
+ {
+ $content =
$GLOBALS['phpgw']->session->appsession($location, 'email');
+ $content_preped =
base64_encode(gzuncompress(serialize($content)));
+ $content = '';
+ unset($content);
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
LEAVING, returning passthru data hopefully<br>'); }
+ return $content_preped;
+ }
+ else
+ {
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
LEAVING, returning passthru data<br>'); }
+ return
$GLOBALS['phpgw']->session->appsession($location, 'email');
+ }
+ }
+ else
+ {
+ // means we are SETTING data to appsession
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 1)
{
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
request to SET data<br>'); }
+ if (($compression)
+ && (function_exists('gzcompress')))
+ {
+ $content_preped =
base64_encode(gzcompress(serialize($data)));
+ $data = '';
+ unset($data);
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
LEAVING, returning passthru value<br>'); }
+ return
$GLOBALS['phpgw']->session->appsession($location, 'email', $content_preped);
+ }
+ else
+ {
+ if
($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
LEAVING, returning passthru value<br>'); }
+ return
$GLOBALS['phpgw']->session->appsession($location, 'email', $data);
+ }
+ }
+ if ($GLOBALS['phpgw']->msg->debug_so_class > 0) {
$GLOBALS['phpgw']->msg->dbug->out('so_mail_msg.so_appsession_passthru('.__LINE__.'):
ERROR: we should have returned by now<br>'); }
+ }
}
?>
Index: class.spell.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.spell.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
Index: class.spell_struct.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.spell_struct.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
Index: class.spell_svc_none.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.spell_svc_none.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
Index: class.spell_svc_php.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.spell_svc_php.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
Index: class.svc_debug.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.svc_debug.inc.php,v
retrieving revision 1.1.1.1
retrieving revision 1.1.1.1.2.1
diff -C2 -r1.1.1.1 -r1.1.1.1.2.1
*** class.svc_debug.inc.php 13 Mar 2003 20:03:17 -0000 1.1.1.1
--- class.svc_debug.inc.php 8 Sep 2003 08:33:35 -0000 1.1.1.1.2.1
***************
*** 38,41 ****
--- 38,46 ----
var $debugdata=array();
+ // for timimg, this is filled with data the first CALL to a
class functions
+ var $t_first_call = '##NOTHING##';
+ // this is filled on CREATION of this class
+ var $t_on_creation = '##NOTHING##';
+
// available debug output types
var
$available_debug_outputs=array('echo_out','fill_array','fill_array__another_window','FUTURE');
***************
*** 52,56 ****
function svc_debug()
{
! // do nothing here
}
--- 57,167 ----
function svc_debug()
{
! // fill a timestamp
! if ($this->t_on_creation == '##NOTHING##')
! {
! $this->t_on_creation = array();
! $this->t_on_creation['raw'] = microtime();
! // we'll finish it later
! $this->t_on_creation['useful'] == '##NOTHING##';
! }
! return;
! }
!
!
! /*!
! @function ensure_time_stamps
! @abstract ?
! */
! function ensure_time_stamps()
! {
! // get a useful timestamp out of the constructor filled
creation mtime
! if (!isset($this->t_on_creation['useful'])
! || ($this->t_on_creation['useful'] == '##NOTHING##'))
! {
! list($this->t_on_creation['t_micro'],
$this->t_on_creation['t_int']) = explode(' ', $this->t_on_creation['raw']);
! $this->t_on_creation['full_str'] = '';
! $this->t_on_creation['full_str'] =
(string)$this->t_on_creation['t_int'].(string)substr($this->t_on_creation['t_micro'],
1);
! $this->t_on_creation['useful'] =
$this->microtime_to_useful($this->t_on_creation['raw']);
! // add one second in for use when time rolls
over from 9 sec to "10" sec
! //$this->t_on_creation['useful_plus_one_sec'] =
$this->useful_add_one_sec($this->t_on_creation['useful']);
! }
! // not the "since first call to a function here"
timestamp
! if ($this->t_first_call == '##NOTHING##')
! {
! $this->t_first_call = array();
! $this->t_first_call['raw'] = microtime();
! list($this->t_first_call['t_micro'],
$this->t_first_call['t_int']) = explode(' ', $this->t_first_call['raw']);
! $this->t_first_call['full_str'] = '';
! $this->t_first_call['full_str'] =
(string)$this->t_first_call['t_int'].(string)substr($this->t_first_call['t_micro'],
1);
!
! $this->t_first_call['useful'] =
$this->microtime_to_useful($this->t_first_call['raw']);
! //$this->t_on_creation['useful_plus_one_sec'] =
$this->useful_add_one_sec($this->t_on_creation['useful']);
! }
! }
!
! /*!
! @function microtime_to_useful
! @abstract ?
! */
! function microtime_to_useful($feed_micro_str)
! {
! // microtime gives us "0.26469400 1050637805"
! // split the parts
! list($t_micro, $t_int) = explode(' ', $feed_micro_str);
! // shorten the microsec by 2 numbers
! $t_micro_short = substr($t_micro,0, -2);
! // replace the "0." at pos 1 of microsec with the2
final sec digit (05 in this example)
! $last_sec_digits = substr($t_int,-2);
! $useful_t_micro =
str_replace('0.',$last_sec_digits,$t_micro_short);
! // now return an int that is last_sec_digitS concat
with t_micro into one BIG INT
! return (int)$useful_t_micro;
! }
!
! /*!
! @function microtime_to_useful
! @abstract ?
! */
! function diff_to_seconds($feed_diff)
! {
! // microtime gives us "0.26469400 1050637805"
! // micro part is 8 digits
! // cut that by 2 digits, then add the last 2 second
digits from the seconds part
! // so we have S=seconds M=microseconds
! // SSMMMMMM
! // so the diff between 2 of these variable length,
let's standardize it
! // also, the diff of length 6 or less is not yet a
second of difference
! $feed_diff = (string)$feed_diff;
! $feed_diff_length = strlen($feed_diff);
! $return_diff = '';
! if ($feed_diff_length <= 6)
! {
! if (function_exists('str_pad') == False)
! {
! // we need to add 0 digits preappended
to this diff
! $return_diff = $feed_diff;
! $add_digits = 6 - $feed_diff_length;
! for ($i = 0; $i < $add_digits; $i++)
! {
! $return_diff = '0'.$return_diff;
! }
! }
! else
! {
! // same thing using str_pad
! $return_diff = str_pad($feed_diff, 6,
'0', STR_PAD_LEFT);
! }
! // now add the dot "."
! $return_diff = '0.'.$return_diff;
! }
! else
! {
! // diff of length 7 or more, then digit 1 out
of 7 is a second second+ diff.
! // position to add dot "." to the string is
leaving 6 digits after the dot
! $micro_part = substr($feed_diff, -6);
! $return_diff = str_replace($micro_part,
'.'.$micro_part, $feed_diff);
!
! }
!
! return $return_diff;
}
***************
*** 71,75 ****
*/
function out($str='', $dump_obj='', $output_to='')
! {
// normalize some params
if ((!$output_to)
--- 182,186 ----
*/
function out($str='', $dump_obj='', $output_to='')
! {
// normalize some params
if ((!$output_to)
***************
*** 80,87 ****
$output_to = $this->debugoutput_to;
if (!$str)
{
! $str = 'mail_msg_display: out: no debug message
provided';
}
// output the debug info
if ($output_to == 'echo_out')
--- 191,214 ----
$output_to = $this->debugoutput_to;
+ $this->ensure_time_stamps();
+ $current_mtime = microtime();
+ // this returns mtime as an INTEGER so we can actually
use it
+ $current_useful =
$this->microtime_to_useful($current_mtime);
+ //$diff = $current_useful -
$this->t_first_call['useful'];
+ $diff = $current_useful -
$this->t_on_creation['useful'];
+ $diff = $this->diff_to_seconds($diff);
+ $diff = (string)$diff;
+
if (!$str)
{
! $str = 'svc_debug: out('.__LINE__.'): out: no
debug message provided';
}
+
+ // add time stamp
+ //$str = '<small>('.$this->t_first_call['raw'].' ::
'.$this->t_first_call['useful'].')</small> '.$str;
+ //$str =
'<small>('.$this->t_first_call['full_str'].')</small> '.$str;
+ //$str =
'<small>('.$this->t_first_call['float'].')</small> '.$str;
+ $str = '<small><font
color="brown">(+'.$diff.')</font></small> '.$str;
+
// output the debug info
if ($output_to == 'echo_out')
***************
*** 91,97 ****
&& ($dump_obj))
{
! echo '<pre>';
! print_r($dump_obj);
! echo '</pre>';
}
}
--- 218,224 ----
&& ($dump_obj))
{
! echo '<pre>'; print_r($dump_obj); echo
'</pre>';
! // EXPIREMENTAL
! //echo
'<br><small>'.$this->fake_print_r($dump_obj).'</small></br>';
}
}
***************
*** 101,110 ****
// do this for simple "fill_array" and for
"fill_array__another_window"
$this->debugdata[] = $str;
if ((isset($dump_obj))
&& ($dump_obj))
{
//$this->debugdata[] =
'<pre>'.serialize($dump_obj).'</pre>';
! $this->debugdata[] = '<br
/>'.serialize($dump_obj).'<br />';
//$this->debugdata[] = '<br
/>'.$this->htmlspecialchars_encode(serialize($dump_obj)).'<br />';
}
}
--- 228,247 ----
// do this for simple "fill_array" and for
"fill_array__another_window"
$this->debugdata[] = $str;
+ // fake_print_r does not yet work on objects
if ((isset($dump_obj))
+ && (is_object($dump_obj)))
+ {
+ //$this->debugdata[] = '<br
/>'.serialize($dump_obj).'<br />';
+ $this->debugdata[] = '<br />
<pre>'.$this->print_r_log($dump_obj).'</pre> <br />';
+ }
+ elseif ((isset($dump_obj))
&& ($dump_obj))
{
//$this->debugdata[] =
'<pre>'.serialize($dump_obj).'</pre>';
! //$this->debugdata[] = '<br
/>'.serialize($dump_obj).'<br />';
//$this->debugdata[] = '<br
/>'.$this->htmlspecialchars_encode(serialize($dump_obj)).'<br />';
+ // this works ok
+ //$this->debugdata[] = '<br
/><small>'.$this->fake_print_r($dump_obj).'</small><br />';
+ $this->debugdata[] = '<br />
<pre>'.$this->print_r_log($dump_obj).'</pre> <br />';
}
}
***************
*** 175,178 ****
--- 312,342 ----
$this_line = preg_replace('/(<font
color=")(.*)(">)(.*)(<\/font>)/U','<font color="\2"> \4
</font>',$this_line);
$this_line = str_replace('
__LINEBREAK_BR__ ', '<br />', $this_line);
+ $this_line = str_replace('
__LINEBREAK__ ', '<br />', $this_line);
+ // NEW STUFF
+ // <small> .. </small>
+ $this_line =
str_replace('<small>', '<small>', $this_line);
+ $this_line =
str_replace('</small>', '</small>', $this_line);
+ // <li> .. </li>
+ $this_line = str_replace('<li>',
'<li>', $this_line);
+ $this_line = str_replace('</li>',
'</li>', $this_line);
+ // <u> .. </u>
+ $this_line = str_replace('<u>',
'<u>', $this_line);
+ $this_line = str_replace('</u>',
'</u>', $this_line);
+ // =>
+ $this_line = str_replace('=&gt;',
'=>', $this_line);
+ // <code> .. </code>
+ $this_line =
str_replace('<code>', '<code>', $this_line);
+ $this_line =
str_replace('</code>', '</code>', $this_line);
+ // <pre> .. </pre>
+ $this_line = str_replace('<pre>',
'<pre>', $this_line);
+ $this_line =
str_replace('</pre>', '</pre>', $this_line);
+ // <ul style="list-style-type: none;">
.. </ul>
+ $this_line = str_replace('<ul
style="list-style-type: none;">', '<ul style="list-style-type:
none;">', $this_line);
+ $this_line = str_replace('</ul>',
'</ul>', $this_line);
+ //$this_line = preg_replace('/(<font
color=")(.*)(">)(.*)(<\/font>)/U','<font color="\2"> \4
</font>',$this_line);
+ // > .. <
+ $this_line = str_replace('&lt;',
'<', $this_line);
+ $this_line = str_replace('&gt;',
'>', $this_line);
+
$temp_data .= '<br />+ '.$this_line;
}
***************
*** 235,238 ****
--- 399,406 ----
var _console = null;
var _did_output = 0;
+ // do we close it every page view and start blank with next page
+ // do we keep the window open and keep appending
+ var _append_to_console = 0;
+ //var _append_to_console = 1;
function do_debug(msg)
{
***************
*** 253,257 ****
// or not calling close will add the next page view debug data to the
existing text here
// ALSO calling close requires the open statement check above
! //_console.document.close();
_did_output = 1;
}
--- 421,427 ----
// or not calling close will add the next page view debug data to the
existing text here
// ALSO calling close requires the open statement check above
! if (_append_to_console == 0) {
! _console.document.close();
! }
_did_output = 1;
}
***************
*** 272,275 ****
--- 442,498 ----
return $other_window_js;
+ }
+
+
+ /*!
+ @function fake_print_r
+ @abstract like php print_r EXCEPT it returns an html string
instead of echoing out
+ @discussion This made by Seek3r as part of the phpgwapi file
"php3_support_functions", it
+ is simply copied here for easier use. I, Angles, made almost no
changes to the original Seek3r code
+ in this function which had been called "print_r" in said file.
+ @author Seek3r, Angles
+ */
+ function fake_print_r($array,$print=False)
+ {
+ $str = '';
+ if(gettype($array)=="array")
+ {
+ //$str .= '<ul>';
+ $str .= '<ul style="list-style-type: none;">';
+ while (list($index, $subarray) = each($array) )
+ {
+ $str .= '<li>'.$index.'
<code>=></code>';
+ //$str .= print_r($subarray,$print);
+ $str .=
$this->fake_print_r($subarray,$print);
+ $str .= '</li>';
+ }
+ $str .= '</ul>';
+ }
+ else
+ {
+ $str .= $array;
+ }
+ if($print)
+ {
+ echo $str;
+ }
+ else
+ {
+ return $str;
+ }
+ }
+
+ /*!
+ @function print_r_log
+ @abstract user example on php site about print_r as a var
string using OB
+ @discussion ?
+ */
+ function print_r_log($var)
+ {
+ ob_start();
+ print_r($var);
+ $ret_str = ob_get_contents();
+ ob_end_clean();
+ return $ret_str;
}
Index: class.svc_nextmatches.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.svc_nextmatches.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
*** class.svc_nextmatches.inc.php 14 Mar 2003 04:01:12 -0000 1.2
--- class.svc_nextmatches.inc.php 8 Sep 2003 08:33:35 -0000 1.2.2.1
***************
*** 333,337 ****
//$img_full =
$GLOBALS['phpgw']->common->image('email',$img);
$img_full =
$GLOBALS['phpgw']->msg->_image_on('email',$img,'_on');
! $image_part = '<img src="'.$img_full.'"
border="0" alt="'.$alt_text.'">';
return '<a
href="'.$out_vars['common_uri'].'&start='.$out_vars['start'].'">'.$image_part.'</a>';
}
--- 333,337 ----
//$img_full =
$GLOBALS['phpgw']->common->image('email',$img);
$img_full =
$GLOBALS['phpgw']->msg->_image_on('email',$img,'_on');
! $image_part = '<img src="'.$img_full.'"
border="0" title="'.$alt_text.'" alt="'.$alt_text.'">';
return '<a
href="'.$out_vars['common_uri'].'&start='.$out_vars['start'].'">'.$image_part.'</a>';
}
***************
*** 363,367 ****
//$img_full =
$GLOBALS['phpgw']->common->image('email',$img);
$img_full =
$GLOBALS['phpgw']->msg->_image_on('email',$img,'_on');
! return '<img src="'.$img_full.'" border="0"
alt="'.$alt_text.'">'."\r\n";
}
}
--- 363,367 ----
//$img_full =
$GLOBALS['phpgw']->common->image('email',$img);
$img_full =
$GLOBALS['phpgw']->msg->_image_on('email',$img,'_on');
! return '<img src="'.$img_full.'" border="0"
title="'.$alt_text.'" alt="'.$alt_text.'">'."\r\n";
}
}
Index: class.ui_mail_debug.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.ui_mail_debug.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
*** class.ui_mail_debug.inc.php 14 Mar 2003 04:01:12 -0000 1.2
--- class.ui_mail_debug.inc.php 8 Sep 2003 08:33:36 -0000 1.2.2.1
***************
*** 49,53 ****
var $debug=0;
//var $debug=1;
!
/*!
--- 49,53 ----
var $debug=0;
//var $debug=1;
! var $tpl='##NOTHING##';
/*!
***************
*** 60,64 ****
$this->widgets = CreateObject("email.html_widgets");
!
if ($this->debug > 0) { echo 'EXIT:
email.ui_mail_debug.CONSTRUCTOR'.'<br>'."\r\n"; }
}
--- 60,64 ----
$this->widgets = CreateObject("email.html_widgets");
! $this->ensure_tpl_object();
if ($this->debug > 0) { echo 'EXIT:
email.ui_mail_debug.CONSTRUCTOR'.'<br>'."\r\n"; }
}
***************
*** 80,83 ****
--- 80,84 ----
//$this->msg_bootstrap->set_do_login(False);
$this->msg_bootstrap->ensure_mail_msg_exists('emai.ui_mail_debug.invoke_bootatrap',
$this->debug);
+
if ($this->debug > 0) { echo 'EXITing:
email.ui_mail_debug.invoke_bootatrap'.'<br>'; }
}
***************
*** 103,106 ****
--- 104,131 ----
if ($this->debug > 0) { echo 'EXITing:
email.ui_mail_debug.end_msg_session_object'.'<br>'; }
}
+
+ /*!
+ @function ensure_tpl_object
+ @abstract sets class var "tpl" depending on whether or not XSLT
is in use or not.
+ @author Angles
+ */
+ function ensure_tpl_object()
+ {
+ // NOW WE KNOW WE HAVE A MSG OBJECT so handle xslt tpl
issue now
+ if ($this->tpl == '##NOTHING##')
+ {
+ if (is_object($GLOBALS['phpgw']->xslttpl) ==
False)
+ {
+ // we point to the global template for
this version of phpgw templatings
+ $this->tpl =&
$GLOBALS['phpgw']->template;
+ //$this->tpl =
CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
+ }
+ else
+ {
+ // we use a PRIVATE template object for
0.9.14 conpat and during xslt porting
+ $this->tpl =
CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
+ }
+ }
+ }
/**************************************************************************\
***************
*** 120,137 ****
if ($this->debug > 0) { echo 'ENTERING:
email.ui_mail_debug.index'.'<br>'; }
! unset($GLOBALS['phpgw_info']['flags']['noheader']);
! unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader'] = True;
! $GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
! $GLOBALS['phpgw']->common->phpgw_header();
! $GLOBALS['phpgw']->template->set_file(array(
'T_debug_main' => 'debug.tpl'
));
!
$GLOBALS['phpgw']->template->set_block('T_debug_main','B_before_echo','V_before_echo');
!
$GLOBALS['phpgw']->template->set_block('T_debug_main','B_after_echo','V_after_echo');
! $GLOBALS['phpgw']->template->set_var('page_desc',
'Email Debug Stuff');
// make a list of available debub calls
--- 145,169 ----
if ($this->debug > 0) { echo 'ENTERING:
email.ui_mail_debug.index'.'<br>'; }
! if (is_object($GLOBALS['phpgw']->xslttpl) == False)
! {
!
unset($GLOBALS['phpgw_info']['flags']['noheader']);
!
unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
! $GLOBALS['phpgw_info']['flags']['noappheader']
= True;
! $GLOBALS['phpgw_info']['flags']['noappfooter']
= True;
! $GLOBALS['phpgw']->common->phpgw_header();
! }
! else
! {
!
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
! }
! $this->tpl->set_file(array(
'T_debug_main' => 'debug.tpl'
));
!
$this->tpl->set_block('T_debug_main','B_before_echo','V_before_echo');
!
$this->tpl->set_block('T_debug_main','B_after_echo','V_after_echo');
! $this->tpl->set_var('page_desc', 'Email Debug Stuff');
// make a list of available debub calls
***************
*** 140,178 ****
//$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('phpinfo page');
! $GLOBALS['phpgw']->template->set_var('func_E1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=get_defined_constants'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('get_defined_constants
DUMP');
! $GLOBALS['phpgw']->template->set_var('func_E2',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_dump'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('dump the entire
globals[] array');
! $GLOBALS['phpgw']->template->set_var('func_E3',
$this->widgets->get_href());
// DUMP functions
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=common.debug_list_core_functions'));
$this->widgets->set_href_clickme('common.debug_list_core_functions');
! $GLOBALS['phpgw']->template->set_var('func_D1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_phpgw_dump'));
$this->widgets->set_href_clickme('dump the entire
globals[phpgw] structure');
! $GLOBALS['phpgw']->template->set_var('func_D2',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_phpgw_info_dump'));
$this->widgets->set_href_clickme('dump the entire
globals[phpgw_info] structure');
! $GLOBALS['phpgw']->template->set_var('func_D3',
$this->widgets->get_href());
//$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_phpgw_session_dump'));
//$this->widgets->set_href_clickme('dump the entire
globals[phpgw_session] structure');
! //$GLOBALS['phpgw']->template->set_var('func_D4',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=ref_session_dump'));
$this->widgets->set_href_clickme('dump the entire
msg->ref_SESSION structure');
! $GLOBALS['phpgw']->template->set_var('func_D4',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=msg_object_dump'));
$this->widgets->set_href_clickme('dump the entire
globals[phpgw]->msg object');
! $GLOBALS['phpgw']->template->set_var('func_D5',
$this->widgets->get_href());
// inline docs
--- 172,214 ----
//$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('phpinfo page');
! $this->tpl->set_var('func_E1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=get_defined_constants'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('get_defined_constants
DUMP');
! $this->tpl->set_var('func_E2',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_dump'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('dump the entire
globals[] array');
! $this->tpl->set_var('func_E3',
$this->widgets->get_href());
// DUMP functions
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=common.debug_list_core_functions'));
$this->widgets->set_href_clickme('common.debug_list_core_functions');
! $this->tpl->set_var('func_D1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_phpgw_dump'));
$this->widgets->set_href_clickme('dump the entire
globals[phpgw] structure');
! $this->tpl->set_var('func_D2',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_phpgw_info_dump'));
$this->widgets->set_href_clickme('dump the entire
globals[phpgw_info] structure');
! $this->tpl->set_var('func_D3',
$this->widgets->get_href());
//$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=globals_phpgw_session_dump'));
//$this->widgets->set_href_clickme('dump the entire
globals[phpgw_session] structure');
! //$this->tpl->set_var('func_D4',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=ref_session_dump'));
$this->widgets->set_href_clickme('dump the entire
msg->ref_SESSION structure');
! $this->tpl->set_var('func_D4',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=msg_object_dump'));
$this->widgets->set_href_clickme('dump the entire
globals[phpgw]->msg object');
! $this->tpl->set_var('func_D5',
$this->widgets->get_href());
!
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=preferences_object_dump'));
! $this->widgets->set_href_clickme('dump the entire
$GLOBALS[phpgw]->preferences object');
! $this->tpl->set_var('func_D6',
$this->widgets->get_href());
// inline docs
***************
*** 180,258 ****
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
phpgwapi');
! $GLOBALS['phpgw']->template->set_var('func_I1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=phpwebhosting'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
phpwebhosing VFS');
! $GLOBALS['phpgw']->template->set_var('func_I2',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email');
! $GLOBALS['phpgw']->template->set_var('func_I3',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_msg_base.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_msg_base.inc.php"');
! $GLOBALS['phpgw']->template->set_var('func_I4',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_msg_display.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_msg_display.inc.php"');
! $GLOBALS['phpgw']->template->set_var('func_I5',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_msg_wrappers.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_msg_wrappers.inc.php"');
! $GLOBALS['phpgw']->template->set_var('func_I6',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_dcom_imap_sock.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_dcom_imap_sock.inc.php"');
! $GLOBALS['phpgw']->template->set_var('func_I7',
$this->widgets->get_href());
// other stuff
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=copyinteresting'));
$this->widgets->set_href_clickme('copy emails in BOB
interesting to Local folder (no workie)');
! $GLOBALS['phpgw']->template->set_var('func_O1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=env_test'));
$this->widgets->set_href_clickme('utility for testing
env code parts');
! $GLOBALS['phpgw']->template->set_var('func_O2',
$this->widgets->get_href());
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=make_table'));
$this->widgets->set_href_clickme('Create the email DB
table');
! $GLOBALS['phpgw']->template->set_var('func_O3',
$this->widgets->get_href());
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=rm_table'));
$this->widgets->set_href_clickme('Delete the email DB
table');
! $GLOBALS['phpgw']->template->set_var('func_O4',
$this->widgets->get_href());
!
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=so_am_table_exists'));
! $this->widgets->set_href_clickme('Check if email DB
table exists');
! $GLOBALS['phpgw']->template->set_var('func_O5',
$this->widgets->get_href());
!
$GLOBALS['phpgw']->template->parse('V_before_echo','B_before_echo');
! $GLOBALS['phpgw']->template->pfp('out','T_debug_main');
! // IF we need to show debug data, now is the time
! $this->show_desired_data();
if ($this->debug > 0) { echo 'EXITing...:
email.ui_mail_debug.index'.'<br>'; }
! // clear the previous tpl var and fill the ending one
!
$GLOBALS['phpgw']->template->set_var('V_before_echo','');
!
$GLOBALS['phpgw']->template->parse('V_after_echo','B_after_echo');
! $GLOBALS['phpgw']->template->pfp('out','T_debug_main');
}
function show_desired_data()
{
! // DAMN, we need a ->msg just to do the ref_GET stuff
! $this->invoke_bootatrap();
! echo 'REQUEST_URI:
'.$GLOBALS['phpgw']->msg->ref_SERVER['REQUEST_URI'].'<br>';
! echo 'QUERY_STRING:
'.$GLOBALS['phpgw']->msg->ref_SERVER['QUERY_STRING'].'<br>';
if ((isset($GLOBALS['phpgw']->msg->ref_GET['dfunc']))
--- 216,325 ----
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
phpgwapi');
! $this->tpl->set_var('func_I1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=phpwebhosting'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
phpwebhosing VFS');
! $this->tpl->set_var('func_I2',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email');
! $this->tpl->set_var('func_I3',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_msg_base.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_msg_base.inc.php"');
! $this->tpl->set_var('func_I4',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_msg_display.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_msg_display.inc.php"');
! $this->tpl->set_var('func_I5',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_msg_wrappers.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_msg_wrappers.inc.php"');
! $this->tpl->set_var('func_I6',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/doc/inlinedocparser.php?app=email&fn=class.mail_dcom_imap_sock.inc.php'));
$this->widgets->set_href_target('new');
$this->widgets->set_href_clickme('inlinedocparser for
email, file "class.mail_dcom_imap_sock.inc.php"');
! $this->tpl->set_var('func_I7',
$this->widgets->get_href());
// other stuff
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=copyinteresting'));
$this->widgets->set_href_clickme('copy emails in BOB
interesting to Local folder (no workie)');
! $this->tpl->set_var('func_O1',
$this->widgets->get_href());
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=env_test'));
$this->widgets->set_href_clickme('utility for testing
env code parts');
! $this->tpl->set_var('func_O2',
$this->widgets->get_href());
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=db_admin_make_table'));
$this->widgets->set_href_clickme('Create the email DB
table');
! $this->tpl->set_var('func_O3',
$this->widgets->get_href());
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=db_admin_rm_table'));
$this->widgets->set_href_clickme('Delete the email DB
table');
! $this->tpl->set_var('func_O4',
$this->widgets->get_href());
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=db_admin_clear_entire_table'));
! $this->widgets->set_href_clickme('Wipe the email DB
table');
! $this->tpl->set_var('func_O5',
$this->widgets->get_href());
!
$this->widgets->set_href_link($GLOBALS['phpgw']->link('/index.php','menuaction=email.ui_mail_debug.index&dfunc=db_am_table_exists'));
! $this->widgets->set_href_clickme('Check if email DB
table exists');
! $this->tpl->set_var('func_O6',
$this->widgets->get_href());
+ if (is_object($GLOBALS['phpgw']->xslttpl) == False)
+ {
+
$this->tpl->parse('V_before_echo','B_before_echo');
+ $this->tpl->pfp('out','T_debug_main');
+ // IF we need to show debug data, now is the
time
+ $this->show_desired_data();
+ // new way to handle debug data, if there is
debug data, this will put it in the template source data vars
+ $this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
+ // clear the previous tpl var and fill the
ending one
+ $this->tpl->set_var('V_before_echo','');
+
$this->tpl->parse('V_after_echo','B_after_echo');
+ $this->tpl->pfp('out','T_debug_main');
+ }
+ else
+ {
+ $this->tpl->set_unknowns('comment');
+ //$this->tpl->set_unknowns('remove');
+ $data = array();
+ //$data['appname'] = lang('E-Mail');
+ //$data['function_msg'] = lang('Folders');
+
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('Debugging Page');
+ // IF we need to show debug data, now is the
time
+ $this->show_desired_data();
+ // new way to handle debug data, if there is
debug data, this will put it in the template source data vars
+ $this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
+ $data['email_page'] =
$this->tpl->parse('out','T_debug_main');
+
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
+
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
+ }
if ($this->debug > 0) { echo 'EXITing...:
email.ui_mail_debug.index'.'<br>'; }
! $this->end_msg_session_object();
}
function show_desired_data()
{
! // DAMN, we need a ->msg just to do the ref_GET stuff
and tpl stuff
! $this->invoke_bootatrap();
!
! // NOW WE HAVE A MSG OBJECT!!! we can use its debug
functions now
! //echo 'REQUEST_URI:
'.$GLOBALS['phpgw']->msg->ref_SERVER['REQUEST_URI'].'<br>';
! //echo 'QUERY_STRING:
'.$GLOBALS['phpgw']->msg->ref_SERVER['QUERY_STRING'].'<br>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
REQUEST_URI: '.$GLOBALS['phpgw']->msg->ref_SERVER['REQUEST_URI'].'<br>');
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
QUERY_STRING: '.$GLOBALS['phpgw']->msg->ref_SERVER['QUERY_STRING'].'<br>');
!
! $desired_function = '';
! $uri_confirm = '';
if ((isset($GLOBALS['phpgw']->msg->ref_GET['dfunc']))
***************
*** 260,268 ****
{
$desired_function =
$GLOBALS['phpgw']->msg->ref_GET['dfunc'];
! echo "You requested:
".$desired_function.'<br>'."\r\n";
}
else
{
! echo "no desired data";
return;
}
--- 327,347 ----
{
$desired_function =
$GLOBALS['phpgw']->msg->ref_GET['dfunc'];
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
You requested: '.$desired_function.'<br>');
!
! // some things require you manually type in
"&confirn=1" to really make it work
! if
((isset($GLOBALS['phpgw']->msg->ref_GET['confirm']))
! && ($GLOBALS['phpgw']->msg->ref_GET['confirm']
!= ''))
! {
! $uri_confirm =
$GLOBALS['phpgw']->msg->ref_GET['confirm'];
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
confirm token is present in URI: '.$uri_confirm.'<br>');
! }
! else
! {
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
no confirm token is in the URI'.'<br>');
! }
}
else
{
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
no desired data'.'<br>');
return;
}
***************
*** 276,289 ****
{
// this function echos out its data
! echo 'get_defined_constants DUMP:<pre>';
! print_r(get_defined_constants());
! echo '</pre>';
}
elseif ($desired_function == 'globals_dump')
{
// this function echos out its data
! echo 'GLOBALS[] array dump:<pre>';
! print_r($GLOBALS) ;
! echo '</pre>';
}
--- 355,367 ----
{
// this function echos out its data
! //echo 'get_defined_constants DUMP:<pre>';
print_r(get_defined_constants()); echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
get_defined_constants DUMP:', get_defined_constants());
!
}
elseif ($desired_function == 'globals_dump')
{
// this function echos out its data
! //echo 'GLOBALS[] array dump:<pre>';
print_r($GLOBALS) ; echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
GLOBALS[] array DUMP:', $GLOBALS);
}
***************
*** 296,331 ****
{
// this function echos out its data
! echo 'GLOBALS[phpgw] dump:<pre>';
! print_r($GLOBALS['phpgw']) ;
! echo '</pre>';
!
}
elseif ($desired_function == 'globals_phpgw_info_dump')
{
// this function echos out its data
! echo 'GLOBALS[phpgw_info] dump:<pre>';
! print_r($GLOBALS['phpgw_info']) ;
! echo '</pre>';
}
elseif ($desired_function ==
'globals_phpgw_session_dump')
{
// this function echos out its data
! echo 'GLOBALS[phpgw_session] dump:<pre>';
! print_r($GLOBALS['phpgw_session']) ;
! echo '</pre>';
}
elseif ($desired_function == 'ref_session_dump')
{
// this function echos out its data
! echo 'msg->ref_SESSION dump:<pre>';
! print_r($GLOBALS['phpgw']->msg->ref_SESSION) ;
! echo '</pre>';
}
elseif ($desired_function == 'msg_object_dump')
{
// this function echos out its data
! echo 'GLOBALS[phpgw]->msg dump:<pre>';
! print_r($GLOBALS['phpgw']->msg) ;
! echo '</pre>';
}
elseif ($desired_function == 'copyinteresting')
--- 374,409 ----
{
// this function echos out its data
! //echo 'GLOBALS[phpgw] dump:<pre>';
print_r($GLOBALS['phpgw']) ; echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
GLOBALS[phpgw] DUMP:', $GLOBALS['phpgw']);
}
elseif ($desired_function == 'globals_phpgw_info_dump')
{
// this function echos out its data
! //echo 'GLOBALS[phpgw_info] dump:<pre>';
print_r($GLOBALS['phpgw_info']) ; echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
GLOBALS[phpgw_info] DUMP:', $GLOBALS['phpgw_info']);
}
elseif ($desired_function ==
'globals_phpgw_session_dump')
{
// this function echos out its data
! //echo 'GLOBALS[phpgw_session] dump:<pre>';
print_r($GLOBALS['phpgw_session']) ; echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
GLOBALS[phpgw_session] DUMP:', $GLOBALS['phpgw_session']);
}
elseif ($desired_function == 'ref_session_dump')
{
// this function echos out its data
! //echo 'msg->ref_SESSION dump:<pre>';
print_r($GLOBALS['phpgw']->msg->ref_SESSION); echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
msg->ref_SESSION DUMP:', $GLOBALS['phpgw']->msg->ref_SESSION);
}
elseif ($desired_function == 'msg_object_dump')
{
// this function echos out its data
! //echo 'GLOBALS[phpgw]->msg dump:<pre>';
print_r($GLOBALS['phpgw']->msg) ; echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
GLOBALS[phpgw]->msg DUMP:', $GLOBALS['phpgw']->msg);
! }
! elseif ($desired_function == 'preferences_object_dump')
! {
! // this function echos out its data
! //echo '$GLOBALS[phpgw]->preferences
dump:<pre>'; print_r($GLOBALS['phpgw']->preferences) ; echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
GLOBALS[phpgw]->preferences DUMP:', $GLOBALS['phpgw']->preferences);
}
elseif ($desired_function == 'copyinteresting')
***************
*** 337,355 ****
$this->env_test();
}
! elseif ($desired_function == 'make_table')
{
! $this->make_table();
}
! elseif ($desired_function == 'rm_table')
{
! $this->rm_table();
}
! elseif ($desired_function == 'so_am_table_exists')
{
! $this->so_am_table_exists();
}
else
{
! echo 'unknown desired debug request:
"'.$desired_function.'"<br>';
}
--- 415,437 ----
$this->env_test();
}
! elseif ($desired_function == 'db_admin_make_table')
! {
! $this->db_admin_make_table($uri_confirm);
! }
! elseif ($desired_function == 'db_admin_rm_table')
{
! $this->db_admin_rm_table($uri_confirm);
}
! elseif ($desired_function ==
'db_admin_clear_entire_table')
{
!
$this->db_admin_clear_entire_table($uri_confirm);
}
! elseif ($desired_function == 'db_am_table_exists')
{
! $this->db_am_table_exists();
}
else
{
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
unknown desired debug request: '.$desired_function.']<br>');
}
***************
*** 357,365 ****
// BUT WILL WE NEED IT AGAIN?
// php does not have a definitive destructor, so we
have to guess where script will end
! echo 'emai.ui_mail_debug. line '.__LINE__.': calling
"end_msg_session_object" so I hope you do not need it anymore<br>';
! $this->end_msg_session_object();
}
!
function copyinteresting()
{
--- 439,451 ----
// BUT WILL WE NEED IT AGAIN?
// php does not have a definitive destructor, so we
have to guess where script will end
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.show_desired_data('.__LINE__.'):
calling "end_msg_session_object" so I hope you do not need it anymore<br>');
!
! // new way to handle debug data, if there is debug
data, this will put it in the template source data vars
! //$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
! // TOO SOON to end msg object
! //$this->end_msg_session_object();
}
! // THIS NEVER WORKED
function copyinteresting()
{
***************
*** 413,416 ****
--- 499,503 ----
}
+ // this evenually made it to boaction and is not used there
function env_test()
{
***************
*** 468,473 ****
}
! function make_table()
{
// this function makes a table for email in the phpgw DB
//$account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
--- 555,567 ----
}
!
! function db_admin_make_table($really_do_it=False)
{
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_make_table('.__LINE__.'):
ENTERING<br>');
+ if ($really_do_it == False)
+ {
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_make_table('.__LINE__.'):
param $really_do_it ['.serialize($really_do_it).'] so we are DO NOTHING, and
we EXIT<br>');
+ return;
+ }
// this function makes a table for email in the phpgw DB
//$account_id =
get_account_id($accountid,$GLOBALS['phpgw']->session->account_id);
***************
*** 481,487 ****
$table_names = $GLOBALS['phpgw']->db->table_names();
! echo '$table_names dump:<pre>';
! print_r($table_names) ;
! echo '</pre>';
/*
'phpgw_anglemail' => array(
--- 575,581 ----
$table_names = $GLOBALS['phpgw']->db->table_names();
! //echo '$table_names dump:<pre>';
print_r($table_names); echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_make_table('.__LINE__.'):
$table_names DUMP:', $table_names);
!
/*
'phpgw_anglemail' => array(
***************
*** 496,541 ****
'uc' => array()
*/
}
! function rm_table()
{
// this function drops the table for email in the phpgw
DB
$sTableName = 'phpgw_anglemail';
$query = "DROP TABLE " . $sTableName;
$GLOBALS['phpgw']->db->query($query,__LINE__,__FILE__);
$table_names = $GLOBALS['phpgw']->db->table_names();
! echo '$table_names dump:<pre>';
! print_r($table_names) ;
! echo '</pre>';
}
! function so_admin_clear_entire_table()
{
// If you issue a DELETE with no WHERE clause, all rows
are deleted.
// THIS WIPES THE TABLE CLEAN OF ALL DATA
$GLOBALS['phpgw']->db->query("DELETE FROM
phpgw_anglemail",__LINE__,__FILE__);
}
! function so_am_table_exists()
{
$look_for_me = 'phpgw_anglemail';
$table_names = $GLOBALS['phpgw']->db->table_names();
$table_names_serialized = serialize($table_names);
if (strstr($table_names_serialized, $look_for_me))
{
! echo 'so_am_table_exists: result: table
['.$look_for_me.'] DOES exist<br>';
! // return True;
}
else
{
! echo 'so_am_table_exists: result: table
['.$look_for_me.'] does NOT exist<br>';
! // return False;
}
! echo '$table_names dump:<pre>';
! print_r($table_names) ;
! echo '</pre>';
}
// these bext functions will go inti the future SO class
function so_set_data($data_key, $content)
--- 590,657 ----
'uc' => array()
*/
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_make_table('.__LINE__.'):
LEAVING<br>');
}
! function db_admin_rm_table($really_do_it=False)
{
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_rm_table('.__LINE__.'):
ENTERING<br>');
+ if (!$really_do_it)
+ {
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_rm_table('.__LINE__.'):
param $really_do_it ['.serialize($really_do_it).'] so we are DO NOTHING, and
we EXIT<br>');
+ return;
+ }
// this function drops the table for email in the phpgw
DB
$sTableName = 'phpgw_anglemail';
$query = "DROP TABLE " . $sTableName;
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_rm_table('.__LINE__.'):
about to CALL
$GLOBALS[phpgw]->db->query('.$query.','.__LINE__.','.__FILE__.');<br>');
$GLOBALS['phpgw']->db->query($query,__LINE__,__FILE__);
$table_names = $GLOBALS['phpgw']->db->table_names();
! //echo '$table_names dump:<pre>';
print_r($table_names); echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_rm_table('.__LINE__.'):
$table_names DUMP:', $table_names);
}
! function db_admin_clear_entire_table($really_do_it=False)
{
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_clear_entire_table('.__LINE__.'):
ENTERING<br>');
+ if (!$really_do_it)
+ {
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_clear_entire_table('.__LINE__.'):
param $really_do_it ['.serialize($really_do_it).'] so we are DO NOTHING, and
we EXIT<br>');
+ return;
+ }
// If you issue a DELETE with no WHERE clause, all rows
are deleted.
// THIS WIPES THE TABLE CLEAN OF ALL DATA
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_clear_entire_table('.__LINE__.'):
param $really_do_it ['.serialize($really_do_it).'] so we CALL
$GLOBALS[phpgw]->db->query("DELETE FROM
phpgw_anglemail",'.__LINE__.','.__FILE__.');<br>');
$GLOBALS['phpgw']->db->query("DELETE FROM
phpgw_anglemail",__LINE__,__FILE__);
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_admin_clear_entire_table('.__LINE__.'):
LEAVING<br>');
}
! function db_am_table_exists()
{
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_am_table_exists('.__LINE__.'):
ENTERING<br>');
$look_for_me = 'phpgw_anglemail';
+ $found_table = False;
+
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_am_table_exists('.__LINE__.'):
about to call $GLOBALS[phpgw]->db->table_names()<br>');
$table_names = $GLOBALS['phpgw']->db->table_names();
$table_names_serialized = serialize($table_names);
if (strstr($table_names_serialized, $look_for_me))
{
!
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_am_table_exists('.__LINE__.'):
result: table ['.$look_for_me.'] DOES exist<br>');
! $found_table = True;
}
else
{
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_am_table_exists('.__LINE__.'):
result: table ['.$look_for_me.'] does NOT exist<br>');
! $found_table = False;
}
! //echo '$table_names dump:<pre>';
print_r($table_names); echo '</pre>';
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_am_table_exists('.__LINE__.'):
$table_names DUMP:', $table_names);
!
!
$GLOBALS['phpgw']->msg->dbug->out('ui_mail_debug.db_am_table_exists('.__LINE__.'):
LEAVING: returning ['.serialize($found_table).']<br>');
! return $found_table;
}
+ /*
// these bext functions will go inti the future SO class
function so_set_data($data_key, $content)
***************
*** 601,604 ****
--- 717,721 ----
. " WHERE account_id='" . $account_id .
"'",__LINE__,__FILE__);
}
+ */
}
Index: class.uiattach_file.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uiattach_file.inc.php,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -C2 -r1.2 -r1.2.2.1
Index: class.uicompose.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uicompose.inc.php,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -C2 -r1.4.2.1 -r1.4.2.2
*** class.uicompose.inc.php 20 Apr 2003 21:07:56 -0000 1.4.2.1
--- class.uicompose.inc.php 8 Sep 2003 08:33:36 -0000 1.4.2.2
***************
*** 53,57 ****
$this->bo->compose($reuse_feed_args);
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 53,57 ----
$this->bo->compose($reuse_feed_args);
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 65,70 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail').' - '.lang('Compose');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we are the BO and the UI, we take care of
outputting the HTML to the client browser
--- 65,69 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we are the BO and the UI, we take care of
outputting the HTML to the client browser
***************
*** 77,81 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 76,79 ----
***************
*** 165,169 ****
}
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we are the BO and the UI, we take care of
outputting the HTML to the client browser
--- 163,169 ----
}
! // new way to handle debug data, if there is debug
data, this will put it in the template source data vars
! $this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we are the BO and the UI, we take care of
outputting the HTML to the client browser
***************
*** 172,186 ****
else
{
$this->tpl->set_unknowns('comment');
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('compose message');
$data['email_page'] =
$this->tpl->parse('out','T_compose_out');
- // new way to handle debug data, if this array
has anything, put it in the template source data vars
- if ($GLOBALS['phpgw']->msg->debugdata)
- {
- $data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->get_debugdata_stack();
- }
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
--- 172,182 ----
else
{
+
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('compose message');
$this->tpl->set_unknowns('comment');
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('compose
message');
$data['email_page'] =
$this->tpl->parse('out','T_compose_out');
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
Index: class.uifilters.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uifilters.inc.php,v
retrieving revision 1.12.2.2
retrieving revision 1.12.2.3
diff -C2 -r1.12.2.2 -r1.12.2.3
*** class.uifilters.inc.php 21 Apr 2003 15:28:08 -0000 1.12.2.2
--- class.uifilters.inc.php 8 Sep 2003 08:33:36 -0000 1.12.2.3
***************
*** 65,69 ****
function filters_edit()
{
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 65,69 ----
function filters_edit()
{
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 77,82 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('EMail Filters');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
--- 77,81 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
***************
*** 88,92 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 87,90 ----
***************
*** 184,191 ****
'menuaction=email.bofilters.do_filter'
.'&filter_num='.$filter_num);
! $apply_this_filter_href = '<a
href="'.$apply_this_filter_url.'"><b>*APPLY*</b> This Filter</a>';
$test_this_filter_url =
$apply_this_filter_url.'&filter_test=1';
! $test_this_filter_href = '<a
href="'.$test_this_filter_url.'">Test Run This Filter</a>';
$this->tpl->set_var('apply_this_filter_href',$apply_this_filter_href);
--- 182,189 ----
'menuaction=email.bofilters.do_filter'
.'&filter_num='.$filter_num);
! $apply_this_filter_href = '<a
href="'.$apply_this_filter_url.'">'.lang('<b>*apply*</b> this filter').'</a>';
$test_this_filter_url =
$apply_this_filter_url.'&filter_test=1';
! $test_this_filter_href = '<a
href="'.$test_this_filter_url.'">'.lang('Test Run This Filter').'</a>';
$this->tpl->set_var('apply_this_filter_href',$apply_this_filter_href);
***************
*** 398,402 ****
$this->tpl->set_var('match_textbox_txt',$match_textbox_txt);
$this->tpl->set_var('V_match_left_td',$V_match_left_td);
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->tpl->parse('V_matches_row','B_matches_row',True);
--- 396,400 ----
$this->tpl->set_var('match_textbox_txt',$match_textbox_txt);
$this->tpl->set_var('V_match_left_td',$V_match_left_td);
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->parse('V_matches_row','B_matches_row',True);
***************
*** 407,411 ****
}
}
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless == False)
{
$this->tpl->set_var('V_matches_row',$V_matches_row);
--- 405,409 ----
}
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt == False)
{
$this->tpl->set_var('V_matches_row',$V_matches_row);
***************
*** 545,550 ****
// new way to handle debug data, if there is debug
data, this will put it in the template source data vars
! $this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
//$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
--- 543,548 ----
// new way to handle debug data, if there is debug
data, this will put it in the template source data vars
! $this->tpl->set_var('debugdata',
trim($GLOBALS['phpgw']->msg->dbug->notice_pagedone()));
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
//$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
***************
*** 559,572 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('Edit Filters');
$data['email_page'] =
$this->tpl->parse('out','T_filters_out');
- // new way to handle debug data, if this array
has anything, put it in the template source data vars
- //if ($GLOBALS['phpgw']->msg->dbug->debugdata)
- //{
- // $data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->get_debugdata_stack();
- //}
- //$data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->notice_pagedone();
-
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
--- 557,564 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('Edit Filters');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('Edit Filters');
$data['email_page'] =
$this->tpl->parse('out','T_filters_out');
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
***************
*** 648,652 ****
function filters_list()
{
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 640,644 ----
function filters_list()
{
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 660,665 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail INBOX Filters List');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
--- 652,656 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
***************
*** 671,675 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 662,665 ----
***************
*** 741,755 ****
$tr_color_class = (($i + 1)/2 ==
floor(($i + 1)/2)) ? 'row_off' : 'row_on';
! $filters_list[$i]['move_up_url'] =
$GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.move_up'
!
.'&filter_num='.$i);
! $filters_list[$i]['move_up_href'] = '<a
href="'.$filters_list[$i]['move_up_url'].'">'.lang('Move Up').'</a>';
! $filters_list[$i]['move_down_url'] =
$GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.move_down'
!
.'&filter_num='.$i);
! $filters_list[$i]['move_down_href'] =
'<a href="'.$filters_list[$i]['move_down_url'].'">'.lang('Move Down').'</a>';
$filters_list[$i]['edit_url'] =
$GLOBALS['phpgw']->link(
--- 731,770 ----
$tr_color_class = (($i + 1)/2 ==
floor(($i + 1)/2)) ? 'row_off' : 'row_on';
!
// Don't move up the first filter (Sam Przyswa)
! if ($i != 0)
! {
!
$filters_list[$i]['move_up_url'] = $GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.move_up'
!
.'&filter_num='.$i);
!
$filters_list[$i]['move_up_href'] = '<a
href="'.$filters_list[$i]['move_up_url'].'">'.lang('Move Up').'</a>';
! }
! else
! {
!
$filters_list[$i]['move_up_url'] = $GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.move_up'
!
.'&filter_num='.$i);
!
$filters_list[$i]['move_up_href'] = '<a
href="'.$filters_list[$i]['move_up_url'].'"></a>';
! }
! // Don't move down the last filter (Sam
Przyswa)
! if ($i != $loops-1)
! {
!
$filters_list[$i]['move_down_url'] = $GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.move_down'
!
.'&filter_num='.$i);
!
$filters_list[$i]['move_down_href'] = '<a
href="'.$filters_list[$i]['move_down_url'].'">'.lang('Move Down').'</a>';
! }
! else
! {
!
$filters_list[$i]['move_down_url'] = $GLOBALS['phpgw']->link(
!
'/index.php',
!
'menuaction=email.bofilters.move_down'
!
.'&filter_num='.$i);
!
$filters_list[$i]['move_down_href'] = '<a
href="'.$filters_list[$i]['move_down_url'].'"></a>';
! }
! // end of changes (Sam Przyswa)
$filters_list[$i]['edit_url'] =
$GLOBALS['phpgw']->link(
***************
*** 772,776 ****
$this->tpl->set_var('edit_href',$filters_list[$i]['edit_href']);
$this->tpl->set_var('delete_href',$filters_list[$i]['delete_href']);
! if
($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->tpl->parse('V_filter_list_row','B_filter_list_row', True);
--- 787,791 ----
$this->tpl->set_var('edit_href',$filters_list[$i]['edit_href']);
$this->tpl->set_var('delete_href',$filters_list[$i]['delete_href']);
! if
($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->parse('V_filter_list_row','B_filter_list_row', True);
***************
*** 782,786 ****
}
}
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless == False)
{
$this->tpl->set_var('V_filter_list_row',$V_filter_list_row);
--- 797,801 ----
}
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt == False)
{
$this->tpl->set_var('V_filter_list_row',$V_filter_list_row);
***************
*** 807,814 ****
$test_all_filters_url =
$run_all_filters_url.'&filter_test=1';
! $test_all_filters_href = '<a
href="'.$test_all_filters_url.'">Test All Filters</a>';
$this->tpl->set_var('test_all_filters_href',$test_all_filters_href);
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// COMMENT NEXT LINE OUT for producvtion use,
(unknowns should be "remove"d in production use)
--- 822,831 ----
$test_all_filters_url =
$run_all_filters_url.'&filter_test=1';
! $test_all_filters_href = '<a
href="'.$test_all_filters_url.'">'.lang('Test All Filters').'</a>';
$this->tpl->set_var('test_all_filters_href',$test_all_filters_href);
! // new way to handle debug data, if there is debug
data, this will put it in the template source data vars
! $this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// COMMENT NEXT LINE OUT for producvtion use,
(unknowns should be "remove"d in production use)
***************
*** 822,827 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('Filters List');
$data['email_page'] =
$this->tpl->parse('out','T_filters_list');
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
--- 839,845 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('Filters List');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('Filters List');
$data['email_page'] =
$this->tpl->parse('out','T_filters_list');
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
Index: class.uifolder.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uifolder.inc.php,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -C2 -r1.4.2.1 -r1.4.2.2
*** class.uifolder.inc.php 20 Apr 2003 21:07:56 -0000 1.4.2.1
--- class.uifolder.inc.php 8 Sep 2003 08:33:36 -0000 1.4.2.2
***************
*** 34,38 ****
$this->bo->folder();
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 34,38 ----
$this->bo->folder();
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 46,51 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail').' - '.lang('Folder');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
--- 46,50 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
***************
*** 59,63 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 58,61 ----
***************
*** 131,137 ****
// new way to handle debug data, if there is debug
data, this will put it in the template source data vars
$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
- //$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
// COMMENT NEXT LINE OUT for producvtion use,
(unknowns should be "remove"d in production use)
$this->tpl->set_unknowns('comment');
--- 129,134 ----
// new way to handle debug data, if there is debug
data, this will put it in the template source data vars
$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// COMMENT NEXT LINE OUT for producvtion use,
(unknowns should be "remove"d in production use)
$this->tpl->set_unknowns('comment');
***************
*** 147,156 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('Folders');
$data['email_page'] =
$this->tpl->parse('out','T_folder_out');
- // new way to handle debug data, if there is
debug data, this will put it in the template source data vars
- //$data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->notice_pagedone();
-
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
--- 144,151 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('Folders');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('Folders');
$data['email_page'] =
$this->tpl->parse('out','T_folder_out');
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
Index: class.uiindex.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uiindex.inc.php,v
retrieving revision 1.21.2.1
retrieving revision 1.21.2.2
diff -C2 -r1.21.2.1 -r1.21.2.2
*** class.uiindex.inc.php 20 Apr 2003 21:07:56 -0000 1.21.2.1
--- class.uiindex.inc.php 8 Sep 2003 08:33:36 -0000 1.21.2.2
***************
*** 45,49 ****
$this->bo->index_data();
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->index_old_tpl();
--- 45,49 ----
$this->bo->index_data();
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->index_old_tpl();
***************
*** 139,142 ****
--- 139,143 ----
$this->widgets->set_toolbar_msg($GLOBALS['phpgw']->msg->report_moved_or_deleted());
$this->tpl->set_var('widget_toolbar',$this->widgets->get_toolbar());
+
$this->tpl->set_var('geek_bar',$this->widgets->get_geek_bar());
// stats row, generated in a single function call
$this->tpl->set_var('stats_data_display',
$this->bo->get_index_stats_block((string)$GLOBALS['phpgw']->msg->get_pref_value('layout')));
***************
*** 412,418 ****
function index_xslt_tpl()
{
- $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail').' - '.lang('list messages');
-
- $GLOBALS['phpgw_info']['flags']['xslt_app'] = True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
--- 413,416 ----
***************
*** 427,434 ****
--- 425,436 ----
$this->widgets->set_toolbar_msg($GLOBALS['phpgw']->msg->report_moved_or_deleted());
$widget_toolbar = $this->widgets->get_toolbar();
+ $geek_bar = $this->widgets->get_geek_bar();
$data = array(
+ //'appname' => lang('E-Mail'),
+ //'function_msg' => lang('list messages'),
'index_js' => $this->index_xslt_javascript(),
'widget_toolbar' => $widget_toolbar,
+ 'geek_bar' => $geek_bar,
'stats_data_display' =>
$this->bo->get_index_stats_block((string)$GLOBALS['phpgw']->msg->get_pref_value('layout')),
'arrows_backcolor_class' =>
$this->bo->xi['arrows_backcolor_class'],
***************
*** 465,474 ****
);
// new way to handle debug data, if this array has
anything, put it in the template source data vars
- //if ($GLOBALS['phpgw']->msg->dbug->debugdata)
- //{
- // $data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->get_debugdata_stack();
- //}
$data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->notice_pagedone();
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('index' => $data));
--- 467,474 ----
);
// new way to handle debug data, if this array has
anything, put it in the template source data vars
$data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->notice_pagedone();
+ $GLOBALS['phpgw_info']['flags']['email']['app_header']
= lang('E-Mail') . ': ' . lang('list messages');
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail') . ': ' . lang('list messages');
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('index' => $data));
Index: class.uijsaddressbook.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uijsaddressbook.inc.php,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -C2 -r1.3 -r1.3.2.1
Index: class.uimessage.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uimessage.inc.php,v
retrieving revision 1.9.2.2
retrieving revision 1.9.2.3
diff -C2 -r1.9.2.2 -r1.9.2.3
*** class.uimessage.inc.php 21 Apr 2003 15:28:09 -0000 1.9.2.2
--- class.uimessage.inc.php 8 Sep 2003 08:33:36 -0000 1.9.2.3
***************
*** 43,47 ****
$this->bo->message_data();
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 43,47 ----
$this->bo->message_data();
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 55,60 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// NOW we can out the header, because
"index_data()" filled this global
--- 55,59 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// NOW we can out the header, because
"index_data()" filled this global
***************
*** 72,76 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 71,74 ----
***************
*** 92,95 ****
--- 90,95 ----
$this->widgets = CreateObject('email.html_widgets');
$this->tpl->set_var('widget_toolbar',$this->widgets->get_toolbar());
+ // geek_bar
+
$this->tpl->set_var('geek_bar',$this->widgets->get_geek_bar());
if (!empty($this->xi['msgtype']))
***************
*** 261,264 ****
--- 261,271 ----
// ----- SHOW MESSAGE -------
//@set_time_limit(120);
+
+ //if ($GLOBALS['phpgw']->msg->phpgw_before_xslt ==
False)
+ //{
+ // fix a b0rk in template showing last item 2
times under XSLT
+ $final_V_display_part = '';
+ //}
+
$count_part_nice = count($this->bo->part_nice);
for ($i = 0; $i < $count_part_nice; $i++)
***************
*** 269,273 ****
$this->tpl->set_var('display_str',$this->bo->part_nice[$i]['display_str']);
$this->tpl->set_var('message_body',$this->bo->part_nice[$i]['message_body']);
!
$this->tpl->parse('V_display_part','B_display_part', True);
}
elseif
($this->bo->part_nice[$i]['d_instructions'] == 'echo_out')
--- 276,289 ----
$this->tpl->set_var('display_str',$this->bo->part_nice[$i]['display_str']);
$this->tpl->set_var('message_body',$this->bo->part_nice[$i]['message_body']);
!
//$this->tpl->parse('V_display_part','B_display_part', True);
! //if
($GLOBALS['phpgw']->msg->phpgw_before_xslt)
! //{
! //
$this->tpl->parse('V_display_part','B_display_part', True);
! //}
! //else
! //{
! // fix a b0rk in template
showing last item 2 times under XSLT
! $final_V_display_part .=
$this->tpl->parse('V_display_part','B_display_part');
! //}
}
elseif
($this->bo->part_nice[$i]['d_instructions'] == 'echo_out')
***************
*** 306,309 ****
--- 322,333 ----
//@set_time_limit(0);
+ //if ($GLOBALS['phpgw']->msg->phpgw_before_xslt ==
False)
+ //{
+ // // fix a b0rk in template showing last item 2
times under XSLT
+
$this->tpl->set_var('V_display_part',$final_V_display_part);
+ $final_V_display_part = '';
+ unset($final_V_display_part);
+ //}
+
// new way to handle debug data, if there is debug
data, this will put it in the template source data vars
$this->tpl->set_var('debugdata',
$GLOBALS['phpgw']->msg->dbug->notice_pagedone());
***************
*** 315,319 ****
// echo dump already outputted the template
}
! elseif ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->tpl->pfp('out','T_message_main');
--- 339,343 ----
// echo dump already outputted the template
}
! elseif ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->pfp('out','T_message_main');
***************
*** 325,330 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('show message');
$data['email_page'] =
$this->tpl->parse('out','T_message_main');
// new way to handle debug data, if this array
has anything, put it in the template source data vars
--- 349,355 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('show message');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('show message');
$data['email_page'] =
$this->tpl->parse('out','T_message_main');
// new way to handle debug data, if this array
has anything, put it in the template source data vars
***************
*** 345,349 ****
}
// tell apache to release emeory back to the system on
script end
! //apache_child_terminate();
// close down ALL mailserver streams
--- 370,383 ----
}
// tell apache to release emeory back to the system on
script end
! //if ((isset($_SERVER['SERVER_SOFTWARE']))
! //&& (stristr($_SERVER['SERVER_SOFTWARE'], 'apache'))
! if ((getenv('SERVER_SOFTWARE'))
! && (stristr(getenv('SERVER_SOFTWARE'), 'apache'))
! && (function_exists('apache_child_terminate'))
! && (ini_get('child_terminate')))
! {
! //echo 'doing apache_child_terminate';
! apache_child_terminate();
! }
// close down ALL mailserver streams
***************
*** 365,369 ****
$this->bo->message_data();
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 399,403 ----
$this->bo->message_data();
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 373,384 ****
else
{
// we use a PRIVATE template object for 0.9.14
conpat and during xslt porting
$this->tpl =
CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
}
! $GLOBALS['phpgw_info']['flags']['noheader'] = True;
! $GLOBALS['phpgw_info']['flags']['nonavbar'] = True;
! $GLOBALS['phpgw_info']['flags']['noappheader'] = True;
! $GLOBALS['phpgw_info']['flags']['noappfooter'] = True;
$this->tpl->set_file(array(
--- 407,438 ----
else
{
+ $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
// we use a PRIVATE template object for 0.9.14
conpat and during xslt porting
$this->tpl =
CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
! {
! $GLOBALS['phpgw_info']['flags']['noheader'] =
True;
! $GLOBALS['phpgw_info']['flags']['nonavbar'] =
True;
! $GLOBALS['phpgw_info']['flags']['noappheader']
= True;
! $GLOBALS['phpgw_info']['flags']['noappfooter']
= True;
! }
! else
! {
! $GLOBALS['phpgw_info']['flags']['printview'] =
True;
! $GLOBALS['phpgw_info']['flags']['headonly'] =
True;
!
! //$GLOBALS['phpgw_info']['navbar'] = '';
!
!
//$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
!
! // FIXME how to get rid of other template stuff
here for XSLT?
! $GLOBALS['phpgw_info']['flags']['noheader'] =
True;
! $GLOBALS['phpgw_info']['flags']['nonavbar'] =
True;
! $GLOBALS['phpgw_info']['flags']['noappheader']
= True;
! $GLOBALS['phpgw_info']['flags']['noappfooter']
= True;
! }
!
$this->tpl->set_file(array(
***************
*** 497,509 ****
// echo dump already outputted the template
}
! else
{
$this->tpl->pfp('out','T_message_printable');
//$GLOBALS['phpgw']->common->phpgw_footer();
}
-
- // ---- Finish The HTML Tags ----
- echo "</body> \r\n";
- echo "</html> \r\n";
if (is_object($GLOBALS['phpgw']->msg))
--- 551,577 ----
// echo dump already outputted the template
}
! elseif ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->pfp('out','T_message_printable');
//$GLOBALS['phpgw']->common->phpgw_footer();
+ // ---- Finish The HTML Tags ----
+ echo "</body> \r\n";
+ echo "</html> \r\n";
+ }
+ else
+ {
+ $this->tpl->set_unknowns('comment');
+ $this->tpl->pfp('out','T_message_printable');
+ //// ---- Finish The HTML Tags ----
+ echo "</body> \r\n";
+ echo "</html> \r\n";
+ ////$this->tpl->set_unknowns('remove');
+
+ $data = array();
+ //$data['appname'] = lang('E-Mail');
+ //$data['function_msg'] = lang('show message');
+ //$data['email_page'] =
$this->tpl->parse('out','T_message_printable');
+
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
if (is_object($GLOBALS['phpgw']->msg))
Index: class.uipreferences.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/class.uipreferences.inc.php,v
retrieving revision 1.16.2.2
retrieving revision 1.16.2.3
diff -C2 -r1.16.2.2 -r1.16.2.3
*** class.uipreferences.inc.php 20 Apr 2003 21:07:56 -0000 1.16.2.2
--- class.uipreferences.inc.php 8 Sep 2003 08:33:36 -0000 1.16.2.3
***************
*** 67,71 ****
function create_prefs_block($feed_prefs='')
{
- //echo "feed_prefs=<pre>"; print_r($feed_prefs); echo "</pre>\n";
if ($this->debug > 0 ) { echo
'email.uipreferences.create_prefs_block: ENTERING, $this->bo->account_group:
['.$this->bo->account_group.']; $this->bo->acctnum:
['.$this->bo->acctnum.']<br>'; }
$return_block = '';
--- 67,70 ----
***************
*** 336,340 ****
if ($this->debug > 1) { echo
'email.uipreferences.preferences: just set $this->bo->account_group to
['.$this->bo->account_group.']<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 335,339 ----
if ($this->debug > 1) { echo
'email.uipreferences.preferences: just set $this->bo->account_group to
['.$this->bo->account_group.']<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 348,353 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail preferences');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
--- 347,351 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
***************
*** 359,363 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 357,360 ----
***************
*** 476,480 ****
// output the template
if ($this->debug > 0) { echo
'email.uipreferences.preferences: LEAVING, about to output the template<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->tpl->set_unknowns('comment');
--- 473,477 ----
// output the template
if ($this->debug > 0) { echo
'email.uipreferences.preferences: LEAVING, about to output the template<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->set_unknowns('comment');
***************
*** 487,499 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('E-Mail
preferences');
$data['email_page'] =
$this->tpl->parse('out','T_prefs_ui_out');
- // new way to handle debug data, if this array
has anything, put it in the template source data vars
- //if ($GLOBALS['phpgw']->msg->dbug->debugdata)
- //{
- // $data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->get_debugdata_stack();
- //}
-
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
--- 484,491 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('E-Mail
preferences');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('E-Mail preferences');
$data['email_page'] =
$this->tpl->parse('out','T_prefs_ui_out');
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
***************
*** 520,524 ****
if ($this->debug > 1) { echo
'email.uipreferences.ex_accounts_edit: we just set $this->bo->acctnum to
['.serialize($this->bo->acctnum).']<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 512,516 ----
if ($this->debug > 1) { echo
'email.uipreferences.ex_accounts_edit: we just set $this->bo->acctnum to
['.serialize($this->bo->acctnum).']<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 531,537 ****
$this->tpl =
CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
}
!
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail Extra Accounts');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
--- 523,528 ----
$this->tpl =
CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
}
!
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
***************
*** 543,547 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 534,537 ----
***************
*** 673,677 ****
// output the template
if ($this->debug > 0) { echo
'email.uipreferences.ex_accounts_edit: LEAVING, about to output the
template<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->tpl->set_unknowns('comment');
--- 663,667 ----
// output the template
if ($this->debug > 0) { echo
'email.uipreferences.ex_accounts_edit: LEAVING, about to output the
template<br>'; }
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->set_unknowns('comment');
***************
*** 684,696 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('E-Mail Extra
Accounts');
$data['email_page'] =
$this->tpl->parse('out','T_prefs_ui_out');
- // new way to handle debug data, if this array
has anything, put it in the template source data vars
- //if ($GLOBALS['phpgw']->msg->dbug->debugdata)
- //{
- // $data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->get_debugdata_stack();
- //}
-
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
--- 674,681 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('E-Mail Extra
Accounts');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('E-Mail Extra Accounts');
$data['email_page'] =
$this->tpl->parse('out','T_prefs_ui_out');
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
***************
*** 700,704 ****
function ex_accounts_list()
{
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
// we point to the global template for this
version of phpgw templatings
--- 685,689 ----
function ex_accounts_list()
{
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
// we point to the global template for this
version of phpgw templatings
***************
*** 712,717 ****
}
! $GLOBALS['phpgw_info']['flags']['app_header'] =
lang('E-Mail Extra Accounts List');
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
--- 697,701 ----
}
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
unset($GLOBALS['phpgw_info']['flags']['noheader']);
***************
*** 723,727 ****
else
{
- $GLOBALS['phpgw_info']['flags']['xslt_app'] =
True;
$GLOBALS['phpgw']->xslttpl->add_file(array('app_data'));
}
--- 707,710 ----
***************
*** 814,818 ****
// output the template
! if ($GLOBALS['phpgw']->msg->phpgw_0914_orless)
{
$this->tpl->set_unknowns('comment');
--- 797,801 ----
// output the template
! if ($GLOBALS['phpgw']->msg->phpgw_before_xslt)
{
$this->tpl->set_unknowns('comment');
***************
*** 825,837 ****
//$this->tpl->set_unknowns('remove');
$data = array();
! $data['appname'] = lang('E-Mail');
! $data['function_msg'] = lang('E-Mail Extra
Accounts List');
$data['email_page'] =
$this->tpl->parse('out','T_prefs_ex_accounts');
- // new way to handle debug data, if this array
has anything, put it in the template source data vars
- //if ($GLOBALS['phpgw']->msg->dbug->debugdata)
- //{
- // $data['debugdata'] =
$GLOBALS['phpgw']->msg->dbug->get_debugdata_stack();
- //}
-
//$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('uimessage' => $data));
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
--- 808,815 ----
//$this->tpl->set_unknowns('remove');
$data = array();
! //$data['appname'] = lang('E-Mail');
! //$data['function_msg'] = lang('E-Mail Extra
Accounts List');
!
$GLOBALS['phpgw_info']['flags']['email']['app_header'] = lang('E-Mail') . ': '
. lang('E-Mail Extra Accounts List');
$data['email_page'] =
$this->tpl->parse('out','T_prefs_ex_accounts');
$GLOBALS['phpgw']->xslttpl->set_var('phpgw',array('generic_out' => $data));
}
Index: functions.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/functions.inc.php,v
retrieving revision 1.116
retrieving revision 1.116.2.1
diff -C2 -r1.116 -r1.116.2.1
Index: hook_admin.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_admin.inc.php,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -C2 -r1.6 -r1.6.2.1
Index: hook_home.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_home.inc.php,v
retrieving revision 1.56
retrieving revision 1.56.2.1
diff -C2 -r1.56 -r1.56.2.1
*** hook_home.inc.php 14 Mar 2003 04:01:54 -0000 1.56
--- hook_home.inc.php 8 Sep 2003 08:33:36 -0000 1.56.2.1
***************
*** 166,209 ****
.'</td>'."\r\n"
.$form_folder_switch_closetag;
! }
! if ((isset($prev_currentapp))
! && ($prev_currentapp)
! && ($GLOBALS['phpgw_info']['flags']['currentapp'] !=
$prev_currentapp))
{
! $GLOBALS['phpgw_info']['flags']['currentapp'] =
$prev_currentapp;
}
! $portalbox = CreateObject('phpgwapi.listbox',
! Array(
! 'title' => $title,
! 'primary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'secondary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'tertiary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'width' => '100%',
! 'outerborderwidth' => '0',
! 'header_background_image' =>
$GLOBALS['phpgw']->common->image('phpgwapi/templates/phpgw_website','bg_filler')
! )
! );
! $app_id = $GLOBALS['phpgw']->applications->name2id('email');
! $GLOBALS['portal_order'][] = $app_id;
! $var = Array(
! 'up' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'down' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'close' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'question' => Array('url' => '/set_box.php', 'app' =>
$app_id),
! 'edit' => Array('url' => '/set_box.php', 'app' =>
$app_id)
! );
!
! while(list($key,$value) = each($var))
! {
! $portalbox->set_controls($key,$value);
! }
!
! $portalbox->data = $data;
!
! // output the portalbox and below it (1) the folders listbox
(if applicable) and (2) Compose New mail link
! echo "\n".'<!-- BEGIN Mailbox info
-->'."\n".$portalbox->draw($extra_data).'<!-- END Mailbox info -->'."\n";
}
// we create the msg object initially so we can have access to the
multi-account preferences,
// so even if we did not output any data here, we still must call this
"end_request" function, it is kind of like a destructor
--- 166,305 ----
.'</td>'."\r\n"
.$form_folder_switch_closetag;
! }
! // how to display this data
! if (is_object($GLOBALS['phpgw']->xslttpl))
! {
! $phpgw_before_xslt = False;
! }
! else
{
! $phpgw_before_xslt = True;
}
! // now display according to the version of the template system
in use
! if ($phpgw_before_xslt == True)
! {
! // the is the OLD, pre-xslt way to display pref items
! // reset the currentapp to whatever it was
! if ((isset($prev_currentapp))
! && ($prev_currentapp)
! && ($GLOBALS['phpgw_info']['flags']['currentapp'] !=
$prev_currentapp))
! {
! $GLOBALS['phpgw_info']['flags']['currentapp'] =
$prev_currentapp;
! }
! $portalbox = CreateObject('phpgwapi.listbox',
! Array(
! 'title' => $title,
! 'primary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'secondary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'tertiary' =>
$GLOBALS['phpgw_info']['theme']['navbar_bg'],
! 'width' => '100%',
! 'outerborderwidth' => '0',
! 'header_background_image' =>
$GLOBALS['phpgw']->common->image('phpgwapi/templates/phpgw_website','bg_filler')
! )
! );
! $app_id =
$GLOBALS['phpgw']->applications->name2id('email');
! $GLOBALS['portal_order'][] = $app_id;
! $var = Array(
! 'up' => Array('url' => '/set_box.php',
'app' => $app_id),
! 'down' => Array('url' => '/set_box.php',
'app' => $app_id),
! 'close' => Array('url' => '/set_box.php',
'app' => $app_id),
! 'question' => Array('url' => '/set_box.php',
'app' => $app_id),
! 'edit' => Array('url' => '/set_box.php',
'app' => $app_id)
! );
!
! while(list($key,$value) = each($var))
! {
! $portalbox->set_controls($key,$value);
! }
!
! $portalbox->data = $data;
!
! // output the portalbox and below it (1) the folders
listbox (if applicable) and (2) Compose New mail link
! echo "\n".'<!-- BEGIN Mailbox info
-->'."\n".$portalbox->draw($extra_data).'<!-- END Mailbox info -->'."\n";
! }
! else
! {
! // this is the xslt template era
! // adjust the title for no html tags
! $title = lang('EMail').' '.$inbox_data['alert_string'];
!
! $GLOBALS['phpgw']->translation->add_app('email');
! //$GLOBALS['phpgw']->translation->add_app('E-Mail');
!
! $app_id =
$GLOBALS['phpgw']->applications->name2id('email');
! $GLOBALS['portal_order'][] = $app_id;
!
! $GLOBALS['phpgw']->portalbox->set_params(
! array(
! 'app_id' => $app_id,
! 'title' => $title
! )
! );
! // assemble the data BRUTE FORCE
! // FIXME apparently needs an xsl file called
"portal.xsl"
! /*
! $main_data = '<table border="0" width="100%">'."\r\n";
! for($i=0; $i<count($data); $i++)
! {
! $main_data .=
! '<tr>'
! .'<td width="2%" align="right">
</td>'
! .'<td width="98%" align="left">'
! .'<a
href="'.$data[$i]['link'].'">'.$data[$i]['text'].'</a>'
! .'</td>'
! .'</tr>'."\r\n";
! }
! $main_data .=
! '<td width="2%"> </td>'
! .$form_folder_switch_opentag
! .'<td width="98%" align="left">'."\r\n"
! .' <strong>'.lang('E-Mail
Folders').':</strong> '
! .$folder_switch_combobox
! .' '.$compose_href
! .'</td>'."\r\n"
! .$form_folder_switch_closetag;
!
! $main_data .= '</table>'."\r\n";
! */
! $main_data =
! '<table border="0" width="100%">'
! .'<tr>'."\r\n"
! .'<td width="100%" align="left">'."\r\n"
! .'<ul>'."\r\n";
! for($i=0; $i<count($data); $i++)
! {
! $main_data .= '<li>'.'<a
href="'.$data[$i]['link'].'">'.$data[$i]['text'].'</a>'.'</li>'."\r\n";
! }
! $main_data .=
! '</ul>'."\r\n"
! .'</td>'."\r\n"
! .'</tr>'."\r\n"
! .'<tr><td><hr></td></tr>'."\r\n"
! .'<tr>'."\r\n"
! .$form_folder_switch_opentag
! .'<td width="100%" align="left">'."\r\n"
! .' <strong>'.lang('E-Mail
Folders').':</strong> '
! .$folder_switch_combobox
! .' '.$compose_href
! .'</td>'."\r\n"
! .$form_folder_switch_closetag
! .'</tr>'."\r\n"
! .'</table>'."\r\n";
!
! $GLOBALS['phpgw']->portalbox->draw($main_data);
!
! // reset the currentapp to whatever it was
! if ((isset($prev_currentapp))
! && ($prev_currentapp)
! && ($GLOBALS['phpgw_info']['flags']['currentapp'] !=
$prev_currentapp))
! {
! $GLOBALS['phpgw_info']['flags']['currentapp'] =
$prev_currentapp;
! }
!
! }
}
+
// we create the msg object initially so we can have access to the
multi-account preferences,
// so even if we did not output any data here, we still must call this
"end_request" function, it is kind of like a destructor
Index: hook_preferences.inc.php
===================================================================
RCS file: /cvsroot/phpgroupware/email/inc/hook_preferences.inc.php,v
retrieving revision 1.14.2.4
retrieving revision 1.14.2.5
diff -C2 -r1.14.2.4 -r1.14.2.5
*** hook_preferences.inc.php 6 Apr 2003 10:09:12 -0000 1.14.2.4
--- hook_preferences.inc.php 8 Sep 2003 08:33:36 -0000 1.14.2.5
***************
*** 15,24 ****
$title = $appname;
$file = Array(
! //TEST-RALFBECKER 'E-Mail Preferences' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.preferences'),
! 'E-Mail Preferences' =>
$GLOBALS['phpgw']->link('/preferences/preferences.php','appname=email&prefix='),
// need empty prefix
'Extra E-Mail Accounts' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.ex_accounts_list'),
'E-Mail Filters' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uifilters.filters_list')
);
! display_section($appname,$file);
}
?>
--- 15,43 ----
$title = $appname;
$file = Array(
! //'E-Mail Preferences' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.preferences'),
! 'E-Mail Preferences' =>
$GLOBALS['phpgw']->link('/preferences/preferences.php','appname=email&prefix='),
// need empty prefix
'Extra E-Mail Accounts' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uipreferences.ex_accounts_list'),
'E-Mail Filters' =>
$GLOBALS['phpgw']->link('/index.php','menuaction=email.uifilters.filters_list')
);
!
! if (is_object($GLOBALS['phpgw']->xslttpl))
! {
! $phpgw_before_xslt = False;
! }
! else
! {
! $phpgw_before_xslt = True;
! }
! // now display according to the version of the template system in use
! if ($phpgw_before_xslt == True)
! {
! // the is the OLD, pre-xslt way to display pref items
! display_section($appname,$title,$file);
! }
! else
! {
! // this is the xslt template era
! display_section($appname,$file);
! }
}
?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] CVS: email/inc class.uisearch.inc.php, NONE, 1.1.2.1 class.boaction.inc.php, 1.17, 1.17.2.1 class.boattach_file.inc.php, 1.4, 1.4.2.1 class.bocompose.inc.php, 1.8, 1.8.2.1 class.bofilters.inc.php, 1.14, 1.14.2.1 class.bofolder.inc.php, 1.8, 1.8.2.1 class.boindex.inc.php, 1.30.2.3, 1.30.2.4 class.bomessage.inc.php, 1.14, 1.14.2.1 class.bopreferences.inc.php, 1.23.2.2, 1.23.2.3 class.bosend.inc.php, 1.11, 1.11.2.1 class.html_widgets.inc.php, 1.3.2.2, 1.3.2.3 class.mail_dcom.inc.php, 1.10, 1.10.2.1 class.mail_dcom_base.inc.php, 1.9, 1.9.2.1 class.mail_dcom_base_sock.inc.php, 1.24, 1.24.2.1 class.mail_dcom_imap.inc.php, 1.21, 1.21.2.1 class.mail_dcom_imap_sock.inc.php, 1.15, 1.15.2.1 class.mail_dcom_nntp.inc.php, 1.4, 1.4.2.1 class.mail_dcom_pop3.inc.php, 1.11, 1.11.2.1 class.mail_filters.inc.php, 1.7, 1.7.2.1 class.mail_msg.inc.php, 1.4, 1.4.2.1 class.mail_msg_base.inc.php, 1.78.2.3, 1.78.2.4 class.mail_msg_display.inc.php, 1.40.2.1, 1.40.2.2 class.mail_msg_wrappers.inc.php, 1.37.2.1, 1.37.2.2 class.mail_send.inc.php, 1.11, 1.11.2.1 class.msg_bootstrap.inc.php, 1.2, 1.2.2.1 class.so_mail_msg.inc.php, 1.1.1.1, 1.1.1.1.2.1 class.spell.inc.php, 1.2, 1.2.2.1 class.spell_struct.inc.php, 1.2, 1.2.2.1 class.spell_svc_none.inc.php, 1.2, 1.2.2.1 class.spell_svc_php.inc.php, 1.2, 1.2.2.1 class.svc_debug.inc.php, 1.1.1.1, 1.1.1.1.2.1 class.svc_nextmatches.inc.php, 1.2, 1.2.2.1 class.ui_mail_debug.inc.php, 1.2, 1.2.2.1 class.uiattach_file.inc.php, 1.2, 1.2.2.1 class.uicompose.inc.php, 1.4.2.1, 1.4.2.2 class.uifilters.inc.php, 1.12.2.2, 1.12.2.3 class.uifolder.inc.php, 1.4.2.1, 1.4.2.2 class.uiindex.inc.php, 1.21.2.1, 1.21.2.2 class.uijsaddressbook.inc.php, 1.3, 1.3.2.1 class.uimessage.inc.php, 1.9.2.2, 1.9.2.3 class.uipreferences.inc.php, 1.16.2.2, 1.16.2.3 functions.inc.php, 1.116, 1.116.2.1 hook_admin.inc.php, 1.6, 1.6.2.1 hook_home.inc.php, 1.56, 1.56.2.1 hook_preferences.inc.php, 1.14.2.4, 1.14.2.5,
Dave Hall <address@hidden> <=
- Prev by Date:
[Phpgroupware-cvs] CVS: email/templates/idsociety/images check.gif, 1.3, NONE check.png, 1.3, NONE evo-accounts-16.gif, 1.1, NONE evo-accounts-16.png, 1.1.1.1, NONE evo-accounts-24.gif, 1.1, NONE evo-accounts-24.png, 1.1.1.1, NONE evo-add-attachment-16.gif, 1.1, NONE evo-add-attachment-16.png, 1.1.1.1, NONE evo-add-attachment-24.gif, 1.1, NONE evo-add-attachment-24.png, 1.1.1.1, NONE evo-add-attachment.gif, 1.1, NONE evo-add-attachment.png, 1.1.1.1, NONE evo-address-conduit-16.gif, 1.1, NONE evo-address-conduit-16.png, 1.1.1.1, NONE evo-address-conduit-24.gif, 1.1, NONE evo-address-conduit-24.png, 1.1.1.1, NONE evo-arrow-2left-16.gif, 1.1, NONE evo-arrow-2left-16.png, 1.1.1.1, NONE evo-arrow-2left-24.gif, 1.1, NONE evo-arrow-2left-24.png, 1.1.1.1, NONE evo-arrow-2left-no-16.gif, 1.1, NONE evo-arrow-2left-no-16.png, 1.1.1.1, NONE evo-arrow-2left-no-24.gif, 1.1, NONE evo-arrow-2left-no-24.png, 1.1.1.1, NONE evo-arrow-2right-16.gif, 1.1, NONE evo-arrow-2right-16.png, 1.1.1.1, NONE evo-arrow-2right-24.gif, 1.1, NONE evo-arrow-2right-24.png, 1.1.1.1, NONE evo-arrow-2right-no-16.gif, 1.1, NONE evo-arrow-2right-no-16.png, 1.1.1.1, NONE evo-arrow-2right-no-24.gif, 1.1, NONE evo-arrow-2right-no-24.png, 1.1.1.1, NONE evo-arrow-left-16.gif, 1.1, NONE evo-arrow-left-16.png, 1.1.1.1, NONE evo-arrow-left-24.gif, 1.1, NONE evo-arrow-left-24.png, 1.1.1.1, NONE evo-arrow-left-no-16.gif, 1.1, NONE evo-arrow-left-no-16.png, 1.1.1.1, NONE evo-arrow-left-no-24.gif, 1.1, NONE evo-arrow-left-no-24.png, 1.1.1.1, NONE evo-arrow-right-16.gif, 1.1, NONE evo-arrow-right-16.png, 1.1.1.1, NONE evo-arrow-right-24.gif, 1.1, NONE evo-arrow-right-24.png, 1.1.1.1, NONE evo-arrow-right-no-16.gif, 1.1, NONE evo-arrow-right-no-16.png, 1.1.1.1, NONE evo-arrow-right-no-24.gif, 1.1, NONE evo-arrow-right-no-24.png, 1.1.1.1, NONE evo-compose-message-16.gif, 1.1, NONE evo-compose-message-16.png, 1.1.1.1, NONE evo-compose-message-24.gif, 1.1, NONE evo-compose-message-24.png, 1.1.1.1, NONE evo-customize-16.gif, 1.1, NONE evo-customize-16.png, 1.1.1.1, NONE evo-customize-24.gif, 1.1, NONE evo-customize-24.png, 1.1.1.1, NONE evo-customize3-24.gif, 1.1, NONE evo-customize3-24.png, 1.1.1.1, NONE evo-customize4-24.gif, 1.1, NONE evo-customize4-24.png, 1.1.1.1, NONE evo-delete-message.gif, 1.1, NONE evo-delete-message.png, 1.1.1.1, NONE evo-envelope.gif, 1.1, NONE evo-envelope.png, 1.1.1.1, NONE evo-filters-16.gif, 1.1, NONE evo-filters-16.png, 1.1.1.1, NONE evo-filters-24.gif, 1.1, NONE evo-filters-24.png, 1.1.1.1, NONE evo-filters-config-24.gif, 1.1, NONE evo-filters-config-24.png, 1.1.1.1, NONE evo-folder-16.gif, 1.1, NONE evo-folder-16.png, 1.1.1.1, NONE evo-folder-24.gif, 1.1, NONE evo-folder-24.png, 1.1.1.1, NONE evo-folder-config-16.gif, 1.1, NONE evo-folder-config-16.png, 1.1.1.1, NONE evo-folder-config-24.gif, 1.1, NONE evo-folder-config-24.png, 1.1.1.1, NONE evo-folder-config2-24.gif, 1.1, NONE evo-folder-config2-24.png, 1.1.1.1, NONE evo-forward.gif, 1.1, NONE evo-forward.png, 1.1.1.1, NONE evo-move-message.gif, 1.1, NONE evo-move-message.png, 1.1.1.1, NONE evo-next-message.gif, 1.1, NONE evo-next-message.png, 1.1.1.1, NONE evo-previous-message.gif, 1.1, NONE evo-previous-message.png, 1.1.1.1, NONE evo-reply-all.gif, 1.1, NONE evo-reply-all.png, 1.1.1.1, NONE evo-reply-all2.gif, 1.1, NONE evo-reply-all2.png, 1.1.1.1, NONE evo-reply-to-all.gif, 1.1, NONE evo-reply-to-all.png, 1.1.1.1, NONE evo-reply.gif, 1.1, NONE evo-reply.png, 1.1.1.1, NONE evo-send-16.gif, 1.1, NONE evo-send-16.png, 1.1.1.1, NONE evo-send-24.gif, 1.1, NONE evo-send-24.png, 1.1.1.1, NONE evo-spellcheck-16.gif, 1.1, NONE evo-spellcheck-16.png, 1.1.1.1, NONE evo-spellcheck-24.gif, 1.1, NONE evo-spellcheck-24.png, 1.1.1.1, NONE evo-trash-16.gif, 1.1, NONE evo-trash-16.png, 1.1.1.1, NONE evo-trash-24.gif, 1.1, NONE evo-trash-24.png, 1.1.1.1, NONE moz-accounts-16.gif, 1.1, NONE moz-accounts-16.png, 1.1.1.1, NONE moz-accounts-24.gif, 1.1, NONE moz-accounts-24.png, 1.1.1.1, NONE moz-add-attachment-16.gif, 1.1, NONE moz-add-attachment-16.png, 1.1.1.1, NONE moz-add-attachment-24.gif, 1.1, NONE moz-add-attachment-24.png, 1.1.1.1, NONE moz-address-conduit-16.gif, 1.1, NONE moz-address-conduit-16.png, 1.1.1.1, NONE moz-address-conduit-24.gif, 1.1, NONE moz-address-conduit-24.png, 1.1.1.1, NONE moz-arrow-2left-16.gif, 1.1, NONE moz-arrow-2left-16.png, 1.1.1.1, NONE moz-arrow-2left-24.gif, 1.1, NONE moz-arrow-2left-24.png, 1.1.1.1, NONE moz-arrow-2left-no-16.gif, 1.1, NONE moz-arrow-2left-no-16.png, 1.1.1.1, NONE moz-arrow-2left-no-24.gif, 1.1, NONE moz-arrow-2left-no-24.png, 1.1.1.1, NONE moz-arrow-2right-16.gif, 1.1, NONE moz-arrow-2right-16.png, 1.1.1.1, NONE moz-arrow-2right-24.gif, 1.1, NONE moz-arrow-2right-24.png, 1.1.1.1, NONE moz-arrow-2right-no-16.gif, 1.1, NONE moz-arrow-2right-no-16.png, 1.1.1.1, NONE moz-arrow-2right-no-24.gif, 1.1, NONE moz-arrow-2right-no-24.png, 1.1.1.1, NONE moz-arrow-left-16.gif, 1.1, NONE moz-arrow-left-16.png, 1.1.1.1, NONE moz-arrow-left-24.gif, 1.1, NONE moz-arrow-left-24.png, 1.1.1.1, NONE moz-arrow-left-no-16.gif, 1.1, NONE moz-arrow-left-no-16.png, 1.1.1.1, NONE moz-arrow-left-no-24.gif, 1.1, NONE moz-arrow-left-no-24.png, 1.1.1.1, NONE moz-arrow-right-16.gif, 1.1, NONE moz-arrow-right-16.png, 1.1.1.1, NONE moz-arrow-right-24.gif, 1.1, NONE moz-arrow-right-24.png, 1.1.1.1, NONE moz-arrow-right-no-16.gif, 1.1, NONE moz-arrow-right-no-16.png, 1.1.1.1, NONE moz-arrow-right-no-24.gif, 1.1, NONE moz-arrow-right-no-24.png, 1.1.1.1, NONE moz-compose-message-16.gif, 1.1, NONE moz-compose-message-16.png, 1.1.1.1, NONE moz-compose-message-24.gif, 1.1, NONE moz-compose-message-24.png, 1.1.1.1, NONE moz-customize-16.gif, 1.1, NONE moz-customize-16.png, 1.1.1.1, NONE moz-customize-24.gif, 1.1, NONE moz-customize-24.png, 1.1.1.1, NONE moz-delete-message.gif, 1.1, NONE moz-delete-message.png, 1.1.1.1, NONE moz-filters-16.gif, 1.1, NONE moz-filters-16.png, 1.1.1.1, NONE moz-filters-24.gif, 1.1, NONE moz-filters-24.png, 1.1.1.1, NONE moz-folder-16.gif, 1.1, NONE moz-folder-16.png, 1.1.1.1, NONE moz-folder-24.gif, 1.1, NONE moz-folder-24.png, 1.1.1.1, NONE moz-forward.gif, 1.1, NONE moz-forward.png, 1.1.1.1, NONE moz-reply-all.gif, 1.1, NONE moz-reply-all.png, 1.1.1.1, NONE moz-reply.gif, 1.1, NONE moz-reply.png, 1.1.1.1, NONE moz-send-16.gif, 1.1, NONE moz-send-16.png, 1.1.1.1, NONE moz-send-24.gif, 1.1, NONE moz-send-24.png, 1.1.1.1, NONE moz-spellcheck-16.gif, 1.1, NONE moz-spellcheck-16.png, 1.1.1.1, NONE moz-spellcheck-24.gif, 1.1, NONE moz-spellcheck-24.png, 1.1.1.1, NONE moz-trash-16.gif, 1.1, NONE moz-trash-16.png, 1.1.1.1, NONE moz-trash-24.gif, 1.1, NONE moz-trash-24.png, 1.1.1.1, NONE
- Next by Date:
[Phpgroupware-cvs] CVS: email/templates/default/images/AquaFusion AquaFusion.readme, NONE, 1.1.2.1 accounts-16.gif, NONE, 1.1.2.1 accounts-16.png, NONE, 1.1.2.1 accounts-24.gif, NONE, 1.1.2.1 accounts-24.png, NONE, 1.1.2.1 add-attachment-16.gif, NONE, 1.1.2.1 add-attachment-16.png, NONE, 1.1.2.1 add-attachment-24.gif, NONE, 1.1.2.1 add-attachment-24.png, NONE, 1.1.2.1 address-conduit-16.gif, NONE, 1.1.2.1 address-conduit-16.png, NONE, 1.1.2.1 address-conduit-24.gif, NONE, 1.1.2.1 address-conduit-24.png, NONE, 1.1.2.1 arrow-2left-16.gif, NONE, 1.1.2.1 arrow-2left-16.png, NONE, 1.1.2.1 arrow-2left-24.gif, NONE, 1.1.2.1 arrow-2left-24.png, NONE, 1.1.2.1 arrow-2left-no-16.gif, NONE, 1.1.2.1 arrow-2left-no-16.png, NONE, 1.1.2.1 arrow-2left-no-24.gif, NONE, 1.1.2.1 arrow-2left-no-24.png, NONE, 1.1.2.1 arrow-2right-16.gif, NONE, 1.1.2.1 arrow-2right-16.png, NONE, 1.1.2.1 arrow-2right-24.gif, NONE, 1.1.2.1 arrow-2right-24.png, NONE, 1.1.2.1 arrow-2right-no-16.gif, NONE, 1.1.2.1 arrow-2right-no-16.png, NONE, 1.1.2.1 arrow-2right-no-24.gif, NONE, 1.1.2.1 arrow-2right-no-24.png, NONE, 1.1.2.1 arrow-left-16.gif, NONE, 1.1.2.1 arrow-left-16.png, NONE, 1.1.2.1 arrow-left-24.gif, NONE, 1.1.2.1 arrow-left-24.png, NONE, 1.1.2.1 arrow-left-no-16.gif, NONE, 1.1.2.1 arrow-left-no-16.png, NONE, 1.1.2.1 arrow-left-no-24.gif, NONE, 1.1.2.1 arrow-left-no-24.png, NONE, 1.1.2.1 arrow-right-16.gif, NONE, 1.1.2.1 arrow-right-16.png, NONE, 1.1.2.1 arrow-right-24.gif, NONE, 1.1.2.1 arrow-right-24.png, NONE, 1.1.2.1 arrow-right-no-16.gif, NONE, 1.1.2.1 arrow-right-no-16.png, NONE, 1.1.2.1 arrow-right-no-24.gif, NONE, 1.1.2.1 arrow-right-no-24.png, NONE, 1.1.2.1 compose-message-16.gif, NONE, 1.1.2.1 compose-message-16.png, NONE, 1.1.2.1 compose-message-24.gif, NONE, 1.1.2.1 compose-message-24.png, NONE, 1.1.2.1 customize-16.gif, NONE, 1.1.2.1 customize-16.png, NONE, 1.1.2.1 customize-24.gif, NONE, 1.1.2.1 customize-24.png, NONE, 1.1.2.1 delete-message.gif, NONE, 1.1.2.1 delete-message.png, NONE, 1.1.2.1 filters-16.gif, NONE, 1.1.2.1 filters-16.png, NONE, 1.1.2.1 filters-24.gif, NONE, 1.1.2.1 filters-24.png, NONE, 1.1.2.1 folder-16.gif, NONE, 1.1.2.1 folder-16.png, NONE, 1.1.2.1 folder-24.gif, NONE, 1.1.2.1 folder-24.png, NONE, 1.1.2.1 forward.gif, NONE, 1.1.2.1 forward.png, NONE, 1.1.2.1 reply-all.gif, NONE, 1.1.2.1 reply-all.png, NONE, 1.1.2.1 reply.gif, NONE, 1.1.2.1 reply.png, NONE, 1.1.2.1 send-16.gif, NONE, 1.1.2.1 send-16.png, NONE, 1.1.2.1 send-24.gif, NONE, 1.1.2.1 send-24.png, NONE, 1.1.2.1 spellcheck-16.gif, NONE, 1.1.2.1 spellcheck-16.png, NONE, 1.1.2.1 spellcheck-24.gif, NONE, 1.1.2.1 spellcheck-24.png, NONE, 1.1.2.1 trash-16.gif, NONE, 1.1.2.1 trash-16.png, NONE, 1.1.2.1 trash-24.gif, NONE, 1.1.2.1 trash-24.png, NONE, 1.1.2.1
- Previous by thread:
[Phpgroupware-cvs] CVS: email/templates/idsociety/images check.gif, 1.3, NONE check.png, 1.3, NONE evo-accounts-16.gif, 1.1, NONE evo-accounts-16.png, 1.1.1.1, NONE evo-accounts-24.gif, 1.1, NONE evo-accounts-24.png, 1.1.1.1, NONE evo-add-attachment-16.gif, 1.1, NONE evo-add-attachment-16.png, 1.1.1.1, NONE evo-add-attachment-24.gif, 1.1, NONE evo-add-attachment-24.png, 1.1.1.1, NONE evo-add-attachment.gif, 1.1, NONE evo-add-attachment.png, 1.1.1.1, NONE evo-address-conduit-16.gif, 1.1, NONE evo-address-conduit-16.png, 1.1.1.1, NONE evo-address-conduit-24.gif, 1.1, NONE evo-address-conduit-24.png, 1.1.1.1, NONE evo-arrow-2left-16.gif, 1.1, NONE evo-arrow-2left-16.png, 1.1.1.1, NONE evo-arrow-2left-24.gif, 1.1, NONE evo-arrow-2left-24.png, 1.1.1.1, NONE evo-arrow-2left-no-16.gif, 1.1, NONE evo-arrow-2left-no-16.png, 1.1.1.1, NONE evo-arrow-2left-no-24.gif, 1.1, NONE evo-arrow-2left-no-24.png, 1.1.1.1, NONE evo-arrow-2right-16.gif, 1.1, NONE evo-arrow-2right-16.png, 1.1.1.1, NONE evo-arrow-2right-24.gif, 1.1, NONE evo-arrow-2right-24.png, 1.1.1.1, NONE evo-arrow-2right-no-16.gif, 1.1, NONE evo-arrow-2right-no-16.png, 1.1.1.1, NONE evo-arrow-2right-no-24.gif, 1.1, NONE evo-arrow-2right-no-24.png, 1.1.1.1, NONE evo-arrow-left-16.gif, 1.1, NONE evo-arrow-left-16.png, 1.1.1.1, NONE evo-arrow-left-24.gif, 1.1, NONE evo-arrow-left-24.png, 1.1.1.1, NONE evo-arrow-left-no-16.gif, 1.1, NONE evo-arrow-left-no-16.png, 1.1.1.1, NONE evo-arrow-left-no-24.gif, 1.1, NONE evo-arrow-left-no-24.png, 1.1.1.1, NONE evo-arrow-right-16.gif, 1.1, NONE evo-arrow-right-16.png, 1.1.1.1, NONE evo-arrow-right-24.gif, 1.1, NONE evo-arrow-right-24.png, 1.1.1.1, NONE evo-arrow-right-no-16.gif, 1.1, NONE evo-arrow-right-no-16.png, 1.1.1.1, NONE evo-arrow-right-no-24.gif, 1.1, NONE evo-arrow-right-no-24.png, 1.1.1.1, NONE evo-compose-message-16.gif, 1.1, NONE evo-compose-message-16.png, 1.1.1.1, NONE evo-compose-message-24.gif, 1.1, NONE evo-compose-message-24.png, 1.1.1.1, NONE evo-customize-16.gif, 1.1, NONE evo-customize-16.png, 1.1.1.1, NONE evo-customize-24.gif, 1.1, NONE evo-customize-24.png, 1.1.1.1, NONE evo-customize3-24.gif, 1.1, NONE evo-customize3-24.png, 1.1.1.1, NONE evo-customize4-24.gif, 1.1, NONE evo-customize4-24.png, 1.1.1.1, NONE evo-delete-message.gif, 1.1, NONE evo-delete-message.png, 1.1.1.1, NONE evo-envelope.gif, 1.1, NONE evo-envelope.png, 1.1.1.1, NONE evo-filters-16.gif, 1.1, NONE evo-filters-16.png, 1.1.1.1, NONE evo-filters-24.gif, 1.1, NONE evo-filters-24.png, 1.1.1.1, NONE evo-filters-config-24.gif, 1.1, NONE evo-filters-config-24.png, 1.1.1.1, NONE evo-folder-16.gif, 1.1, NONE evo-folder-16.png, 1.1.1.1, NONE evo-folder-24.gif, 1.1, NONE evo-folder-24.png, 1.1.1.1, NONE evo-folder-config-16.gif, 1.1, NONE evo-folder-config-16.png, 1.1.1.1, NONE evo-folder-config-24.gif, 1.1, NONE evo-folder-config-24.png, 1.1.1.1, NONE evo-folder-config2-24.gif, 1.1, NONE evo-folder-config2-24.png, 1.1.1.1, NONE evo-forward.gif, 1.1, NONE evo-forward.png, 1.1.1.1, NONE evo-move-message.gif, 1.1, NONE evo-move-message.png, 1.1.1.1, NONE evo-next-message.gif, 1.1, NONE evo-next-message.png, 1.1.1.1, NONE evo-previous-message.gif, 1.1, NONE evo-previous-message.png, 1.1.1.1, NONE evo-reply-all.gif, 1.1, NONE evo-reply-all.png, 1.1.1.1, NONE evo-reply-all2.gif, 1.1, NONE evo-reply-all2.png, 1.1.1.1, NONE evo-reply-to-all.gif, 1.1, NONE evo-reply-to-all.png, 1.1.1.1, NONE evo-reply.gif, 1.1, NONE evo-reply.png, 1.1.1.1, NONE evo-send-16.gif, 1.1, NONE evo-send-16.png, 1.1.1.1, NONE evo-send-24.gif, 1.1, NONE evo-send-24.png, 1.1.1.1, NONE evo-spellcheck-16.gif, 1.1, NONE evo-spellcheck-16.png, 1.1.1.1, NONE evo-spellcheck-24.gif, 1.1, NONE evo-spellcheck-24.png, 1.1.1.1, NONE evo-trash-16.gif, 1.1, NONE evo-trash-16.png, 1.1.1.1, NONE evo-trash-24.gif, 1.1, NONE evo-trash-24.png, 1.1.1.1, NONE moz-accounts-16.gif, 1.1, NONE moz-accounts-16.png, 1.1.1.1, NONE moz-accounts-24.gif, 1.1, NONE moz-accounts-24.png, 1.1.1.1, NONE moz-add-attachment-16.gif, 1.1, NONE moz-add-attachment-16.png, 1.1.1.1, NONE moz-add-attachment-24.gif, 1.1, NONE moz-add-attachment-24.png, 1.1.1.1, NONE moz-address-conduit-16.gif, 1.1, NONE moz-address-conduit-16.png, 1.1.1.1, NONE moz-address-conduit-24.gif, 1.1, NONE moz-address-conduit-24.png, 1.1.1.1, NONE moz-arrow-2left-16.gif, 1.1, NONE moz-arrow-2left-16.png, 1.1.1.1, NONE moz-arrow-2left-24.gif, 1.1, NONE moz-arrow-2left-24.png, 1.1.1.1, NONE moz-arrow-2left-no-16.gif, 1.1, NONE moz-arrow-2left-no-16.png, 1.1.1.1, NONE moz-arrow-2left-no-24.gif, 1.1, NONE moz-arrow-2left-no-24.png, 1.1.1.1, NONE moz-arrow-2right-16.gif, 1.1, NONE moz-arrow-2right-16.png, 1.1.1.1, NONE moz-arrow-2right-24.gif, 1.1, NONE moz-arrow-2right-24.png, 1.1.1.1, NONE moz-arrow-2right-no-16.gif, 1.1, NONE moz-arrow-2right-no-16.png, 1.1.1.1, NONE moz-arrow-2right-no-24.gif, 1.1, NONE moz-arrow-2right-no-24.png, 1.1.1.1, NONE moz-arrow-left-16.gif, 1.1, NONE moz-arrow-left-16.png, 1.1.1.1, NONE moz-arrow-left-24.gif, 1.1, NONE moz-arrow-left-24.png, 1.1.1.1, NONE moz-arrow-left-no-16.gif, 1.1, NONE moz-arrow-left-no-16.png, 1.1.1.1, NONE moz-arrow-left-no-24.gif, 1.1, NONE moz-arrow-left-no-24.png, 1.1.1.1, NONE moz-arrow-right-16.gif, 1.1, NONE moz-arrow-right-16.png, 1.1.1.1, NONE moz-arrow-right-24.gif, 1.1, NONE moz-arrow-right-24.png, 1.1.1.1, NONE moz-arrow-right-no-16.gif, 1.1, NONE moz-arrow-right-no-16.png, 1.1.1.1, NONE moz-arrow-right-no-24.gif, 1.1, NONE moz-arrow-right-no-24.png, 1.1.1.1, NONE moz-compose-message-16.gif, 1.1, NONE moz-compose-message-16.png, 1.1.1.1, NONE moz-compose-message-24.gif, 1.1, NONE moz-compose-message-24.png, 1.1.1.1, NONE moz-customize-16.gif, 1.1, NONE moz-customize-16.png, 1.1.1.1, NONE moz-customize-24.gif, 1.1, NONE moz-customize-24.png, 1.1.1.1, NONE moz-delete-message.gif, 1.1, NONE moz-delete-message.png, 1.1.1.1, NONE moz-filters-16.gif, 1.1, NONE moz-filters-16.png, 1.1.1.1, NONE moz-filters-24.gif, 1.1, NONE moz-filters-24.png, 1.1.1.1, NONE moz-folder-16.gif, 1.1, NONE moz-folder-16.png, 1.1.1.1, NONE moz-folder-24.gif, 1.1, NONE moz-folder-24.png, 1.1.1.1, NONE moz-forward.gif, 1.1, NONE moz-forward.png, 1.1.1.1, NONE moz-reply-all.gif, 1.1, NONE moz-reply-all.png, 1.1.1.1, NONE moz-reply.gif, 1.1, NONE moz-reply.png, 1.1.1.1, NONE moz-send-16.gif, 1.1, NONE moz-send-16.png, 1.1.1.1, NONE moz-send-24.gif, 1.1, NONE moz-send-24.png, 1.1.1.1, NONE moz-spellcheck-16.gif, 1.1, NONE moz-spellcheck-16.png, 1.1.1.1, NONE moz-spellcheck-24.gif, 1.1, NONE moz-spellcheck-24.png, 1.1.1.1, NONE moz-trash-16.gif, 1.1, NONE moz-trash-16.png, 1.1.1.1, NONE moz-trash-24.gif, 1.1, NONE moz-trash-24.png, 1.1.1.1, NONE
- Next by thread:
[Phpgroupware-cvs] CVS: email/templates/default/images/AquaFusion AquaFusion.readme, NONE, 1.1.2.1 accounts-16.gif, NONE, 1.1.2.1 accounts-16.png, NONE, 1.1.2.1 accounts-24.gif, NONE, 1.1.2.1 accounts-24.png, NONE, 1.1.2.1 add-attachment-16.gif, NONE, 1.1.2.1 add-attachment-16.png, NONE, 1.1.2.1 add-attachment-24.gif, NONE, 1.1.2.1 add-attachment-24.png, NONE, 1.1.2.1 address-conduit-16.gif, NONE, 1.1.2.1 address-conduit-16.png, NONE, 1.1.2.1 address-conduit-24.gif, NONE, 1.1.2.1 address-conduit-24.png, NONE, 1.1.2.1 arrow-2left-16.gif, NONE, 1.1.2.1 arrow-2left-16.png, NONE, 1.1.2.1 arrow-2left-24.gif, NONE, 1.1.2.1 arrow-2left-24.png, NONE, 1.1.2.1 arrow-2left-no-16.gif, NONE, 1.1.2.1 arrow-2left-no-16.png, NONE, 1.1.2.1 arrow-2left-no-24.gif, NONE, 1.1.2.1 arrow-2left-no-24.png, NONE, 1.1.2.1 arrow-2right-16.gif, NONE, 1.1.2.1 arrow-2right-16.png, NONE, 1.1.2.1 arrow-2right-24.gif, NONE, 1.1.2.1 arrow-2right-24.png, NONE, 1.1.2.1 arrow-2right-no-16.gif, NONE, 1.1.2.1 arrow-2right-no-16.png, NONE, 1.1.2.1 arrow-2right-no-24.gif, NONE, 1.1.2.1 arrow-2right-no-24.png, NONE, 1.1.2.1 arrow-left-16.gif, NONE, 1.1.2.1 arrow-left-16.png, NONE, 1.1.2.1 arrow-left-24.gif, NONE, 1.1.2.1 arrow-left-24.png, NONE, 1.1.2.1 arrow-left-no-16.gif, NONE, 1.1.2.1 arrow-left-no-16.png, NONE, 1.1.2.1 arrow-left-no-24.gif, NONE, 1.1.2.1 arrow-left-no-24.png, NONE, 1.1.2.1 arrow-right-16.gif, NONE, 1.1.2.1 arrow-right-16.png, NONE, 1.1.2.1 arrow-right-24.gif, NONE, 1.1.2.1 arrow-right-24.png, NONE, 1.1.2.1 arrow-right-no-16.gif, NONE, 1.1.2.1 arrow-right-no-16.png, NONE, 1.1.2.1 arrow-right-no-24.gif, NONE, 1.1.2.1 arrow-right-no-24.png, NONE, 1.1.2.1 compose-message-16.gif, NONE, 1.1.2.1 compose-message-16.png, NONE, 1.1.2.1 compose-message-24.gif, NONE, 1.1.2.1 compose-message-24.png, NONE, 1.1.2.1 customize-16.gif, NONE, 1.1.2.1 customize-16.png, NONE, 1.1.2.1 customize-24.gif, NONE, 1.1.2.1 customize-24.png, NONE, 1.1.2.1 delete-message.gif, NONE, 1.1.2.1 delete-message.png, NONE, 1.1.2.1 filters-16.gif, NONE, 1.1.2.1 filters-16.png, NONE, 1.1.2.1 filters-24.gif, NONE, 1.1.2.1 filters-24.png, NONE, 1.1.2.1 folder-16.gif, NONE, 1.1.2.1 folder-16.png, NONE, 1.1.2.1 folder-24.gif, NONE, 1.1.2.1 folder-24.png, NONE, 1.1.2.1 forward.gif, NONE, 1.1.2.1 forward.png, NONE, 1.1.2.1 reply-all.gif, NONE, 1.1.2.1 reply-all.png, NONE, 1.1.2.1 reply.gif, NONE, 1.1.2.1 reply.png, NONE, 1.1.2.1 send-16.gif, NONE, 1.1.2.1 send-16.png, NONE, 1.1.2.1 send-24.gif, NONE, 1.1.2.1 send-24.png, NONE, 1.1.2.1 spellcheck-16.gif, NONE, 1.1.2.1 spellcheck-16.png, NONE, 1.1.2.1 spellcheck-24.gif, NONE, 1.1.2.1 spellcheck-24.png, NONE, 1.1.2.1 trash-16.gif, NONE, 1.1.2.1 trash-16.png, NONE, 1.1.2.1 trash-24.gif, NONE, 1.1.2.1 trash-24.png, NONE, 1.1.2.1
- Index(es):