/** used in cfield_mgr.class.php */ function create_date_selection_set($p_name, $p_format, $p_date = 0, $options = null) { $opt = array('default_disable' => false, 'allow_blank' => false, 'show_on_filters' => false, 'required' => ''); $opt = array_merge($opt, (array) $options); $localeDateFormat = config_get('locales_date_format'); $locale = isset($_SESSION['locale']) ? $_SESSION['locale'] : 'en_GB'; $date_format = $localeDateFormat[$locale]; $date_format_without_percent = str_replace('%', '', $date_format); // if calender shall be shown on filter position has to be fixed to fully display $calender_div_position = $opt['show_on_filters'] ? "fixed" : "absolute"; $str_out = ''; $t_chars = preg_split('//', $p_format, -1, PREG_SPLIT_NO_EMPTY); if ($p_date != 0) { $t_date = preg_split('/-| |:/', date('Y-m-d H:i:s', $p_date), -1, PREG_SPLIT_NO_EMPTY); } else { $t_date = array(-1, -1, -1, -1, -1, -1); } $t_disable = ''; $t_blank_line_date = ''; $t_blank_line_time = ''; if ($opt['default_disable'] == true) { $t_disable = 'disabled'; } if ($opt['allow_blank'] == true) { $t_blank_line_date = "<option value=\"0\"></option>"; $t_blank_line_time = "<option value=\"-1\"></option>"; } $m = $t_date[1]; $d = $t_date[2]; $y = $t_date[0]; // PHP on 32bit systems, when passing mktime(0,0,0,-1,-1,-1) returns false. // PHP on 64bit systems it returns a long negative value which causes the error. if ($m < 0 || $d < 0 || $y < 0) { $time = 0; } else { $time = mktime(0, 0, 0, $m, $d, $y); } $formatted_date = $time != 0 ? strftime($date_format, $time) : ''; $str_out .= '<input type="text" name="' . $p_name . '_input" size="10" id="' . $p_name . '_input" ' . 'value="' . $formatted_date . '" onclick=showCal(\'' . $p_name . '\',\'' . $p_name . '_input\',\'' . $date_format_without_percent . '\'); READONLY/>' . '<img title="' . lang_get('show_calender') . '" src="' . TL_THEME_IMG_DIR . '/calendar.gif" ' . 'onclick=showCal(\'' . $p_name . '\',\'' . $p_name . '_input\',\'' . $date_format_without_percent . '\'); > ' . '<img title="' . lang_get('clear_date') . '" src="' . TL_THEME_IMG_DIR . '/trash.png" ' . 'onclick="javascript:var x = document.getElementById(\'' . $p_name . '_input\'); x.value = \'\';' . 'var xh = document.getElementById(\'' . $p_name . '_hour\'); if(xh!=null) xh.selectedIndex=-1;' . 'var xm = document.getElementById(\'' . $p_name . '_minute\'); if(xm!=null) xm.selectedIndex=-1;' . 'var xs = document.getElementById(\'' . $p_name . '_second\'); if(xs!=null) xs.selectedIndex=-1;" > ' . '<div id="' . $p_name . '" style="position:' . $calender_div_position . ';z-index:1;"></div>'; // Here we work with the TIME PART, that exists only when we require TIMESTAMP foreach ($t_chars as $t_char) { $common = $opt['required'] . " {$t_disable}>"; if (strcasecmp($t_char, "H") == 0) { $mask = '<select name="%s_hour" id="%s_hour" '; $str_out .= sprintf($mask, $p_name, $p_name) . $common . $t_blank_line_time; $str_out .= create_range_option_list($t_date[3], 0, 23); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "i") == 0) { $mask = '<select name="%s_minute" id="%s_minute" '; $str_out .= sprintf($mask, $p_name, $p_name) . $common . $t_blank_line_time; $str_out .= create_range_option_list($t_date[4], 0, 59); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "s") == 0) { $mask = '<select name="%s_second" id="%s_second" '; $str_out .= sprintf($mask, $p_name, $p_name) . $common . $t_blank_line_time; $str_out .= create_range_option_list($t_date[5], 0, 59); $str_out .= "</select>\n"; } } return $str_out; }
/** used in cfield_mgr.class.php only */ function create_date_selection_set($p_name, $p_format, $p_date = 0, $p_default_disable = false, $p_allow_blank = false, $p_year_start = 0, $p_year_end = 0) { $str_out = ''; $t_chars = preg_split('//', $p_format, -1, PREG_SPLIT_NO_EMPTY); if ($p_date != 0) { // 20080816 - $t_date = preg_split('/-/', date( 'Y-m-d', $p_date), -1, PREG_SPLIT_NO_EMPTY) ; $t_date = preg_split('/-| |:/', date('Y-m-d H:i:s', $p_date), -1, PREG_SPLIT_NO_EMPTY); } else { // 20080816 - $t_date = array( 0, 0, 0 ); // 20100405 - think is WRONG use valid value (0) for time // $t_date = array( 0, 0, 0, 0, 0, 0 ); $t_date = array(0, 0, 0, -1, -1, -1); } $t_disable = ''; if ($p_default_disable == true) { $t_disable = 'disabled'; } $t_blank_line_date = ''; $t_blank_line_time = ''; if ($p_allow_blank == true) { $t_blank_line_date = "<option value=\"0\"></option>"; $t_blank_line_time = "<option value=\"-1\"></option>"; } foreach ($t_chars as $t_char) { if (strcmp($t_char, "M") == 0) { $str_out .= "<select name=\"" . $p_name . "_month\" {$t_disable}>"; $str_out .= $t_blank_line_date; $str_out .= create_month_option_list($t_date[1]); $str_out .= "</select>\n"; } if (strcmp($t_char, "m") == 0) { $str_out .= "<select name=\"" . $p_name . "_month\" {$t_disable}>"; $str_out .= $t_blank_line_date; $str_out .= create_numeric_month_option_list($t_date[1]); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "D") == 0) { $str_out .= "<select name=\"" . $p_name . "_day\" {$t_disable}>"; $str_out .= $t_blank_line_date; $str_out .= create_day_option_list($t_date[2]); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "Y") == 0) { $str_out .= "<select name=\"" . $p_name . "_year\" {$t_disable}>"; $str_out .= $t_blank_line_date; $str_out .= create_year_range_option_list($t_date[0], $p_year_start, $p_year_end); $str_out .= "</select>\n"; } // ----------------------------------------------------------------- if (strcasecmp($t_char, "H") == 0) { $str_out .= "<select name=\"" . $p_name . "_hour\" {$t_disable}>"; $str_out .= $t_blank_line_time; $str_out .= create_range_option_list($t_date[3], 0, 23); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "i") == 0) { $str_out .= "<select name=\"" . $p_name . "_minute\" {$t_disable}>"; $str_out .= $t_blank_line_time; $str_out .= create_range_option_list($t_date[4], 0, 59); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "s") == 0) { $str_out .= "<select name=\"" . $p_name . "_second\" {$t_disable}>"; $str_out .= $t_blank_line_time; $str_out .= create_range_option_list($t_date[5], 0, 59); $str_out .= "</select>\n"; } } return $str_out; }
/** used in cfield_mgr.class.php only 20101025 - asimon - BUGID 3716: date pull downs changed to calendar interface */ function create_date_selection_set($p_name, $p_format, $p_date = 0, $options = null) { $locales_date_format = config_get('locales_date_format'); $my['options'] = array('default_disable' => false, 'allow_blank' => false, 'show_on_filters' => false, 'required' => false); $my['options'] = array_merge($my['options'], (array) $options); $locale = isset($_SESSION['locale']) ? $_SESSION['locale'] : 'en_GB'; $date_format = $locales_date_format[$locale]; $date_format_without_percent = str_replace('%', '', $locales_date_format[$locale]); // if calender shall be shown on filter position has to be fixed to fully display $calender_div_position = $my['options']['show_on_filters'] ? "fixed" : "absolute"; $str_out = ''; $t_chars = preg_split('//', $p_format, -1, PREG_SPLIT_NO_EMPTY); if ($p_date != 0) { // 20080816 - $t_date = preg_split('/-/', date( 'Y-m-d', $p_date), -1, PREG_SPLIT_NO_EMPTY) ; $t_date = preg_split('/-| |:/', date('Y-m-d H:i:s', $p_date), -1, PREG_SPLIT_NO_EMPTY); } else { // 20080816 - $t_date = array( 0, 0, 0 ); // 20100405 - think is WRONG use valid value (0) for time // $t_date = array( 0, 0, 0, 0, 0, 0 ); $t_date = array(-1, -1, -1, -1, -1, -1); } $t_disable = $my['options']['default_disable'] ? 'disabled' : ''; $t_blank_line_date = ''; $t_blank_line_time = ''; if ($my['options']['allow_blank']) { $t_blank_line_date = "<option value=\"0\"></option>"; $t_blank_line_time = "<option value=\"-1\"></option>"; } $m = $t_date[1]; $d = $t_date[2]; $y = $t_date[0]; $time = mktime(0, 0, 0, $m, $d, $y); $formatted_date = $time != 0 ? strftime($date_format, $time) : ''; $str_out .= '<input type="text" name="' . $p_name . '_input" size="10" id="' . $p_name . '_input" ' . $my['options']['required'] . 'value="' . $formatted_date . '" onclick=showCal(\'' . $p_name . '\',\'' . $p_name . '_input\',\'' . $date_format_without_percent . '\'); READONLY/>' . '<img title="' . lang_get('show_calender') . '" src="' . TL_THEME_IMG_DIR . '/calendar.gif" ' . 'onclick=showCal(\'' . $p_name . '\',\'' . $p_name . '_input\',\'' . $date_format_without_percent . '\'); > ' . '<img title="' . lang_get('clear_date') . '" src="' . TL_THEME_IMG_DIR . '/trash.png" ' . 'onclick="javascript:var x = document.getElementById(\'' . $p_name . '_input\'); x.value = \'\';' . 'var xh = document.getElementById(\'' . $p_name . '_hour\'); if(xh!=null) xh.selectedIndex=-1;' . 'var xm = document.getElementById(\'' . $p_name . '_minute\'); if(xm!=null) xm.selectedIndex=-1;' . 'var xs = document.getElementById(\'' . $p_name . '_second\'); if(xs!=null) xs.selectedIndex=-1;" > ' . '<div id="' . $p_name . '" style="position:' . $calender_div_position . ';z-index:1;"></div>'; foreach ($t_chars as $t_char) { // ----------------------------------------------------------------- $common = $my['options']['required'] . " {$t_disable}>"; if (strcasecmp($t_char, "H") == 0) { $mask = '<select name="%s_hour" id="%s_hour" '; $str_out .= sprintf($mask, $p_name, $p_name) . $common . $t_blank_line_time; $str_out .= create_range_option_list($t_date[3], 0, 23); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "i") == 0) { $mask = '<select name="%s_minute" id="%s_minute" '; $str_out .= sprintf($mask, $p_name, $p_name) . $common . $t_blank_line_time; $str_out .= create_range_option_list($t_date[4], 0, 59); $str_out .= "</select>\n"; } if (strcasecmp($t_char, "s") == 0) { $mask = '<select name="%s_second" id="%s_second" '; $str_out .= sprintf($mask, $p_name, $p_name) . $common . $t_blank_line_time; $str_out .= create_range_option_list($t_date[5], 0, 59); $str_out .= "</select>\n"; } } return $str_out; }