* Copyright (C) 2005-2007 Regis Houssin * * This file is a modified version of datepicker.php from phpBSM to fix some * bugs, to add new features and to dramatically increase speed. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * \file htdocs/lib/datepicker.php * \brief Fichier de gestion de la popup de selection de date eldy * \version $Id$ */ if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled cause need to load personalized language if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); //if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled cause need to do translations if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK',1); if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1); if (! defined('NOLOGIN')) define('NOLOGIN',1); // Not disabled cause need to load personalized language if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1); if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML',1); require_once("../main.inc.php"); if (! empty($_GET["lang"])) $langs->setDefaultLang($_GET["lang"]); // If language was forced on URL by the main.inc.php $langs->load("main"); $right=($langs->direction=='rtl'?'left':'right'); $left=($langs->direction=='rtl'?'right':'left'); //var_dump($langs->defaultlang); //var_dump($conf->format_date_short_java); //var_dump($langs->trans("FormatDateShortJava")); // URL http://mydolibarr/lib/datepicker.php?mode=test&m=10&y=2038 can be used for tests print ''."\n"; print ''."\n"; print ''."\n"; if (isset($_GET["mode"]) && $_GET["mode"] == 'test') { print ''."\n"; } else { print 'Calendar'; } // Define tradMonths javascript array (we define this in datapicker AND in parent page to avoid errors with IE8) $tradTemp=array($langs->trans("January"), $langs->trans("February"), $langs->trans("March"), $langs->trans("April"), $langs->trans("May"), $langs->trans("June"), $langs->trans("July"), $langs->trans("August"), $langs->trans("September"), $langs->trans("October"), $langs->trans("November"), $langs->trans("December") ); print ''."\n"; print ''."\n"; print ''."\n"; $qualified=true; if (! isset($_GET["sd"])) $_GET["sd"]="00000000"; if (! isset($_GET["m"])) $qualified=false; if (! isset($_GET["y"])) $qualified=false; if (isset($_GET["m"]) && isset($_GET["y"])) { if ($_GET["m"] < 1) $qualified=false; if ($_GET["m"] > 12) $qualified=false; if ($_GET["y"] < 0) $qualified=false; if ($_GET["y"] > 9999) $qualified=false; } // If parameters provided, we show calendar if ($qualified) { //print $_GET["cm"].",".$_GET["sd"].",".$_GET["m"].",".$_GET["y"];exit; displayBox($_GET["sd"],$_GET["m"],$_GET["y"]); } else { dol_print_error('','ErrorBadParameters'); } print ''."\n"; function xyzToUnixTimestamp($mysqldate){ $year=substr($mysqldate,0,4); $month=substr($mysqldate,4,2); $day=substr($mysqldate,6,2); $unixtimestamp=dol_mktime(12,0,0,$month,$day,$year); return $unixtimestamp; } function displayBox($selectedDate,$month,$year){ global $langs,$conf; //print "$selectedDate,$month,$year"; $thedate=dol_mktime(12,0,0,$month,1,$year); //print "thedate=$thedate"; $today=mktime(); $todayArray=dol_getdate($today); if($selectedDate != "00000000") { $selDate=xyzToUnixTimestamp($selectedDate); $xyz=dol_date("Ymd",$selDate); } else { $selDate=0; $xyz=0; } ?> "; $cols=0; for($i=0;$i< $mydate["wday"];$i++) { echo ""; $cols++; } } else { if ($mydate["wday"]==0) { echo ""; $cols=0; } } $dayclass="dpReg"; if($thedate==$selDate) $dayclass="dpSelected"; elseif($thedate==$today) $dayclass="dpToday"; if ($langs->trans("FormatDateShortJava")=="FormatDateShortJava") { print "ERROR FormatDateShortJava not defined for language ".$langs->defaultlang; exit; } // Sur click dans calendrier, appelle fonction dpClickDay echo ""; $cols++; if ($mydate["wday"]==6) echo "\n"; //$thedate=strtotime("tomorrow",$thedate); $day++; $thedate=dol_mktime(12,0,0,$month,$day,$year); if ($thedate == '') { $stoploop=1; } else { $mydate=dol_getdate($thedate); if ($firstdate["month"] != $mydate["month"]) $stoploop=1; } } if ($cols < 7) { for($i=6; $i>=$cols; $i--) echo ""; echo "\n"; } ?>
trans($selectMonth).", ".$selectYear; ?>
<< ','','','defaultlang ?>')">< ','','defaultlang ?>')"> ','','','defaultlang ?>')">> >>
trans("ShortSunday") ?> trans("ShortMonday") ?> trans("ShortTuesday") ?> trans("ShortWednesday") ?> trans("ShortThursday") ?> trans("ShortFriday") ?> trans("ShortSaturday") ?>
 
trans("FormatDateShortJava")."')\""; echo ">".sprintf("%02s",$mydate["mday"])."
 
trans($selectMonth)." "; print sprintf("%02s",$tempDate["mday"]); print ", ".$selectYear; } else { print "Click a Date"; } ?>