Scheduler plugin and Joomla 1.7

Joomla 1.7 contains some changes in user groups logic (such as multiple groups for each user).
So here is plugin version which implements detecting user group from list of user groups.
New user type in scheduler access configuration was added - Custom user group.
It’s used for user which doesn’t have any default group.
com_scheduler.zip (770 KB)

I keep getting the ‘old’ access rights page, it doesn’t show the new user groups at all.

Ok, first I love this component for Joomla, the best I’ve seen so far…but it still has lots of issues:

  • Access levels do not correspond with Joomla 1. 7 ACL system
  • Backend Save & CLose button, doesn’t ‘Close’, but only saves.
  • Agenda only shows the current year, not the items for next year
  • When double clicking to edit an event, the save works, but the change is not apparent and the modal window doesn’t close
  • The above scheduler.zip doesn’t work, it doesn’t allow adding events, the joomla_com_scheduler_v23.zip file does allow adding and editing.

This all tested on a Joomla 1.7.3 setup.

I hope you get this sorted as it has lots of potential.

Just to add, about the agenda not showing events for next year, I tried your solution to add:

To the html file, but that made things worse, it actually made all my recurring events last till 2099, which messed up the calendar quite a bit.

Hi, sorry for the delay in answering.
Thanks for you feedback.

You may configure agenda_end time which you like using this option, not only showing all events.

Could you describe more in details? It looks like it doesn’t joomla 1.7 issue.

We will discuss and process all other issues which you describe.
Thanks one more time.

I have the same problems as others but espacially

  • When double clicking to edit an event, nothing happens? I can click as much as I want but nothing happens??

Do I have to make something special to get this working??

I am using it with the default parameters (Version 2.3 - 2009-10 )

This all tested on a Joomla 1.7.3 setup.

Can anybody help???

Well maybe a small demo of two bugs is more explaining :wink:

http://www.alfsoft.com/demos/scheduler_demo.html

Alfred

spiritwalker, Alfred, could you provide link to your scheduler?
Alfred, thanks for video.
Such behaviour is incorrect. It does not depend of Joomla version.
Does any javascript error occur?
Spiritwalker, the same question for you - do you have any javascript error?

Here is my testsiet:

cantina.notebookmobil.ch/cantina … ,mode=week

I have no idea what I have to do? Do I have to login in the Frontend? And if so when du I get all those editing tools Alfred has in his video???

I do not see any java-script error! I see nothing at all???

Rayno,

I will pm you the details, it’s not a public site…

Alfred

Language string missing from the ini files.

Hi, spiritwalker.
Could you create test-user and send me in PM login/pass?
I can’t create/edit/delete events, because it’s not allowed for guests.

mrALF, PM was sent to you.

Hi radyno,
PM was sent to you.

hi Radyno,

I had a quick look at the scheduler model code and it is not J1.7 code, you are using a lot of deprecated stuff.

using DS is deprecated
using = & JFactory:: is deprecated
$user->usertype does no longer exist because users don’t have usertype but are member of a group, so the $this->getuser() function doesn’t work.

Alfred

Hi,
thanks for advices. Component for joomla 1.7 requires a lot of changes and in the first place access logc.
The main problem is that user groups may be renamed, especially for non-english localizations.
But admin panel has hard-coded user groups. So when user access is checking his group should be the same as according group in admin panel.

In version which is provided in this topic model use another code for getUser method:

protected function getUser() {
		/*! in Joomla 1.6 user can have several groups with their permissions
		 * to detect one group we will use the highest groups
		 * the highest group is the last one.
		 */
		$user =& JFactory::getUser();
		$groups = $user->groups;
		$gr = Array();
		foreach ($groups as $k => $v)
			if ($v <= 8) $gr[$k] = $v;

		if (count($gr) > 0) {
			$groups = $gr;
			$keys = array_values($groups);
			$values = array_keys($groups);
			$groups = array_combine($keys, $values);
			$max = max($keys);
			$usertype = $groups[$max];
		} else {
			// this user type is used when user doesn't have any default type
			$usertype = 'custom';
		}


		switch($usertype) {
			case '':
				$usertype = 'guests';
				break;
			case 'Super Users':
				$usertype = 'superadministrator';
				break;
			default:
				$usertype = strtolower($usertype);
			}
		return $usertype;
	}

So it works, but with limitations: user should have such usergroup name as in scheduler admin panel, all other users will have just ability to view events without editing.

Version with correct access logic will be provided later.

Thanks, I see the logic now and adjusted the code to fit my own needs for now.

To answer your other question from the PM:

Save doesn’t work, but doesn’t either…the only way to close the modal window is pressing Cancel.

Hi,
have you customized scheduler?
Maybe you attached “onEventSave” event which blocks closing lightbox?

Is there a new Joomla Plugin for scheduler available? The Version joomla_com_scheduler_v23 still doesn’t work on my webiste: cantina.notebookmobil.ch/cantina … mode=month

I only can edit events from the backend, what is not very usefull for me! Are there any solutions for this bug?

Regards.

Andy

Hi all,
I managed to install dhtmlxScheduler in my Joomla 2.5.1 and make it work.
The link to the live website currently is: ict.unimo.it/v2 (if you want to take a look).

For the reference I had to do some modifications to make it work:

  1. installed the package posted by radyno at the beginning of this forum thread.

  2. in components/com_scheduler/models/scheduler.php and in components/com_scheduler/controller.php I replaced the getUser() function with the quick&dirty fix:

    protected function getUser() {
    // HACK BY FRANCESCO MONTORSI TILL A VERSION COMPATIBLE WITH JOOMLA 2.5 IS NOT AVAILABLE!!!
    switch($user->username) {
    case ‘userNameOfTheSuperAdminGuy’:
    $usertype = ‘superadministrator’;
    break;
    default:
    $usertype = ‘guests’;
    }
    return $usertype;
    }

    since otherwise I was unable to make modifications to the calendar, even messing up with all access privileges of the dhtmlxScheduler in the backend control panel of Joomla.

  3. to put the calendar in a Joomla module (i.e. embed the calendar into another article page), from the Joomla backend Extension Manager->Module Manager choose New->Custom HTML module and then copy&paste the attached file contents.
    IMPORTANT: disable any kind of WYSYWIG editor, it will mess up the HTML, JavaScript & PHP code!!

  4. note that in the attached file contents, I had to add the following PHP code:

    {source}

    <?php $user = & JFactory::getUser(); if ($user->username == 'userNameOfTheSuperAdminGuy') echo "scheduler.config.readonly = false;"; else echo "scheduler.config.readonly = true;"; ?>

    {/source}

    this is because otherwise EVERY user viewing the page was APPARENTLY capable of modifying the calendar. By APPARENTLY I mean that e.g. visiting the website as a guest user, and double-clicking I could create the event in the local browser but of course such event was not stored in the database of the website (because guests have no such permissions as can be seen by the getUser() I modded before).

IMPORTANT: the {source} thing is a Sourcerer thing (see extensions.joomla.org/extensions … ntent/5051) which allows me to put PHP code in Joomla articles avoiding that Joomla automatically strips it off.

Hopefully this post will be useful to somebody else, and perhaps to the developers of this great calendar module!!! :slight_smile: