Hello All,
sorry, but I couldn't resist to choose that name!
For anyone willing to import contacts from an IMP/Horde db, this is a little and dirty plugin...
Very, very, very basic.
Code:<?php /** * IMPorter Plugin * * Populate user address book with Turba address book from IMP * * @version 1.0 * @author Manuele Cappelleri * * Example configuration: * $_turba_db_name = ""; * $_turba_db_host = ""; * $_turba_db_type = ""; * $_turba_db_username = ""; * $_turba_db_password = ""; * $_turba_db_table_name = ""; * */ class imp_orter extends rcube_plugin { function init() { $this->_turba_db_name = "XX"; $this->_turba_db_host = "XX"; $this->_turba_db_type = "XX"; $this->_turba_db_username = "XX"; $this->_turba_db_password = "XX"; $this->_turba_db_table_name = "turba_objects"; $this->_log_file = "/tmp/imp_orter.log"; $this->add_hook('create_identity', array($this, 'importAll')); } function importAll($args) { $rcmail = rcmail::get_instance(); $ser = serialize($rcmail->user); $curUser = $rcmail->user; $username = $curUser->data['username']; $userid = $curUser->ID; $contacts = $rcmail->get_address_book(0, true); // $dsn = $this->_turba_db_type . "://" . $this->_turba_db_username . ":" . $this->_turba_db_password . "@" . $this->_turba_db_host . "/" . $this->_turba_db_name; $options = array( 'result_buffering' => false, ); $db =& MDB2::factory($dsn, $options); if (PEAR::isError($db)) { die($db->getMessage()); } else { $db->setFetchMode(MDB2_FETCHMODE_ASSOC); } $sql = "SELECT object_name,object_alias,object_email FROM " . $this->_turba_db_table_name . " WHERE owner_id = '" . $username . "'"; $this->debug("DB Query: $sql"); $q = $db->query($sql); if (PEAR::isError($q)) { die($q->getMessage()); } while($r = $q->fetchRow()) { $rec = array(); $rec['email'] = $r['object_email']; if ($r['object_alias'] != '') { $rec['name'] = ltrim(rtrim($r['object_alias'])); } else { $rec['name'] = ltrim(rtrim($r['object_name'])); } $tmp = $r['object_name']; $this->debug("Name is now: $tmp "); $tmp = ucwords(strtolower(ltrim(rtrim($tmp)))); $this->debug("Name is now: $tmp "); $parts = explode(" ",$tmp); $this->debug("Name converted to: " . serialize($parts)); $rec['firstname'] = $parts[0]; for ($i = 1; $i < count($parts); $i++) { $rec['surname'] .= $parts[$i]; if ($i < count($parts)-1) { $rec['surname'] .= " "; } } $this->debug($username . " <- " . serialize($rec)); $contacts->insert($rec, true); } return $args; } function debug($string) { if ($this->_log_file) { $log = fopen($this->_log_file,'a'); fwrite($log,"\n".$string,strlen("\n".$string)); fclose($log); } } } ?>
There are currently 1 users browsing this thread. (0 members and 1 guests)