Roundcube Community Forum

 

Calendar plugin (fork from Rosali) - problem with jqueryui plugin detection

Started by Jack!, September 21, 2010, 10:35:47 AM

Previous topic - Next topic

Jack!

Hi,

I've updated my calendar plugin from Rosali's trunk version 3878.2 to the latest trunk version 3973. For some reason I get the following error all the time now: "jqueryui plugin is not installed. Get it here.". If I edit the file calendar.php and disable the jqueryui plugin check (line 199 and further) everything works fine. It doesn't help to disable all plugins but jqueryui and calendar in file main.inc.php. Any ideas how to fix this without touching calendar.php? Many thanks.

Regards,

Jack

Configuration: Windows 2008 R2 - IIS - hMailServer - Roundcube v4.0 stable

// List of active plugins
$rcmail_config['plugins'] = array(
'jqueryui',
'calendar',
'compose_addressbook',
'compose_newwindow',
'emoticons',
'globaladdressbook',
'keyboard_shortcuts',
'markasjunk',
'message_highlight',
'sticky_notes',
'zipdownload',
'contextmenu'
);

rosali

Hmm... It works for me just fine. I have added the check because people missed this requirements. Could you add some debug code ... Something like print_r ... Unfortunately I don't have access to my code at the moment to give more detailed advice.
Regards,
Rosali

Jack!

Hi Rosali,

Using trunk 3973 I've edited calendar.php as requested. I've added the line (without quotes) "print_r ($plugins);" after line 198 so the code snippet reads now:

  function startup($template = 'calendar.calendar') {
    $rcmail = rcmail::get_instance();
    $plugins = array_flip($rcmail->config->get('plugins'));
   print_r ($plugins);
    if(empty($plugins['jqueryui'])){
      die('jqueryui plugin is not installed. Get it http://underwa.ter.net/roundcube-plugins">here.');
    }    
    $temparr = explode(".", $template);


Output on screen if running the calendar plugin this way within Roundcube:

Array ( [jqueryui] => 0 [calendar] => 1 [compose_addressbook] => 2 [compose_newwindow] => 3 [emoticons] => 4 [globaladdressbook] => 5 [keyboard_shortcuts] => 6 [markasjunk] => 7 [message_highlight] => 8 [sticky_notes] => 9 [zipdownload] => 10 [contextmenu] => 11 ) jqueryui plugin is not installed. Get it here.

As you can see, it does mention the jqueryui plugin in variable $plugins. I assume there's something wrong with the plugin check itself (line   ... if(empty($plugins['jqueryui'])...)?

Having said that, I also installed the newest version of the sticky_notes plugin (trunk 3973). Same problem, same solution that works for me: disable the jqueryui plugin check in file sticky_notes.php.

Regards,

Jack!

Jack!

Hi Rosali,

Concerning file calendar.php, it needs some further testing (I don't know if the code change does make any sense) but if I change line 199

from: if(empty($plugins['jqueryui'])){

into: if(!array_key_exists('jqueryui', $plugins)){

everythings just works fine without disabling the plugin check anymore.

Regards,

Jack

rosali

My bad ... my check fails if jqueryui is fist plugin ... jqueryui => 0 ... and that's 'empty'. I didn't use 'array_key_exists' due to performance concerns. I'll modify the check asap.
Regards,
Rosali


drewb0y

That check confused me too. I thought it would be best to have jqueryui be first in the array. But it kept saying not installed. I moved jqueryui to be the 3rd in the list and it worked fine.

Thanks!