| | |
| | | /** |
| | | * Initial startup function |
| | | * to register session, create database and imap connections |
| | | * |
| | | * @todo Remove global vars $DB, $USER |
| | | */ |
| | | private function startup() |
| | | { |
| | |
| | | } |
| | | |
| | | // connect to database |
| | | $GLOBALS['DB'] = $this->get_dbh(); |
| | | $this->get_dbh(); |
| | | |
| | | // set global object for backward compatibility |
| | | $GLOBALS['DB'] = $this->db; |
| | | |
| | | // start session |
| | | $this->session_init(); |
| | |
| | | { |
| | | if (is_object($user)) { |
| | | $this->user = $user; |
| | | |
| | | // set global object for backward compatibility |
| | | $GLOBALS['USER'] = $this->user; |
| | | |
| | | // overwrite config with user preferences |
| | |
| | | |
| | | return $this->db; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * Get global handle for memcache access |
| | | * |
| | |
| | | * Create global IMAP object and connect to server |
| | | * |
| | | * @param boolean True if connection should be established |
| | | * @todo Remove global $IMAP |
| | | */ |
| | | public function imap_init($connect = false) |
| | | { |
| | |
| | | $this->imap->skip_deleted = $this->config->get('skip_deleted'); |
| | | |
| | | // enable caching of imap data |
| | | $imap_cache = $this->config->get('imap_cache'); |
| | | $imap_cache = $this->config->get('imap_cache'); |
| | | $messages_cache = $this->config->get('messages_cache'); |
| | | // for backward compatybility |
| | | if ($imap_cache === null && $messages_cache === null && $this->config->get('enable_caching')) { |
| | | $imap_cache = 'db'; |
| | | $messages_cache = true; |
| | | } |
| | | |
| | | if ($imap_cache) |
| | | $this->imap->set_caching($imap_cache); |
| | | if ($messages_cache) |
| | | $this->imap->set_messages_caching(true); |
| | | |
| | | // set pagesize from config |
| | | $this->imap->set_pagesize($this->config->get('pagesize', 50)); |
| | | $pagesize = $this->config->get('mail_pagesize'); |
| | | if (!$pagesize) { |
| | | $pagesize = $this->config->get('pagesize', 50); |
| | | } |
| | | $this->imap->set_pagesize($pagesize); |
| | | |
| | | // Setting root and delimiter before establishing the connection |
| | | // can save time detecting them using NAMESPACE and LIST |
| | | // set connection options |
| | | $options = array( |
| | | 'auth_type' => $this->config->get('imap_auth_type', 'check'), |
| | | 'auth_cid' => $this->config->get('imap_auth_cid'), |
| | |
| | | * @param string IMAP user name |
| | | * @param string IMAP password |
| | | * @param string IMAP host |
| | | * |
| | | * @return boolean True on success, False on failure |
| | | */ |
| | | function login($username, $pass, $host=NULL) |
| | | { |
| | | $user = NULL; |
| | | if (empty($username)) { |
| | | return false; |
| | | } |
| | | |
| | | $config = $this->config->all(); |
| | | |
| | | if (!$host) |
| | |
| | | if (is_string($attrib)) |
| | | $attrib = array('name' => $attrib); |
| | | |
| | | $nr = is_numeric($attrib['nr']) ? $attrib['nr'] : 1; |
| | | $name = $attrib['name'] ? $attrib['name'] : ''; |
| | | |
| | | // attrib contain text values: use them from now |
| | |
| | | $this->texts[$name] = $setval; |
| | | |
| | | // check for text with domain |
| | | if ($domain && ($text_item = $this->texts[$domain.'.'.$name])) |
| | | if ($domain && ($text = $this->texts[$domain.'.'.$name])) |
| | | ; |
| | | // text does not exist |
| | | else if (!($text_item = $this->texts[$name])) { |
| | | else if (!($text = $this->texts[$name])) { |
| | | return "[$name]"; |
| | | } |
| | | |
| | | // make text item array |
| | | $a_text_item = is_array($text_item) ? $text_item : array('single' => $text_item); |
| | | |
| | | // decide which text to use |
| | | if ($nr == 1) { |
| | | $text = $a_text_item['single']; |
| | | } |
| | | else if ($nr > 0) { |
| | | $text = $a_text_item['multiple']; |
| | | } |
| | | else if ($nr == 0) { |
| | | if ($a_text_item['none']) |
| | | $text = $a_text_item['none']; |
| | | else if ($a_text_item['single']) |
| | | $text = $a_text_item['single']; |
| | | else if ($a_text_item['multiple']) |
| | | $text = $a_text_item['multiple']; |
| | | } |
| | | |
| | | // default text is single |
| | | if ($text == '') { |
| | | $text = $a_text_item['single']; |
| | | } |
| | | |
| | | // replace vars in text |
| | |
| | | else if ($attrib['lowercase']) |
| | | return mb_strtolower($text); |
| | | |
| | | return $text; |
| | | return strtr($text, array('\n' => "\n")); |
| | | } |
| | | |
| | | |
| | |
| | | $this->smtp->disconnect(); |
| | | |
| | | foreach ($this->address_books as $book) { |
| | | console('---------------'); |
| | | if (is_object($book) && is_a($book, 'rcube_addressbook')) |
| | | $book->close(); |
| | | } |