acs_mail_lite::get_address_array (private)
acs_mail_lite::get_address_array -addresses addresses
Defined in packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl
Checks if passed variable is already an array of emails, user_names and user_ids. If not, get the additional data from the db and return the full array.
- Switches:
- Options:
- -addresses (required)
- -addresses
- variable to checked for array
- Returns:
- array of emails, user_names and user_ids to be used for the mail procedures
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: if {[catch {array set address_array $addresses}] || [lsort [array names address_array]] ne [list email name user_id] } { # # Either user just passed a normal address-list or # user passed an array, but forgot to provide user_ids # or user_names, so we have to get this data from the db # if {![info exists address_array(email)]} { # so user passed on a normal address-list set address_array(email) $addresses } set address_list [list] foreach email $address_array(email) { # strip out only the emails from address-list lappend address_list [string tolower [parse_email_address -email $email]] } array unset address_array # now get the user_names and user_ids foreach email $address_list { set email [string tolower $email] if {[db_0or1row get_user_name_and_id { select person_id as user_id, first_names || ' ' || last_name as user_name from parties, persons where email = :email and party_id = person_id order by party_id desc fetch first 1 rows only }]} { lappend address_array(email) $email lappend address_array(name) $user_name lappend address_array(user_id) $user_id } else { lappend address_array(email) $email lappend address_array(name) "" lappend address_array(user_id) "" } } } return [array get address_array]Generic XQL file: packages/acs-mail-lite/tcl/acs-mail-lite-procs.xql
PostgreSQL XQL file: packages/acs-mail-lite/tcl/acs-mail-lite-procs-postgresql.xql
Oracle XQL file: packages/acs-mail-lite/tcl/acs-mail-lite-procs-oracle.xql