This is my quick and dirty method (It only a very quick solution and take 1 hours to modify so please im sorry if this code very dirty)
1. ALTER TABLE `roundcubemail`.`contacts` ADD COLUMN `shared` char(2) NOT NULL DEFAULT 'on';
2. Modify program/include/rcube_contacts.inc become like this
On function list_records
.....
WHERE del<>1
AND ( user_id=? OR shared='on' )".
($this->filter ? " AND (".$this->filter.")" : "") .
" ORDER BY name",
....
On function count()
...
WHERE del<>1
AND ( user_id=? OR shared='on' )".
($this->filter ? " AND (".$this->filter.")" : ""),
...
On function get_record()
...
WHERE contact_id=?
AND ( user_id=? OR shared='on' )
AND del<>1",
...
3. Modify program/steps/addressbook/edit.inc So there is additional Share Address Book Checkbox options
(around line 64)
$a_show_cols = array('name', 'firstname', 'surname', 'email');
Become
$a_show_cols = array('name', 'firstname', 'surname', 'email','shared');
(around line 69)
$out .= sprintf(" | %s |
\n",
$attrib['id'],
Q(rcube_label($col)),
$value);
Become
if ($col == 'shared') {
if ($record[$col] == 'on') $cek = "checked"; else $cek = " ";
$out .= " | |
";
} else {
$out .= sprintf(" | %s |
\n",
$attrib['id'],
Q(rcube_label($col)),
$value);
}
4. Modify function insert on program/include/rcube_contacts.inc
var $table_cols = array('name', 'email', 'firstname', 'surname');
Become ....
var $table_cols = array('name', 'email', 'firstname', 'surname','shared');
$this->db->query(
"INSERT INTO ".$this->db_name."
(user_id, changed, del, ".join(', ', $a_insert_cols).")
VALUES (?, ".$this->db->now().", 0, ".join(', ', $a_insert_values).")",
$this->user_id);
Become ........
if ($a_insert_values[4] == "'on'") {
$this->db->query(
"INSERT INTO ".$this->db_name."
(user_id, changed, del, ".join(', ', $a_insert_cols).")
VALUES (?, ".$this->db->now().", 0, ".join(', ', $a_insert_values).")",
$this->user_id);
} else {
$this->db->query(
"INSERT INTO ".$this->db_name."
(user_id, changed, shared, del, ".join(', ', $a_insert_cols).")
VALUES (?, ".$this->db->now().", '1', 0, ".join(', ', $a_insert_values).")",
$this->user_id);
}
Regards
RUdy Cayadi