/** 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;
}
示例#2
0
/** 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;
}
示例#3
0
/** 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;
}