Changeset 3548 in subversion
- Timestamp:
- Apr 23, 2010 5:25:22 AM (3 years ago)
- Location:
- trunk/plugins
- Files:
-
- 2 edited
-
virtuser_file/virtuser_file.php (modified) (4 diffs)
-
virtuser_query/virtuser_query.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/plugins/virtuser_file/virtuser_file.php
r3352 r3548 19 19 function init() 20 20 { 21 $this->app = rcmail::get_instance();22 $this->file = $this->app->config->get('virtuser_file');21 $this->app = rcmail::get_instance(); 22 $this->file = $this->app->config->get('virtuser_file'); 23 23 24 if ($this->file) {25 $this->add_hook('user2email', array($this, 'user2email'));26 $this->add_hook('email2user', array($this, 'email2user'));27 }24 if ($this->file) { 25 $this->add_hook('user2email', array($this, 'user2email')); 26 $this->add_hook('email2user', array($this, 'email2user')); 27 } 28 28 } 29 29 … … 34 34 { 35 35 $r = $this->findinvirtual('/\s' . preg_quote($p['user'], '/') . '\s*$/'); 36 $result = array();36 $result = array(); 37 37 38 for ($i=0; $i<count($r); $i++)39 {40 $arr = preg_split('/\s+/', $r[$i]);38 for ($i=0; $i<count($r); $i++) 39 { 40 $arr = preg_split('/\s+/', $r[$i]); 41 41 42 if (count($arr) > 0 && strpos($arr[0], '@')) 43 { 44 $result[] = trim(str_replace('\\@', '@', $arr[0])); 42 if (count($arr) > 0 && strpos($arr[0], '@')) { 43 $result[] = trim(str_replace('\\@', '@', $arr[0])); 45 44 46 if ($p['first']) { 47 $p['email'] = $result[0]; 48 break; 49 } 45 if ($p['first']) { 46 $p['email'] = $result[0]; 47 break; 48 } 49 } 50 50 } 51 }52 51 53 $p['email'] = empty($result) ? NULL : $result;52 $p['email'] = empty($result) ? NULL : $result; 54 53 55 return $p;54 return $p; 56 55 } 57 56 … … 61 60 function email2user($p) 62 61 { 63 $r = $this->findinvirtual('/^' . preg_quote($p['email'], '/') . '\s/');62 $r = $this->findinvirtual('/^' . preg_quote($p['email'], '/') . '\s/'); 64 63 65 for ($i=0; $i<count($r); $i++) 66 { 67 $arr = preg_split('/\s+/', trim($r[$i])); 64 for ($i=0; $i<count($r); $i++) { 65 $arr = preg_split('/\s+/', trim($r[$i])); 68 66 69 if (count($arr) > 0) { 70 $p['user'] = trim($arr[count($arr)-1]); 71 break; 67 if (count($arr) > 0) { 68 $p['user'] = trim($arr[count($arr)-1]); 69 break; 70 } 72 71 } 73 }74 72 75 return $p;73 return $p; 76 74 } 77 75 … … 84 82 private function findinvirtual($pattern) 85 83 { 86 $result = array();87 $virtual = null;84 $result = array(); 85 $virtual = null; 88 86 89 if ($this->file)90 $virtual = file($virtuser_file);87 if ($this->file) 88 $virtual = file($virtuser_file); 91 89 92 if (empty($virtual)) 90 if (empty($virtual)) 91 return $result; 92 93 // check each line for matches 94 foreach ($virtual as $line) { 95 $line = trim($line); 96 if (empty($line) || $line[0]=='#') 97 continue; 98 99 if (preg_match($pattern, $line)) 100 $result[] = $line; 101 } 102 93 103 return $result; 94 95 // check each line for matches96 foreach ($virtual as $line)97 {98 $line = trim($line);99 if (empty($line) || $line[0]=='#')100 continue;101 102 if (preg_match($pattern, $line))103 $result[] = $line;104 }105 106 return $result;107 104 } 108 105 -
trunk/plugins/virtuser_query/virtuser_query.php
r3547 r3548 23 23 function init() 24 24 { 25 $this->app = rcmail::get_instance();26 $this->query = $this->app->config->get('virtuser_query');25 $this->app = rcmail::get_instance(); 26 $this->query = $this->app->config->get('virtuser_query'); 27 27 28 if ($this->query) {29 $this->add_hook('user2email', array($this, 'user2email'));30 // $this->add_hook('email2user', array($this, 'email2user'));31 }28 if ($this->query) { 29 $this->add_hook('user2email', array($this, 'user2email')); 30 // $this->add_hook('email2user', array($this, 'email2user')); 31 } 32 32 } 33 33 … … 37 37 function user2email($p) 38 38 { 39 $rcmail = rcmail::get_instance(); 40 $dbh = $rcmail->get_dbh(); 39 $dbh = $this->app->get_dbh(); 41 40 42 $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($p['user']), $this->query));41 $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escapeSimple($p['user']), $this->query)); 43 42 44 while ($sql_arr = $dbh->fetch_array($sql_result)) {45 if (strpos($sql_arr[0], '@')) {46 if ($p['extended'] && count($sql_arr) > 1) {47 $result[] = array(48 'email'=> $sql_arr[0],49 'name'=> $sql_arr[1],50 'organization' => $sql_arr[2],51 'reply-to'=> $sql_arr[3],52 'bcc'=> $sql_arr[4],53 'signature' => $sql_arr[5],54 'html_signature' => (int)$sql_arr[6],55 );56 }57 else {58 $result[] = $sql_arr[0];59 }43 while ($sql_arr = $dbh->fetch_array($sql_result)) { 44 if (strpos($sql_arr[0], '@')) { 45 if ($p['extended'] && count($sql_arr) > 1) { 46 $result[] = array( 47 'email' => $sql_arr[0], 48 'name' => $sql_arr[1], 49 'organization' => $sql_arr[2], 50 'reply-to' => $sql_arr[3], 51 'bcc' => $sql_arr[4], 52 'signature' => $sql_arr[5], 53 'html_signature' => (int)$sql_arr[6], 54 ); 55 } 56 else { 57 $result[] = $sql_arr[0]; 58 } 60 59 61 if ($p['first']) 62 break; 60 if ($p['first']) 61 break; 62 } 63 63 } 64 }65 64 66 $p['email'] = $result;65 $p['email'] = $result; 67 66 68 return $p;67 return $p; 69 68 } 70 69
Note: See TracChangeset
for help on using the changeset viewer.
