Revision: 6458 http://care2002.svn.sourceforge.net/care2002/?rev=6458&view=rev Author: mizuko Date: 2010-06-30 11:03:53 +0000 (Wed, 30 Jun 2010)
Log Message: ----------- see #54 Modified Paths: -------------- care2x/branches/gettext/main/op-docu.php care2x/branches/gettext/modules/calendar/calendar-options.php care2x/branches/gettext/modules/nursing_or/nursing-or-roster-plan.php care2x/branches/gettext/modules/nursing_or/nursing-or-roster-quickview.php Added Paths: ----------- care2x/branches/gettext/modules/nursing_or/nursing-or-roster.php Removed Paths: ------------- care2x/branches/gettext/modules/nursing_or/nursing-or-dienstplan.php Modified: care2x/branches/gettext/main/op-docu.php =================================================================== --- care2x/branches/gettext/main/op-docu.php 2010-06-30 11:02:50 UTC (rev 6457) +++ care2x/branches/gettext/main/op-docu.php 2010-06-30 11:03:53 UTC (rev 6458) @@ -113,7 +113,7 @@ '<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#dddddd border=0> <TR> <TD bgColor=#ffffff><font face=arial,verdana size=2> - \xBB <A href="'.$root_path.'modules/nursing_or/nursing-or-dienstplan.php'. URL_REDIRECT_APPEND.'&retpath=menu">'. $LDSee .'</A> + \xBB <A href="'.$root_path.'modules/nursing_or/nursing-or-roster.php'. URL_REDIRECT_APPEND.'&retpath=menu">'. $LDSee .'</A> \xBB <A href="'.$root_path.'modules/nursing_or/nursing-or-main-pass.php'.URL_REDIRECT_APPEND.'&retpath=menu&target=dutyplan">'.$LDCreate . '/' . $LDUpdate .'</A> \xBB <A href="'.$root_path.'modules/nursing_or/nursing-or-main-pass.php'. URL_REDIRECT_APPEND.'&target=setpersonal&retpath=menu">' . $LDCreatePersonList .'</A> </font></TD> @@ -130,12 +130,12 @@ $smarty->assign('LDORAnaQuickView',"<a href=\"".$root_path."modules/nursing_or/nursing-or-roster-quickview.php".URL_APPEND."&retpath=menu&hilitedept=39\">$LDQuickView</a>"); $smarty->assign('LDQviewTxtAna',$LDQviewTxtAna); //AnaDienstplan -$smarty->assign('LDORAnaNOCScheduler',"<a href=\"".$root_path."modules/nursing_or/nursing-or-dienstplan.php".URL_APPEND."&dept_nr=39&retpath=menu\" >$LDORNOC $LDScheduler</a>"); +$smarty->assign('LDORAnaNOCScheduler',"<a href=\"".$root_path."modules/nursing_or/nursing-or-roster.php".URL_APPEND."&dept_nr=39&retpath=menu\" >$LDORNOC $LDScheduler</a>"); $smarty->assign('LDORAnaNOCSchedulerMenu', '<TABLE cellSpacing=1 cellPadding=5 width="100%" bgColor=#dddddd border=0> <TR> <TD bgColor=#ffffff><font face=arial,verdana size=2> - \xBB <A href="' . $root_path . 'modules/nursing_or/nursing-or-dienstplan.php'.URL_REDIRECT_APPEND.'">'. $LDSee .'</A> + \xBB <A href="' . $root_path . 'modules/nursing_or/nursing-or-roster.php'.URL_REDIRECT_APPEND.'">'. $LDSee .'</A> \xBB <A href="' . $root_path . 'modules/nursing_or/nursing-or-main-pass.php'.URL_REDIRECT_APPEND.'">'. $LDCreate . '/' . $LDUpdate .'</A> </font></TD> </TR> Modified: care2x/branches/gettext/modules/calendar/calendar-options.php =================================================================== --- care2x/branches/gettext/modules/calendar/calendar-options.php 2010-06-30 11:02:50 UTC (rev 6457) +++ care2x/branches/gettext/modules/calendar/calendar-options.php 2010-06-30 11:03:53 UTC (rev 6458) @@ -131,7 +131,7 @@ --> <li><a href="<?php echo $root_path ?>modules/nursing_or/nursing-or-roster-day.php<?php echo URL_APPEND."&dept_nr=$dept_nr&pday=$day&pmonth=$month&pyear=$year" ?>&retpath=calendar_opt"><?php echo "$LDDutyPerson $LDOn (".formatDate2Local($i_date,$date_format).")" ?></a></li> <!-- - <li><a href="<?php echo $root_path ?>modules/nursing_or/nursing-or-dienstplan.php<?php echo URL_APPEND."&dept_nr=$dept_nr&cday=$day&cmonth=$month&cyear=$year&pmonth=".((int)$month)."&pyear=".((int)$year) ?>&noedit=1&retpath=calendar_opt" onClick="window.resizeTo(600,700)"><?php echo "$LDDutyPerson ($LDMonth)" ?></a></li> + <li><a href="<?php echo $root_path ?>modules/nursing_or/nursing-or-roster.php<?php echo URL_APPEND."&dept_nr=$dept_nr&cday=$day&cmonth=$month&cyear=$year&pmonth=".((int)$month)."&pyear=".((int)$year) ?>&noedit=1&retpath=calendar_opt" onClick="window.resizeTo(600,700)"><?php echo "$LDDutyPerson ($LDMonth)" ?></a></li> <li><a href="<?php echo $root_path ?>modules/doctors/doctors-rosterplan.php<?php echo URL_APPEND."&dept_nr=$dept_nr&cday=$day&cmonth=$month&cyear=$year&pmonth=".((int)$month)."&pyear=".((int)$year) ?>&noedit=1&retpath=calendar_opt" onClick="window.resizeTo(600,700)"><?php echo "$LDDocsOnDuty (".formatDate2Local($i_date,$date_format).")" ?></a></li> --> <?php if($i_date==date('Y-m-d')) Deleted: care2x/branches/gettext/modules/nursing_or/nursing-or-dienstplan.php =================================================================== --- care2x/branches/gettext/modules/nursing_or/nursing-or-dienstplan.php 2010-06-30 11:02:50 UTC (rev 6457) +++ care2x/branches/gettext/modules/nursing_or/nursing-or-dienstplan.php 2010-06-30 11:03:53 UTC (rev 6458) @@ -1,189 +0,0 @@ -<?php -error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR); -require('./roots.php'); -require($root_path.'include/helpers/inc_environment_global.php'); -/** -* CARE2X Integrated Hospital Information System Deployment 2.1 - 2004-10-02 -* GNU General Public License -* Copyright 2002,2003,2004,2005 Elpidio Latorilla -* elpi...@care2x.org, -* -* See the file "copy_notice.txt" for the licence notice -*/ -$lang_tables[]='or.php'; -$lang_tables[]='departments.php'; -define('LANG_FILE','doctors.php'); -define('NO_2LEVEL_CHK',1); -require_once($root_path.'include/helpers/inc_front_chain_lang.php'); - -setcookie(username,""); -setcookie(ck_plan,"1"); -if($dept=="") $dept="plast"; -if($pmonth=="") $pmonth=date('n'); -if($pyear=="") $pyear=date('Y'); -$thisfile=basename(__FILE__); - -require_once($root_path.'modules/dept_admin/model/class_department.php'); -$dept_obj=new Department; -$dept_obj->preloadDept($dept_nr); - -require_once($root_path.'modules/personell_admin/model/class_personell.php'); -$pers_obj=new Personell; -$dutyplan=&$pers_obj->getNOCDutyplan($dept_nr,$pyear,$pmonth); - - -$firstday=date("w",mktime(0,0,0,$pmonth,1,$pyear)); - -$maxdays=date("t",mktime(0,0,0,$pmonth,1,$pyear)); - - -switch($retpath) -{ - case "menu": $rettarget=$root_path.'main/op-docu.php'.URL_APPEND; break; - case "qview": $rettarget='nursing-or-roster-quickview.php'.URL_APPEND.'&hilitedept='.$dept_nr; break; - default: $rettarget="javascript:window.history.back()"; -} - -# Prepare page title - $sTitle = "$LDORNOC::$LDDutyPlan::"; - $LDvar=$dept_obj->LDvar(); - if(isset($$LDvar)&&$$LDvar) $sTitle = $sTitle.$$LDvar; - else $sTitle = $sTitle.$dept_obj->FormalName(); - -# Start Smarty templating here - /** - * LOAD Smarty - */ - - # Note: it is advisable to load this after the inc_front_chain_lang.php so - # that the smarty script can use the user configured template theme - - require_once($root_path.'gui/smarty_template/smarty_care.class.php'); - $smarty = new smarty_care('common'); - -# Title in toolbar - $smarty->assign('sToolbarTitle',$sTitle); - - # href for help button - $smarty->assign('pbHelp',"javascript:gethelp('op_duty.php','show','$rows')"); - - # href for close button - $smarty->assign('breakfile',$rettarget); - - # Window bar title - $smarty->assign('sWindowTitle',$sTitle); - - # Collect extra javascript - - ob_start(); - -?> - -<script language="javascript"> - - var urlholder; - var infowinflag=0; - -function popinfo(l) -{ - w=window.screen.width; - h=window.screen.height; - ww=400; - wh=400; - urlholder="nursing-or-roster-popinfo.php<?php echo URL_REDIRECT_APPEND ?>&nr="+l+"&dept_nr=<?php echo $dept_nr ?>&route=validroute&user=<?php echo $aufnahme_user.'"' ?>; - - infowin<?php echo $sid ?>=window.open(urlholder,"infowin<?php echo $sid ?>","width=" + ww + ",height=" + wh +",menubar=no,resizable=yes,scrollbars=yes"); - window.infowin<?php echo $sid ?>.moveTo((w/2)+20,(h/2)-(wh/2)); - -} -</script> - -<?php - - $sTemp=ob_get_contents(); - ob_end_clean(); - $smarty->append('JavaScript',$sTemp); - - $smarty->assign('LDStandbyPerson',$LDStandbyPerson); - $smarty->assign('LDOnCall',$LDOnCall); - -# Prepare the month links -# Previous month -$sBuffer = '<a href="'.$thisfile.URL_APPEND.'&retpath='.$retpath.'&dept_nr='.$dept_nr.'&pmonth='; - -if ($pmonth==1) $sBuffer = $sBuffer.'12'.'&pyear='.($pyear-1).'">'; - else $sBuffer = $sBuffer.($pmonth-1).'&pyear='.$pyear.'">'; -if ($pmonth==1) $sBuffer = $sBuffer.$monat[12]; - else $sBuffer = $sBuffer.$monat[$pmonth-1]; - $smarty->assign('sPrevMonth',$sBuffer.'</a>'); - - # This month -$smarty->assign('sThisMonth',ucfirst($monat[$pmonth]).' '.$pyear); - -# Next month -$sBuffer ='<a href="'.$thisfile.URL_APPEND.'&retpath='.$retpath.'&dept_nr='.$dept_nr.'&pmonth='; -if ($pmonth==12) $sBuffer = $sBuffer.'1'.'&pyear='.($pyear+1).'">'; - else $sBuffer = $sBuffer.($pmonth+1).'&pyear='.$pyear.'">'; -if ($pmonth==12) $sBuffer = $sBuffer.$monat[1]; - else $sBuffer = $sBuffer.$monat[$pmonth+1]; - -$smarty->assign('sNextMonth',$sBuffer.'</a>'); - -# Assign control links -$smarty->assign('sNewPlan',"<a href=\"nursing-or-main-pass.php".URL_APPEND."&target=dutyplan&dept_nr=$dept_nr&pmonth=$pmonth&pyear=$pyear&retpath=$retpath\"><img ".createLDImgSrc($root_path,'newplan.gif','0')." alt=\"$LDNewPlan\"></a>"); -$smarty->assign('sCancel',"<a href=\"$rettarget\"><img ".createLDImgSrc($root_path,'close2.gif','0')." alt=\"$LDClosePlan\"></a>"); - - # Buffer form - - ob_start(); - - -for ($i=1,$n=0,$wd=$firstday;$i<=$maxdays;$i++,$n++,$wd++){ - //$wd=weekday($i,$pmonth,$pyear); - switch ($wd){ - //case 6: $backcolor="bgcolor=#ffffcc";break; - //case 0: $backcolor="bgcolor=#ffff00";break; - //default: $backcolor="bgcolor=white"; - case 6: $backcolor='class="saturday"';break; - case 0: $backcolor='class="sunday"';break; - default: $backcolor='class="weekday"'; - } - - $aelems=unserialize($dutyplan['duty_1_txt']); - $relems=unserialize($dutyplan['duty_2_txt']); - $a_pnr=unserialize($dutyplan['duty_1_pnr']); - $r_pnr=unserialize($dutyplan['duty_2_pnr']); - - echo ' - <tr > - <td height=5 '.$backcolor.'>'.$i.' - </td> - <td height=5 '.$backcolor.'>'; - //if (!$wd) echo '<font color=red>'; - echo $LDShortDay[$wd].' - </td> - <td height=5 '.$backcolor.'>'; - echo ' <a href="javascript:popinfo(\''.$a_pnr['ha'.$n].'\')">'.$aelems['a'.$n].'</a> - </td> - <td height=5 '.$backcolor.'>'; - echo ' <a href="javascript:popinfo(\''.$r_pnr['hr'.$n].'\')">'.$relems['r'.$n].'</a> - </td> - </tr>'; - if ($wd==6) $wd=-1; -} - -$sTemp = ob_get_contents(); - ob_end_clean(); - -# Assign the duty plan rows to sub frame template - -$smarty->assign('sDutyRows',$sTemp); - - $smarty->assign('sMainBlockIncludeFile','common/duty_plan.tpl'); - - /** - * show Template - */ - $smarty->display('common/mainframe.tpl'); - -?> Modified: care2x/branches/gettext/modules/nursing_or/nursing-or-roster-plan.php =================================================================== --- care2x/branches/gettext/modules/nursing_or/nursing-or-roster-plan.php 2010-06-30 11:02:50 UTC (rev 6457) +++ care2x/branches/gettext/modules/nursing_or/nursing-or-roster-plan.php 2010-06-30 11:03:53 UTC (rev 6458) @@ -22,7 +22,7 @@ } $thisfile=basename(__FILE__); -$breakfile="nursing-or-dienstplan.php".URL_APPEND."&dept_nr=$dept_nr&pmonth=$pmonth&pyear=$pyear&retpath=$retpath"; +$breakfile="nursing-or-roster.php".URL_APPEND."&dept_nr=$dept_nr&pmonth=$pmonth&pyear=$pyear&retpath=$retpath"; $_SESSION['sess_file_return']=$thisfile; require_once($root_path.'modules/dept_admin/model/class_department.php'); @@ -127,7 +127,7 @@ { if ($path==1) { - $fwdpath='nursing-or-dienstplan.php?'; + $fwdpath='nursing-or-roster.php?'; if($saved!="1") { if ($mo==1) {$mo=12; $yr--;} Modified: care2x/branches/gettext/modules/nursing_or/nursing-or-roster-quickview.php =================================================================== --- care2x/branches/gettext/modules/nursing_or/nursing-or-roster-quickview.php 2010-06-30 11:02:50 UTC (rev 6457) +++ care2x/branches/gettext/modules/nursing_or/nursing-or-roster-quickview.php 2010-06-30 11:03:53 UTC (rev 6458) @@ -233,8 +233,8 @@ } $temp_out.=' - </td><td > <a href="nursing-or-dienstplan.phpURLAPPEND&dept_nr='.$v['nr'].'&retpath=qview"> - <button onClick="javascript:window.location.href=\'nursing-or-dienstplan.phpURLREDIRECTAPPEND&dept_nr='.$v['nr'].'&retpath=qview\'"><img '.createComIcon($root_path,'new_address.gif','0','absmiddle').' alt="IMGALT" ><font size=1> SHOWBUTTON </font></button></a> </td></tr>'; + </td><td > <a href="nursing-or-roster.phpURLAPPEND&dept_nr='.$v['nr'].'&retpath=qview"> + <button onClick="javascript:window.location.href=\'nursing-or-roster.phpURLREDIRECTAPPEND&dept_nr='.$v['nr'].'&retpath=qview\'"><img '.createComIcon($root_path,'new_address.gif','0','absmiddle').' alt="IMGALT" ><font size=1> SHOWBUTTON </font></button></a> </td></tr>'; } # Save in cache Copied: care2x/branches/gettext/modules/nursing_or/nursing-or-roster.php (from rev 6457, care2x/branches/gettext/modules/nursing_or/nursing-or-dienstplan.php) =================================================================== --- care2x/branches/gettext/modules/nursing_or/nursing-or-roster.php (rev 0) +++ care2x/branches/gettext/modules/nursing_or/nursing-or-roster.php 2010-06-30 11:03:53 UTC (rev 6458) @@ -0,0 +1,189 @@ +<?php +error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR); +require('./roots.php'); +require($root_path.'include/helpers/inc_environment_global.php'); +/** +* CARE2X Integrated Hospital Information System Deployment 2.1 - 2004-10-02 +* GNU General Public License +* Copyright 2002,2003,2004,2005 Elpidio Latorilla +* elpi...@care2x.org, +* +* See the file "copy_notice.txt" for the licence notice +*/ +$lang_tables[]='or.php'; +$lang_tables[]='departments.php'; +define('LANG_FILE','doctors.php'); +define('NO_2LEVEL_CHK',1); +require_once($root_path.'include/helpers/inc_front_chain_lang.php'); + +setcookie(username,""); +setcookie(ck_plan,"1"); +if($dept=="") $dept="plast"; +if($pmonth=="") $pmonth=date('n'); +if($pyear=="") $pyear=date('Y'); +$thisfile=basename(__FILE__); + +require_once($root_path.'modules/dept_admin/model/class_department.php'); +$dept_obj=new Department; +$dept_obj->preloadDept($dept_nr); + +require_once($root_path.'modules/personell_admin/model/class_personell.php'); +$pers_obj=new Personell; +$dutyplan=&$pers_obj->getNOCDutyplan($dept_nr,$pyear,$pmonth); + + +$firstday=date("w",mktime(0,0,0,$pmonth,1,$pyear)); + +$maxdays=date("t",mktime(0,0,0,$pmonth,1,$pyear)); + + +switch($retpath) +{ + case "menu": $rettarget=$root_path.'main/op-docu.php'.URL_APPEND; break; + case "qview": $rettarget='nursing-or-roster-quickview.php'.URL_APPEND.'&hilitedept='.$dept_nr; break; + default: $rettarget="javascript:window.history.back()"; +} + +# Prepare page title + $sTitle = "$LDORNOC::$LDDutyPlan::"; + $LDvar=$dept_obj->LDvar(); + if(isset($$LDvar)&&$$LDvar) $sTitle = $sTitle.$$LDvar; + else $sTitle = $sTitle.$dept_obj->FormalName(); + +# Start Smarty templating here + /** + * LOAD Smarty + */ + + # Note: it is advisable to load this after the inc_front_chain_lang.php so + # that the smarty script can use the user configured template theme + + require_once($root_path.'gui/smarty_template/smarty_care.class.php'); + $smarty = new smarty_care('common'); + +# Title in toolbar + $smarty->assign('sToolbarTitle',$sTitle); + + # href for help button + $smarty->assign('pbHelp',"javascript:gethelp('op_duty.php','show','$rows')"); + + # href for close button + $smarty->assign('breakfile',$rettarget); + + # Window bar title + $smarty->assign('sWindowTitle',$sTitle); + + # Collect extra javascript + + ob_start(); + +?> + +<script language="javascript"> + + var urlholder; + var infowinflag=0; + +function popinfo(l) +{ + w=window.screen.width; + h=window.screen.height; + ww=400; + wh=400; + urlholder="nursing-or-roster-popinfo.php<?php echo URL_REDIRECT_APPEND ?>&nr="+l+"&dept_nr=<?php echo $dept_nr ?>&route=validroute&user=<?php echo $aufnahme_user.'"' ?>; + + infowin<?php echo $sid ?>=window.open(urlholder,"infowin<?php echo $sid ?>","width=" + ww + ",height=" + wh +",menubar=no,resizable=yes,scrollbars=yes"); + window.infowin<?php echo $sid ?>.moveTo((w/2)+20,(h/2)-(wh/2)); + +} +</script> + +<?php + + $sTemp=ob_get_contents(); + ob_end_clean(); + $smarty->append('JavaScript',$sTemp); + + $smarty->assign('LDStandbyPerson',$LDStandbyPerson); + $smarty->assign('LDOnCall',$LDOnCall); + +# Prepare the month links +# Previous month +$sBuffer = '<a href="'.$thisfile.URL_APPEND.'&retpath='.$retpath.'&dept_nr='.$dept_nr.'&pmonth='; + +if ($pmonth==1) $sBuffer = $sBuffer.'12'.'&pyear='.($pyear-1).'">'; + else $sBuffer = $sBuffer.($pmonth-1).'&pyear='.$pyear.'">'; +if ($pmonth==1) $sBuffer = $sBuffer.$monat[12]; + else $sBuffer = $sBuffer.$monat[$pmonth-1]; + $smarty->assign('sPrevMonth',$sBuffer.'</a>'); + + # This month +$smarty->assign('sThisMonth',ucfirst($monat[$pmonth]).' '.$pyear); + +# Next month +$sBuffer ='<a href="'.$thisfile.URL_APPEND.'&retpath='.$retpath.'&dept_nr='.$dept_nr.'&pmonth='; +if ($pmonth==12) $sBuffer = $sBuffer.'1'.'&pyear='.($pyear+1).'">'; + else $sBuffer = $sBuffer.($pmonth+1).'&pyear='.$pyear.'">'; +if ($pmonth==12) $sBuffer = $sBuffer.$monat[1]; + else $sBuffer = $sBuffer.$monat[$pmonth+1]; + +$smarty->assign('sNextMonth',$sBuffer.'</a>'); + +# Assign control links +$smarty->assign('sNewPlan',"<a href=\"nursing-or-main-pass.php".URL_APPEND."&target=dutyplan&dept_nr=$dept_nr&pmonth=$pmonth&pyear=$pyear&retpath=$retpath\"><img ".createLDImgSrc($root_path,'newplan.gif','0')." alt=\"$LDNewPlan\"></a>"); +$smarty->assign('sCancel',"<a href=\"$rettarget\"><img ".createLDImgSrc($root_path,'close2.gif','0')." alt=\"$LDClosePlan\"></a>"); + + # Buffer form + + ob_start(); + + +for ($i=1,$n=0,$wd=$firstday;$i<=$maxdays;$i++,$n++,$wd++){ + //$wd=weekday($i,$pmonth,$pyear); + switch ($wd){ + //case 6: $backcolor="bgcolor=#ffffcc";break; + //case 0: $backcolor="bgcolor=#ffff00";break; + //default: $backcolor="bgcolor=white"; + case 6: $backcolor='class="saturday"';break; + case 0: $backcolor='class="sunday"';break; + default: $backcolor='class="weekday"'; + } + + $aelems=unserialize($dutyplan['duty_1_txt']); + $relems=unserialize($dutyplan['duty_2_txt']); + $a_pnr=unserialize($dutyplan['duty_1_pnr']); + $r_pnr=unserialize($dutyplan['duty_2_pnr']); + + echo ' + <tr > + <td height=5 '.$backcolor.'>'.$i.' + </td> + <td height=5 '.$backcolor.'>'; + //if (!$wd) echo '<font color=red>'; + echo $LDShortDay[$wd].' + </td> + <td height=5 '.$backcolor.'>'; + echo ' <a href="javascript:popinfo(\''.$a_pnr['ha'.$n].'\')">'.$aelems['a'.$n].'</a> + </td> + <td height=5 '.$backcolor.'>'; + echo ' <a href="javascript:popinfo(\''.$r_pnr['hr'.$n].'\')">'.$relems['r'.$n].'</a> + </td> + </tr>'; + if ($wd==6) $wd=-1; +} + +$sTemp = ob_get_contents(); + ob_end_clean(); + +# Assign the duty plan rows to sub frame template + +$smarty->assign('sDutyRows',$sTemp); + + $smarty->assign('sMainBlockIncludeFile','common/duty_plan.tpl'); + + /** + * show Template + */ + $smarty->display('common/mainframe.tpl'); + +?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Care2002-developers mailing list Care2002-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/care2002-developers