RoundCube에 global address book 플러그인을 찾았습니다. iRedMail입니다. 나는 윈도우와 일하고 있기 때문에 내 전자 메일 서버로 hMailServer을 사용하고있다. 나는 여전히이 플러그인을 시도하고 기본 필드 (이름, 이메일 및 도메인)을 사용하여 문제없이 작동합니다. 나는 vcard 필드를 테이블에 추가했지만 문서에서 찾을 수는 없습니다. 나는 또한 sql_global_backend.php
을 쥐게하고 rcube_contacts.php
에서 원래 오는 몇 가지 코드를 추가Roundcube-SQL-Global-Address-Books 맞춤 vCard
public function get_record($id, $assoc=false) {
$db = rcube::get_instance()->db;
$db->query('SELECT * FROM global_addressbook WHERE `ID`=?', $id);
if ($sql_arr = $db->fetch_assoc()) {
// $sql_arr['email'] = explode(',', $sql_arr['email']); // edited
$record = $this->convert_db_data($sql_arr); // edited
$this->result = new rcube_result_set(1);
$this->result->add($record); // edited
}
return $assoc && $record ? $record : $this->result;
}
/**
* Convert data stored in the database into output format
* Note: this code is originally from rcube_contacts.php
*/
private function convert_db_data($sql_arr)
{
$record = array();
$record['ID'] = $sql_arr[$this->primary_key];
if ($sql_arr['vcard']) {
unset($sql_arr['email']);
$vcard = new rcube_vcard($sql_arr['vcard'], RCUBE_CHARSET, false, $this->vcard_fieldmap);
$record += $vcard->get_assoc() + $sql_arr;
}
else {
$record += $sql_arr;
$record['email'] = explode(self::SEPARATOR, $record['email']);
$record['email'] = array_map('trim', $record['email']);
}
return $record;
}
이 코드는 vCard를 필드를 읽을 수있는보기 (roundcube의 템플릿을) 할 수 있습니다. 그러나 모든 것을 읽을 수는 없습니다.
BEGIN:VCARD
VERSION:3.0
N:John;Doe;;; // can read
FN:John Doe // can read
EMAIL;TYPE=INTERNET;TYPE=WORK:[email protected] // can read
TITLE:Programmer // can't read
ORG:John Doe Org // can't read
X-DEPARTMENT:Management System Department // can't read
TEL:09123456789 // can't read
END:VCARD
업데이트]
이 같은 내 테이블 global_addressbook
보기 :
_______________________________________________________________________________________________________________
| | | | | | | |
| ID | name | email | firstname | surname | domain | vcard |
|____|__________|______________|___________|_________|_________|_______________________________________________|
| | | | | | | |
| 1 | John Doe | [email protected] | John | doe | doe.com | BEGIN:VCARD |
| | | | | | | VERSION:3.0 |
| N:John;Doe;;; |
| FN:John Doe |
| EMAIL;TYPE=INTERNET;TYPE=WORK:[email protected] |
| TITLE:Programmer |
| ORG:John Doe Org |
| X-DEPARTMENT:Management System Department |
| TEL:09123456789 |
| END:VCARD |
그리고는 RoundCube보기에서 다음과 같이 :
convert_db_data() 함수에 사용되는 rcube_vcard() 함수를 게시 할 수 있습니까? –
@KetanMalhotra. 코드는 수천 줄에 이릅니다. 지난 주에 내 'RoundCube'를 다운로드했는데 다시 코딩하지 않았습니다. 다운로드 할 수 있으면 같은 것을 볼 수 있습니다. –