formatting

This commit is contained in:
Miles Lott 2001-09-23 18:58:31 +00:00
parent 5ae0b05bbc
commit 46f9c75630

View File

@ -23,32 +23,32 @@
/* $Id$ */ /* $Id$ */
include(PHPGW_API_INC."/class.sbox.inc.php"); include(PHPGW_API_INC . '/class.sbox.inc.php');
class sbox2 extends sbox { class sbox2 extends sbox
{
/* /*
* Function: search for an id of an db-entry, eg. an address * Function: search for an id of an db-entry, eg. an address
* Parameter: $name base name for all template-vars and of the submitted vars (not to conflict with other template-var-names !!!) * Parameter: $name base name for all template-vars and of the submitted vars (not to conflict with other template-var-names !!!)
* $lang_name titel of the field * $lang_name titel of the field
* $prompt for the JavaScript prompt() * $prompt for the JavaScript prompt()
* $id_name id of previosly selected entry * $id_name id of previosly selected entry
* $content from id (eg. 'company: lastname, givenname' for address $id) if $id != 0, or * $content from id (eg. 'company: lastname, givenname' for address $id) if $id != 0, or
* array with searchresult (id's as key), if array is empty if search was unsucsessful * array with searchresult (id's as key), if array is empty if search was unsucsessful
* Returns: array with vars to set in temaplate, the vars are: * Returns: array with vars to set in temaplate, the vars are:
* {doSearchFkt} Javascript Funktion, place somewhere in Template (before rest of the vars) * {doSearchFkt} Javascript Funktion, place somewhere in Template (before rest of the vars)
* {$name.'_title} button with titel $lang_name (if JS) or just $lang_name * {$name.'_title} button with titel $lang_name (if JS) or just $lang_name
* {$name} content of $id if != 0, or lang('use Button to search for').$lang_name * {$name} content of $id if != 0, or lang('use Button to search for').$lang_name
* {$name.'_nojs} searchfield + button if we have no JavaScript, else empty * {$name.'_nojs} searchfield + button if we have no JavaScript, else empty
* *
* To use call $template->set_var(getIdSearch( ... )); * To use call $template->set_var(getIdSearch( ... ));
* the template should look like {doSeachFkt} <tr><td>{XXX_title}</td><td>{XXX}</td><td>{XXX_nojs}</td></tr> (XXX is content of $name) * the template should look like {doSeachFkt} <tr><td>{XXX_title}</td><td>{XXX}</td><td>{XXX_nojs}</td></tr> (XXX is content of $name)
* In the submitted page the vars $query_XXX and $id_XXX are set according to what is selected, see getAddress as Example * In the submitted page the vars $query_XXX and $id_XXX are set according to what is selected, see getAddress as Example
*/ */
function getId($name,$lang_name,$prompt,$id_name,$content='',$note='') { function getId($name,$lang_name,$prompt,$id_name,$content='',$note='')
{
// echo "<p>getId('$name','$lang_name','$prompt',$id_name,'$content') ="; // echo "<p>getId('$name','$lang_name','$prompt',$id_name,'$content') =";
global $phpgw;
$ret['doSearchFkt'] = $ret['doSearchFkt'] =
'<script language="JavaScript">'."\n". '<script language="JavaScript">'."\n".
" function doSearch(field,ask) {\n". " function doSearch(field,ask) {\n".
@ -71,47 +71,64 @@
" $lang_name\n". " $lang_name\n".
"</noscript>"; "</noscript>";
if (is_array($content)) { // result from search if (is_array($content))
if (!count($content)) { // search was unsuccsessful { // result from search
if (!count($content))
{ // search was unsuccsessful
$ret[$name] = lang('no entries found, try again ...'); $ret[$name] = lang('no entries found, try again ...');
} else { }
else
{
$ret[$name.'_OK'] = ''; // flag we have something so select $ret[$name.'_OK'] = ''; // flag we have something so select
$ret[$name] = "<select name=\"id_$name\">\n"; $ret[$name] = "<select name=\"id_$name\">\n";
while (list( $id,$text ) = each( $content )) { while (list( $id,$text ) = each( $content ))
{
$ret[$name] .= "<option value=\"$id\">" . $phpgw->strip_html($text) . "\n"; $ret[$name] .= "<option value=\"$id\">" . $phpgw->strip_html($text) . "\n";
} }
$ret[$name] .= '<option value="0">'.lang('none')."\n"; $ret[$name] .= '<option value="0">'.lang('none')."\n";
$ret[$name] .= '</select>'; $ret[$name] .= '</select>';
} }
} else { }
if ($id_name) { else
{
if ($id_name)
{
$ret[$name] = $content . "\n<input type=\"hidden\" name=\"id_$name\" value=\"$id_name\">"; $ret[$name] = $content . "\n<input type=\"hidden\" name=\"id_$name\" value=\"$id_name\">";
} else { }
else
{
$ret[$name] = "<span class=note>$note</span>"; $ret[$name] = "<span class=note>$note</span>";
} }
} }
$ret[$name.'_nojs'] = $ret[$name.'_nojs'] =
"<noscript>\n". "<noscript>\n".
" <input name=\"query_$name\" value=\"\" size=10> &nbsp; <input type=\"submit\" value=\"?\">\n". " <input name=\"query_$name\" value=\"\" size=10> &nbsp; <input type=\"submit\" value=\"?\">\n".
"</noscript>"; "</noscript>";
// print_r($ret); // print_r($ret);
return $ret; return $ret;
} }
function addr2name( $addr ) { function addr2name( $addr )
global $phpgw; {
$name = $addr['n_family']; $name = $addr['n_family'];
if ($addr['n_given']) if ($addr['n_given'])
{
$name .= ', '.$addr['n_given']; $name .= ', '.$addr['n_given'];
else }
else
{
if ($addr['n_prefix']) if ($addr['n_prefix'])
{
$name .= ', '.$addr['n_prefix']; $name .= ', '.$addr['n_prefix'];
}
}
if ($addr['org_name']) if ($addr['org_name'])
{
$name = $addr['org_name'].': '.$name; $name = $addr['org_name'].': '.$name;
return $phpgw->strip_html($name); }
return $phpgw->strip_html($name);
} }
/* /*
@ -126,80 +143,109 @@
* Note As query's for an address are submitted, you have to check $query_XXX if it is a search or a regular submit (!$query_string) * Note As query's for an address are submitted, you have to check $query_XXX if it is a search or a regular submit (!$query_string)
*/ */
function getAddress( $name,$id_name,$query_name,$title='') { function getAddress( $name,$id_name,$query_name,$title='')
{
// echo "<p>getAddress('$name',$id_name,'$query_name','$title')</p>"; // echo "<p>getAddress('$name',$id_name,'$query_name','$title')</p>";
global $phpgw; if ($id_name || $query_name)
{
if ($id_name || $query_name) {
$contacts = createobject('phpgwapi.contacts'); $contacts = createobject('phpgwapi.contacts');
if ($query_name) { if ($query_name)
{
$addrs = $contacts->read( 0,0,'',$query_name,'','DESC','org_name,n_family,n_given' ); $addrs = $contacts->read( 0,0,'',$query_name,'','DESC','org_name,n_family,n_given' );
$content = array( ); $content = array( );
while ($addrs && list( $key,$addr ) = each( $addrs )) { while ($addrs && list( $key,$addr ) = each( $addrs ))
{
$content[$addr['id']] = $this->addr2name( $addr ); $content[$addr['id']] = $this->addr2name( $addr );
} }
} else { }
else
{
list( $addr ) = $contacts->read_single_entry( $id_name ); list( $addr ) = $contacts->read_single_entry( $id_name );
if (count($addr)) { if (count($addr))
{
$content = $this->addr2name( $addr ); $content = $this->addr2name( $addr );
} }
} }
} }
if (!$title) $title = lang('Addressbook'); if (!$title)
{
$title = lang('Addressbook');
}
return $this->getId($name,$title,lang('Pattern for Search in Addressbook'),$id_name,$content,lang('use Button to search for Address')); return $this->getId($name,$title,lang('Pattern for Search in Addressbook'),$id_name,$content,lang('use Button to search for Address'));
} }
function addr2email( $addr,$home='' ) { function addr2email( $addr,$home='' )
global $phpgw; {
if (!is_array($addr))
if (!is_array($addr)) { {
$home = substr($addr,-1) == 'h'; $home = substr($addr,-1) == 'h';
$contacts = createobject('phpgwapi.contacts'); $contacts = createobject('phpgwapi.contacts');
list( $addr ) = $contacts->read_single_entry( intval($addr) ); list( $addr ) = $contacts->read_single_entry( intval($addr) );
} }
if ($home) $home = '_home'; if ($home)
{
$home = '_home';
}
if (!count($addr) || !$addr['email'.$home]) if (!count($addr) || !$addr['email'.$home])
{
return False; return False;
}
if ($addr['n_given']) if ($addr['n_given'])
{
$name = $addr['n_given']; $name = $addr['n_given'];
else }
else
{
if ($addr['n_prefix']) if ($addr['n_prefix'])
{
$name = $addr['n_prefix']; $name = $addr['n_prefix'];
}
}
$name .= ($name ? ' ' : '') . $addr['n_family']; $name .= ($name ? ' ' : '') . $addr['n_family'];
return $name.' <'.$addr['email'.$home].'>'; return $name.' <'.$addr['email'.$home].'>';
} }
function getEmail( $name,$id_name,$query_name,$title='') { function getEmail( $name,$id_name,$query_name,$title='')
{
// echo "<p>getAddress('$name',$id_name,'$query_name','$title')</p>"; // echo "<p>getAddress('$name',$id_name,'$query_name','$title')</p>";
global $phpgw; if ($id_name || $query_name)
{
if ($id_name || $query_name) {
$contacts = createobject('phpgwapi.contacts'); $contacts = createobject('phpgwapi.contacts');
if ($query_name) { if ($query_name)
{
$addrs = $contacts->read( 0,0,'',$query_name,'','DESC','org_name,n_family,n_given' ); $addrs = $contacts->read( 0,0,'',$query_name,'','DESC','org_name,n_family,n_given' );
$content = array( ); $content = array( );
while ($addrs && list( $key,$addr ) = each( $addrs )) { while ($addrs && list( $key,$addr ) = each( $addrs ))
{
if ($addr['email']) if ($addr['email'])
{
$content[$addr['id']] = $this->addr2email( $addr ); $content[$addr['id']] = $this->addr2email( $addr );
}
if ($addr['email_home']) if ($addr['email_home'])
{
$content[$addr['id'].'h'] = $this->addr2email( $addr,'_home' ); $content[$addr['id'].'h'] = $this->addr2email( $addr,'_home' );
}
} }
} else { }
else
{
$content = $this->addr2email( $id_name ); $content = $this->addr2email( $id_name );
} }
} }
if (!$title) $title = lang('Addressbook'); if (!$title)
{
$title = lang('Addressbook');
}
return $this->getId($name,$title,lang('Pattern for Search in Addressbook'),$id_name,$content); return $this->getId($name,$title,lang('Pattern for Search in Addressbook'),$id_name,$content);
} }
/* /*
* Function Allows you to show and select an project from the projects-app (works with and without javascript !!!) * Function Allows you to show and select an project from the projects-app (works with and without javascript !!!)
* Parameters $name string with basename of all variables (not to conflict with the name other template or submitted vars !!!) * Parameters $name string with basename of all variables (not to conflict with the name other template or submitted vars !!!)
@ -211,31 +257,38 @@
* *
* Note As query's for an address are submitted, you have to check $query_XXX if it is a search or a regular submit (!$query_string) * Note As query's for an address are submitted, you have to check $query_XXX if it is a search or a regular submit (!$query_string)
*/ */
function getProject( $name,$id_name,$query_name,$title='' )
function getProject( $name,$id_name,$query_name,$title='' ) { {
// echo "<p>getProject('$name',$id_name,'$query_name','$title')</p>"; // echo "<p>getProject('$name',$id_name,'$query_name','$title')</p>";
global $phpgw; if ($id_name || $query_name)
{
if ($id_name || $query_name) {
$projects = createobject('projects.projects'); $projects = createobject('projects.projects');
if ($query_name) { if ($query_name)
{
$projs = $projects->read_projects( 0,0,$query_name,'','','','',0 ); $projs = $projects->read_projects( 0,0,$query_name,'','','','',0 );
$content = array(); $content = array();
while ($projs && list( $key,$proj ) = each( $projs )) { while ($projs && list( $key,$proj ) = each( $projs ))
{
$content[$proj['id']] = $proj['title']; $content[$proj['id']] = $proj['title'];
} }
} else { }
else
{
list( $proj ) = $projects->read_single_project( $id_name ); list( $proj ) = $projects->read_single_project( $id_name );
if (count($proj)) { if (count($proj))
{
$content = $proj['title']; $content = $proj['title'];
// $customer_id = $proj['customer']; // $customer_id = $proj['customer'];
} }
} }
} }
if (!$title) $title = lang('Project'); if (!$title)
{
$title = lang('Project');
}
return $this->getId($name,$title,lang('Pattern for Search in Projects'),$id_name,$content,lang('use Button to search for Project')); return $this->getId($name,$title,lang('Pattern for Search in Projects'),$id_name,$content,lang('use Button to search for Project'));
} }
/* /*
* Function: Allows to show and select one item from an array * Function: Allows to show and select one item from an array
@ -246,39 +299,47 @@
* On submit $XXX is the key of the selected item (XXX is the content of $name) * On submit $XXX is the key of the selected item (XXX is the content of $name)
* Returns: string to set for a template or to echo into html page * Returns: string to set for a template or to echo into html page
*/ */
function getArrayItem($name, $key, $arr=0,$no_lang=0)
function getArrayItem($name, $key, $arr=0,$no_lang=0) { // should be in class common.sbox { // should be in class common.sbox
if (!is_array($arr)) if (!is_array($arr))
{
$arr = array('no','yes'); $arr = array('no','yes');
}
$out = "<select name=\"$name\">\n"; $out = "<select name=\"$name\">\n";
while (list($k,$text) = each($arr)) {
$out .= '<option value="'.$k.'"';
if($k == $key) $out .= " SELECTED";
$out .= ">" . ($no_lang ? $text : lang($text)) . "</option>\n";
}
$out .= "</select>\n";
return $out;
}
function accountInfo($id,$account_data=0,$longname=0) { while (list($k,$text) = each($arr))
global $phpgw; {
$out .= '<option value="'.$k.'"';
if($k == $key) $out .= " SELECTED";
$out .= ">" . ($no_lang ? $text : lang($text)) . "</option>\n";
}
$out .= "</select>\n";
if (!$id) return '&nbsp;'; return $out;
}
if (!is_array($account_data)) {
function accountInfo($id,$account_data=0,$longname=0)
{
if (!$id)
{
return '&nbsp;';
}
if (!is_array($account_data))
{
$accounts = createobject('phpgwapi.accounts',$id); $accounts = createobject('phpgwapi.accounts',$id);
$accounts->db = $phpgw->db; $accounts->db = $phpgw->db;
$accounts->read_repository(); $accounts->read_repository();
$account_data = $accounts->data; $account_data = $accounts->data;
} }
if ($longnames) if ($longnames)
return $account_data['firstname'].' '.$account_data['lastname']; {
return $account_data['firstname'].' '.$account_data['lastname'];
return $account_data['account_lid']; }
}
return $account_data['account_lid'];
}
/* /*
* Function: Allows to select one accountname * Function: Allows to select one accountname
@ -287,33 +348,35 @@
* $id2text($id,$acct_data) fkt that translates account_id $id in text to show * $id2text($id,$acct_data) fkt that translates account_id $id in text to show
*/ */
function getAccount($name,$id,$longnames=0) { function getAccount($name,$id,$longnames=0)
global $phpgw; {
$accounts = createobject('phpgwapi.accounts'); $accounts = createobject('phpgwapi.accounts');
$accounts->db = $phpgw->db; $accounts->db = $phpgw->db;
$accs = $accounts->get_list('accounts'); $accs = $accounts->get_list('accounts');
$aarr = Array(lang('not assigned')); $aarr = Array(lang('not assigned'));
while ($a = current($accs)) { while ($a = current($accs))
{
$aarr[$a['account_id']] = $this->accountInfo($a['account_id'],$a,$longnames); $aarr[$a['account_id']] = $this->accountInfo($a['account_id'],$a,$longnames);
next($accs); next($accs);
} }
return $this->getArrayItem($name,$id,$aarr,1); return $this->getArrayItem($name,$id,$aarr,1);
} }
function getDate($n_year,$n_month,$n_day,$date) function getDate($n_year,$n_month,$n_day,$date)
{ {
global $phpgw; if (!$date)
{
if (!$date) { $day = $month = $year = 0;
$day = $month = $year = 0; }
} else { else
{
$day = date('d',$date); $day = date('d',$date);
$month = date('m',$date); $month = date('m',$date);
$year = date('Y',$date); $year = date('Y',$date);
} }
return $phpgw->common->dateformatorder($this->getYears($n_year,$year), return $phpgw->common->dateformatorder($this->getYears($n_year,$year),
$this->getMonthText($n_month,$month), $this->getMonthText($n_month,$month),
$this->getDays($n_day,$day)); $this->getDays($n_day,$day));
} }
} }