Hi,
I am planning to write a plugin to reproduce the "collected addressbook" feature of thunderbird (ie: each email address you send a mail to is collected in a special automatic addressbook, usefull for completion).
I need to store the completed addresses somewhere of course, watching at some code and existing plugins, I see 3 ways to do that :
solution as "explicit" contacts will get lost in collected addresses.
need to use serializing/unserializing, that is bad for performances (& with a quicly growing collected list...).
solution at the moment but I wonder if there is some caveats adding "freely" tables to the roundcube base...
... Can you guys give me some advice on that ?
Thanks for your help & anyway for that great piece of code !
Jocelyn _______________________________________________ List info: http://lists.roundcube.net/dev/
IMO you can add a separate table into RoundCube database without a problem.
Personally I would prefer to add just a "type" field to the default addressbook table to indicate that the contact was added automatically.
It would also fit my plans to introduce global (editable/write protected) contacts by a future plugin.
So lets say ....
Finally we would need some kind of filter for the differnt types in the contacts list and an option in the preferences page to discard auto-saving on a per user level.
-Roland
----- Original Message ----- From: "Jocelyn Delalande" jocelyn.lists08@crapouillou.net To: dev@lists.roundcube.net Sent: Thursday, June 04, 2009 2:16 AM Subject: [RCD] sql extra table ?
Hi,
I am planning to write a plugin to reproduce the "collected addressbook" feature of thunderbird (ie: each email address you send a mail to is collected in a special automatic addressbook, usefull for completion).
I need to store the completed addresses somewhere of course, watching at some code and existing plugins, I see 3 ways to do that :
- store it into the main address book of the user, but it's not a good
solution as "explicit" contacts will get lost in collected addresses.
- store it in the "cache" table, but I then have only one field and I
need to use serializing/unserializing, that is bad for performances (& with a quicly growing collected list...).
- creating a new SQL table for the plugin, that would be the cleaner
solution at the moment but I wonder if there is some caveats adding "freely" tables to the roundcube base...
... Can you guys give me some advice on that ?
Thanks for your help & anyway for that great piece of code !
Jocelyn _______________________________________________ List info: http://lists.roundcube.net/dev/
List info: http://lists.roundcube.net/dev/
On Thu, 4 Jun 2009 07:00:01 +0200, "Roland Liebl" roland@roland-liebl.de wrote:
IMO you can add a separate table into RoundCube database without a
problem.
Ok, I will use that method. Another question is : how is a plugin supposed to manage it's "initial setup" ; it's to say here, creating the dedicated table. I didn't fond any plugin installation script example in the SVN. Is there any way to trigger an action when a plugin is enabled/disabled in config ?
Personally I would prefer to add just a "type" field to the default addressbook table to indicate that the contact was added automatically.
It would also fit my plans to introduce global (editable/write protected)
contacts by a future plugin.
So lets say ....
- type 0 or NULL = indiviually created
- type 1 = automatically created
- type 2 = global editable
- type 3 = global write protected
I prefer at the moment using a separate table, as it don't change the existing addressbook behavior. And well... it's much more simpler for me. But your proposal is interesting as it enable to "promote" a contact to "individually created" if the user wants to add extra info to a collected contact. It also make the "conflicts" (doubles) between collected and other contact sources. It may be the best solution but would require work in roundcube code, and I just want to write a plugin.
Anyway, thanks for your explanations Roland.
Regards,
Jocelyn
----- Original Message ----- From: "Jocelyn Delalande" jocelyn.lists08@crapouillou.net To: dev@lists.roundcube.net Sent: Thursday, June 04, 2009 2:16 AM Subject: [RCD] sql extra table ?
Hi,
I am planning to write a plugin to reproduce the "collected addressbook" feature of thunderbird (ie: each email address you send a mail to is collected in a special automatic addressbook, usefull for completion).
I need to store the completed addresses somewhere of course, watching at some code and existing plugins, I see 3 ways to do that :
- store it into the main address book of the user, but it's not a good
solution as "explicit" contacts will get lost in collected addresses.
- store it in the "cache" table, but I then have only one field and I
need to use serializing/unserializing, that is bad for performances (& with a quicly growing collected list...).
- creating a new SQL table for the plugin, that would be the cleaner
solution at the moment but I wonder if there is some caveats adding "freely" tables to the roundcube base...
... Can you guys give me some advice on that ?
Thanks for your help & anyway for that great piece of code !
Jocelyn _______________________________________________ List info: http://lists.roundcube.net/dev/
Jocelyn Delalande wrote:
Another question is : how is a plugin supposed to manage it's "initial setup" ; it's to say here, creating the dedicated table. I didn't fond any plugin installation script example in the SVN. Is there any way to trigger an action when a plugin is enabled/disabled in config ?
No, there doesn't yet exist such a plugin installation script. We're trying to set up a pear-like installer but for now you best create a Makefile and/or put a README file in your plugin folder which describes the steps to be done to set-up the plugin.
Regards, Thomas _______________________________________________ List info: http://lists.roundcube.net/dev/