Hello RoundCube Devs,
I'm a TinyMCE plugin developer and have modified RoundCube to make it
possible for developers like myself to extend the functionality of
TinyMCE through your plugin API.
The main thing TinyMCE plugin developers need, is access to the
properties passed to TinyMCE.init(). What I've done is modified
editor.js to do an rcmail.triggerEvent('tinymce_init', event). The
event object contains a member called options with the TinyMCE
options. There are other members too for the arguments to the
rcmail_editor_init function.
To make this work properly, it's important that plugins get a chance
to load and register their listener before rcmail_editor_init is
called. As such, I've also modified main.inc to call
rcmail_editor_init at the bottom of the JS (using the 'foot'
priority).
To apply the patch:
roundcube/$ patch -p0 tinymce_plugin_api.diff
And to demonstrate this patch, I've created a plugin for After the
Deadline. After the Deadline is a software service that checks
spelling, style, and grammar in TinyMCE. The plugin is available at
http://www.afterthedeadline.com/download.slp?platform=RoundCube you
can learn more about After the Deadline at
http://www.afterthedeadline.com/features.slp
-- Raphael
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/N6/ukdpVJJX/tinymce_plugin_api.diff
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi everyone,
I run a software service that checks spelling, style, and grammar. It
also does misused word detection ala Google wave.
[http://www.afterthedeadline.com/features.slp] I'm interested in
supporting RoundCube but before I go further, I wanted to get a gauge
on your interest level.
I looked at the plugin API and did not find support to modify the
editor settings. If I were to go forth, I'd submit a patch for
program/js/editor.js to modify the TinyMCE settings and likely a patch
to add an admin interface to let users unignore errors/provide an API
key when TinyMCE is enabled. If there is a clean way to modify the
TinyMCE editor settings via a plugin, I'm open to this as well.
If there is interest, let me know, and I'll hack something together
for you to look at. If not, no problem :)
-- Raphael
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi,
this plugin adds a configurable taskbar to login page.
It is useful if RoundCube is embedded into another web app
to provide a nav out link, a link to tocs or to inject buttons
to navigate into plugins from the login page,
f.e. self-registration, forgot password, etc.
I plan to extend the plugin to manipulate the regular taskbar to
inject buttons for plugin navigation as well (f.e. nav into calendar).
Nothing fancy, because all those modifications could be done
by editing the skin aswell. But I like it. It makes it easy to update and it
is useful for users without any coding skills to provide default hooks
for future plugins.
Any comments are welcome!
Regards,
Roland
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/Qw/WQGWpIdf/taskbar.zip
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi Devs,
is there any interest to have a online roundcube demo?
If so, I'd be glad to host one based on recent trunk.
Regards,
Roland
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hello everybody,
I have wanted to add a small feature to roundcube.
When I drag and drop messages, I wanted to automatically expand folders
when possible.
* First, I have read the developments guidelines, and
saw this: Indentation consists of _4 spaces_ per level and no tabs!
*
Second, I have opened apps.js to add the functionality, and saw a lot of
tabs. I have replaced them with spaces, so, you are not obliged to accept
my patch...
Anyway, in this patch, I restart the drag & drop process just
after expanding a collapsed folder when possible. However, to avoid any
interference with current existing code, I have copied the drag_start
function to a drag_restart function. I am not familiar with this JavaScript
code, so, feel free to remove everything not needed into the function
drag_restart.
I'm sure we can also use a timeout, but I try to keep
things as simple as possible for the moment.
The next step, if possible,
is to scroll the folders list when reaching the bottom or the top of the
folders list, when dragging messages. I think it will be useful for all
people who have an interminable folder's list like me...
ATB.
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/9G/bPX8oCbj/apps.js.patch
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi, the function list_identities() confuses me a little. The
description claims it returns an array with identities (which would be
what id like), but it's actually returning an sql result, which you
have to pull through an sql fetch yourself. Looking through the code
for the use of list_identities() all instances are indeed calling
their own fetch_assoc on it. Why isnt the sql fetching done inside
list_identities() so that function actually returns an array?
Regards,
Cor
_______________________________________________
List info: http://lists.roundcube.net/dev/
Attached patch is a body prefetching proof of concept.
Currently to display a message at least two FETCHes are called.
The first for headers and bodystructure and the second for message body.
In most cases we can skip second call and fetch message body in first
call adding "BODY.PEEK[1]<0.2048>" to the list.
On my server I've got a negligible gain, because of very quick FETCH
(dovecot 1.1) and not havy load, but I like to know how about yours.
We could apply this as an option.
p.s. you can increase prefetch size changing 2048 to e.g. 4096 in the patch.
Currently it's hardcoded.
--
Aleksander 'A.L.E.C' Machniak http://alec.pl gg:2275252
LAN Management System Developer http://lms.org.pl
Roundcube Webmail Project Developer http://roundcube.net
--- 8< --- detachments --- 8< ---
The following attachments have been detached and are available for viewing.
http://detached.gigo.com/rc/1L/8jKjt4zs/prefetch.patch
Only click these links if you trust the sender, as well as this message.
--- 8< --- detachments --- 8< ---
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hi.
I installed roundcube 0.2.1 today and I'm quite fond of it. Only problem
I see, i can't use my local MTA (currently esmtp) to send my mails. So I
decided to hack a bit around. Should be quite quick, as roundcube
incorporates most of the hard work already.
If there is interest in it I can provide the result as a patch against
0.2.2? If I've overlooked a feature enabling me to do it more simply
(using mail() is not an option for me), I'd be grateful for a hint.
With kind regards,
Borg³
_______________________________________________
List info: http://lists.roundcube.net/dev/
Hello everybody,
This is a simple patch for the LDAP address book implementation, for
roundcube.
The patch extract first name and last name to create new entry into the
address book.
Some email addresses are written using the notation
* First Name Last Name
* Last Name, First Name
This simple patch create defaults values for first name and last name, and
use them when not specified, instead of using email for default first
name/last name.
----------------------------------------------------------------------------
421,437d420
< // Create a default value for first name and last name
< // if the cn field contains ',' or ' '
< $defValues = array() ;
< if ( strpos($newentry['cn'],',') !== false ) {
< list($lastName,$firstName) = array_filter(explode(',',$newentry['cn']));
< $defValues['sn'] = trim($lastName) ;
< $defValues['givenName'] = trim($firstName) ;
<
< # Reorder first and last name
< $newentry['cn'] = "$firstName $lastName" ;
< }
< elseif ( strpos($newentry['cn'],' ') !== false ) {
< list($firstName,$lastName) = array_filter(explode(' ',$newentry['cn'],
2));
< $defValues['sn'] = trim($lastName) ;
< $defValues['givenName'] = trim($firstName) ;
< }
<
443,446c426
< if ( isset($defValues[$fld]) )
< $newentry[$fld] = $defValues[$fld] ;
< else
< $newentry[$fld] = $newentry[$this->_map_field("email")];
---
> $newentry[$fld] = $newentry[$this->_map_field("email")]
----------------------------------------------------------------------------
I hope it will be useful for somebody as it is for me.
André.
_______________________________________________
List info: http://lists.roundcube.net/dev/