source: branches/2.4/prototype/modules/catalog/interceptors/CatalogDBMapping.php @ 6754

Revision 6754, 3.3 KB checked in by niltonneto, 12 years ago (diff)

Ticket #0000 - Copiadas as alterações do Trunk. Versão final da 2.4.1.

  • Property svn:executable set to *
Line 
1 <?php
2
3//Definindo Constantes
4require_once ROOTPATH . '/modules/catalog/constants.php';
5
6use prototype\api\Config as Config;
7
8    /**
9     * Métodos que são chamados conforme definições no arquivo contact.ini & contactGroup.ini
10     *
11     * @license    http://www.gnu.org/copyleft/gpl.html GPL
12     * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br)
13     * @sponsor    Caixa Econômica Federal
14     * @author     José Vicente Tezza Jr. e Gustavo Pereira dos Santos Stabelini
15     * @return     Métodos que são chamados conforme definições no arquivo contact.ini & contactGroup.ini
16     * @access     public
17     * */
18         
19class CatalogDBMapping {
20
21
22    public function findConnections(&$uri, &$params, &$criteria, $original) {
23
24                if(count($params)>0 && isset($params[0]['id'])){
25                        for($i=0; $i < count($params); $i++){
26                                //Retorna o telefone e o e-mail padrao de um determinado contato
27                                $sql = ' SELECT phpgw_cc_contact_conns.id_typeof_contact_connection as type, phpgw_cc_connections.connection_value as value '
28                                        .'FROM phpgw_cc_contact_conns '
29                                        .'JOIN phpgw_cc_connections '
30                                        .'ON (phpgw_cc_connections.id_connection = phpgw_cc_contact_conns.id_connection) '
31                                        .'WHERE phpgw_cc_contact_conns.id_contact = ' . $params[$i]['id'] . ' AND '
32                                        .'phpgw_cc_connections.connection_is_default = TRUE ';
33
34                                $array = Controller::service('PostgreSQL')->execResultSql($sql);
35                                if(count($array)>0){
36                                        foreach($array as $connection){
37                                                switch($connection['type']){
38                                                        case TYPE_EMAIL         : $params[$i][INDEX_EMAIL]      = $connection['value']; break;
39                                                        case TYPE_TELEPHONE     : $params[$i][INDEX_TELEPHONE]  = $connection['value']; break;
40                                                        default                 : $params[$i][INDEX_EMAIL] = $params[$i][INDEX_TELEPHONE] = '';
41                                                }
42
43                                        }
44                                }
45                                else{
46                                        $params[$i][INDEX_EMAIL] = $params[$i][INDEX_TELEPHONE] = '';
47                                }
48                        }
49                }
50    }
51
52        public function findGroupConnections(&$uri, &$params, &$criteria, $original) {
53
54                if(count($params)>0 && isset($params[0]['id'])){
55                $z = 0;
56                $count = count($params);
57                for($i=0; $i < $count; $i++){
58                                //Retorna o telefone e o e-mail padrao de um determinado contato
59                                $sql = 'SELECT contato.names_ordered as name, contato.id_contact as id, conexao.connection_value as value '
60                                        .'FROM phpgw_cc_groups grupo '
61                                        .'JOIN phpgw_cc_contact_grps grupo_contato '
62                                        .'ON (grupo.id_group = grupo_contato.id_group) '
63                                        .'JOIN phpgw_cc_connections conexao '
64                                        .'ON (grupo_contato.id_connection = conexao.id_connection) '
65                                        .'JOIN phpgw_cc_contact_conns conexaoCon '
66                                        .'ON (conexao.id_connection = conexaoCon.id_connection) '
67                                        .'JOIN phpgw_cc_contact contato '
68                                        .'ON (contato.id_contact = conexaoCon.id_contact) '
69                                        .'WHERE grupo.id_group = ' . $params[$i]['id'] . ' AND '
70                                        .'conexao.connection_is_default = TRUE';
71
72                                $array = Controller::service('PostgreSQL')->execResultSql($sql);
73
74                                if(count($array)>0){
75                                        $params[$i]['contacts'][$z] = array();
76                                        foreach($array as $connection){
77                                                $params[$i]['contacts'][$z]['id'] = $connection['id'];         
78                                                $params[$i]['contacts'][$z]['name'] = $connection['name'];                                                     
79                                                $params[$i]['contacts'][$z][INDEX_EMAIL] = $connection['value'];                                                       
80                                                $z++;
81                                        }
82                                }
83                                else{                                   
84                                        $params[$i]['contacts'] = null;
85                                }
86                        }
87                }
88    }
89       
90}
91
92?>
Note: See TracBrowser for help on using the repository browser.