Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
DhtmlxScheduler [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
DhtmlxScheduler


 
streuner
14-11-2011, 15:36 
 
Hi,

ich weiß, dass man "üblicherweise" in dem jeweiligen Fachforum seine Frage stellt, aber 1. ist die Resonanz dort mehr als mau und 2. scheint es dieses Feature so "noch" nicht zu geben wobei ich auch denke, dass man das mit PHP lösen kann.

Foglender Sachverhalt: ich habe 2 Ansichten des Kalenders (einmal Personal und einmal Aufträge). Wenn ich einen Auftrag erstelle kann ich mir die entsprechenden Mitarbeiter über checkboxen dazu auswählen. Im Personalkalender kann ich für jeden Mitarbeiter zusätzlich "Krankheit, Schulung oder Urlaub" einfügen. Die Daten werden in 3 Tabellen gespeichert user( user_id, firstname, lastname, kuerzel), event_user (event_user_id, event_id, user_id') und event_shared(event_id, start_date, end_date...).

Wenn ich jetzt einen neuen Termin eintrage und aus meiner checkboxliste einen oder mehrere Mitarbeiter auswähle, soll beim abspeichern geprüft werden, ob dieser Mitarbeiter nicht auf ner Schulung, Krank oder im Urlaub ist und dann eine Meldung ausgeben. Der dhtmlxscheduler bietet eine Kollsionsprüfung an, aber "nur" allg., dass sich ein Event nicht mit dem anderen überschneiden darf!

Meine Idee ist es jetzt, über das dazugehörige PHP File eine Prüfung durchzuführen und ggf. true oder false zurück zugeben - müsste ja dann eigentlich funktionieren. Folgender code:


require_once ('codebase/connector/scheduler_connector.php');
require_once('codebase/connector/crosslink_connector.php');
require_once ('samples/common/config.php');

$res=mysql_connect($server, $user, $pass);
mysql_select_db($db_name);

$cross = new CrossOptionsConnector($res);
$cross->dynamic_loading(true);
$cross->options->render_table("user","user_id","user_id(value),kuerzel(label)");
$cross->link->render_table("event_user","event_id", "user_id,event_id");


$scheduler = new SchedulerConnector($res);

$scheduler->set_options("user_id", $cross->options);

$scheduler->render_table("events_shared","event_id","start_date,end_date,text,user,anzahluser,details,reccuring,customer,event_type,userId");
"Eigentlich" müsste ich beim anlegen nur die übergebenen UserId's prüfen mit der event_user (wenn dort vorhanden), dann in die event_shared Tabelle gehen und prüfen ob der dort angegebene Zeitraum start_date und end_date direkt dazwischen liegt. Richtiger Ansatz? Hab mir das jetzt mit einem SQL INNER JOIN Statement mit nem SUB Select vorgestellt vorgestellt....für andere/bessere Ansätze bin ich gerne offen - danke schon mal:-)!

mfg streuner

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:51 Uhr.