OPEN includes/function.php
FIND
Код: Выделить всё
?>Код: Выделить всё
// Use function create_selectbox:
// create_selectbox ($sel_name, $finish_year, [$input_date], [$separator], [$class], [$minute_interv], [$isnow], [$isyear], [$ismonth], [$isday], [$ishour], [$isminute]);
//
// Variables:
// $sel_name (string) name && id select box . No default (requered)
// $finish_year (string) finish of dropdown year . No default (requered)
// $input_date (int) input date for select selected. Default = 0 i.e. not selected
// $separator (string) usefull separator between select boxes. Default = ' '
// $class (string) class of select boxes. Default = ' '
// $minute_interv (int) interval of minute drop. Default = 5
// $isnow (bool) using start date = time now ? Default - false
// $isyear (bool) using select year? Default - true
// $ismonth (bool) using select month? Default - true
// $isday (bool) using select day? Default - true
// $ishour (bool) using select hour? Default - true
// $isminute (bool) using select minute? Default - true
//
function create_selectbox ($sel_name, $finish_year, $input_date = 0, $separator = ' ', $class= '', $minute_interv = 5, $isnow = false, $isyear = true, $ismonth = true, $isday = true, $ishour = true, $isminute = true)
{
global $user, $template;
$class = ($class != '') ? 'class="' . $class . '"' : '';
// Day
if ($isday == true)
{
$s_day = '<select name="' . $sel_name . '_day" id=="' . $sel_name . '_day" ' . $class . '><option value="">' . $user->lang['SELECT_DAY'] . '</option>';
for ( $i = 1; $i <= 31; $i++ )
{
$null = ( $i < 10 ) ? '0' : '';
$s_day .= '<option value="'.$null.$i.'">'.$i.'</option>';
}
$s_day .= '</select>';
$sday = ($input_date > 0) ? $user->format_date($input_date,'d') : ( ($isnow == true)? $user->format_date(time(),'d') : request_var($sel_name . '_day', ''));
$s_day = str_replace('value="'.$sday.'">', 'value="'.$sday.'" selected="selected">', $s_day);
}
// Month
if ($ismonth == true)
{
$month_name = array ('', $user->lang['datetime']['January'], $user->lang['datetime']['February'], $user->lang['datetime']['March'], $user->lang['datetime']['April'], $user->lang['datetime']['May'], $user->lang['datetime']['June'], $user->lang['datetime']['July'], $user->lang['datetime']['August'], $user->lang['datetime']['September'], $user->lang['datetime']['October'], $user->lang['datetime']['November'], $user->lang['datetime']['December']);
$s_month = '<select name="' . $sel_name . '_month" id="' . $sel_name . '_month" ' . $class . '><option value="">' . $user->lang['SELECT_MONTH'] . '</option>';
for ( $i = 1; $i <= 12; $i++ )
{
$null = ( $i < 10 ) ? '0' : '';
$s_month .= '<option value="'.$null.$i.'">'.$month_name[$i].'</option>';
}
$s_month .= '</select>';
$smonth = ($input_date > 0) ? $user->format_date($input_date,'m') : ( ($isnow == true)? $user->format_date(time(),'m') : request_var($sel_name . '_month', ''));
$s_month = str_replace('value="'.$smonth.'">', 'value="'.$smonth.'" selected="selected">', $s_month);
}
// Year
if ($isyear == true)
{
$s_year = '<select name="' . $sel_name . '_year" id="' . $sel_name . '_year" ' . $class . '><option value="">' . $user->lang['SELECT_YEAR'] . '</option>';
$actual_year = $user->format_date(time(),'Y');
for ( $i = $actual_year; $i <= (int)$finish_year; $i++)
{
$s_year .= '<option value="'. $i.'">' . $i .'</option>';
}
$s_year .= '</select>';
$syear = ($input_date > 0) ? $user->format_date($input_date,'Y') : (($isnow == true)? $user->format_date(time(),'Y') : request_var($sel_name . '_year', ''));
$s_year = str_replace('value="'.$syear.'">', 'value="'.$syear.'" selected="selected">', $s_year);
}
// Hour
if ($ishour == true)
{
$s_hour = '<select name="' . $sel_name . '_hour" id="' . $sel_name . '_hour" ' . $class . '><option value="">' . $user->lang['SELECT_HOUR'] . ' </option>';
for ( $i = 0; $i < 24; $i++ )
{
$null = ( $i < 10 ) ? '0' : '';
$s_hour .= '<option value="'.$null.$i.'">'.$null.$i.'</option>';
}
$s_hour .= '</select>';
$shour = ($input_date > 0) ? $user->format_date($input_date,'H') : (($isnow == true)? $user->format_date(time(),'H') : request_var($sel_name . '_hour', ''));
$s_hour = str_replace('value="'.$shour.'">', 'value="'.$shour.'" selected="selected">', $s_hour);
}
//Minute
if ($isminute == true)
{
$s_minute = '<select name="' . $sel_name . '_minute" id="' . $sel_name . '_minute" ' . $class . '><option value="">' . $user->lang['SELECT_MINUTE'] . '</option>';
$minute_interv = ($minute_interv < 1)? 1 : (($minute_interv > 60) ? 60 : $minute_interv);
for ( $i = 0; $i < 60; $i=$i+$minute_interv)
{
$null = ( $i < 10 ) ? '0' : '';
$s_minute .= '<option value="'.$null.$i.'">'.$null.$i.'</option>';
}
$s_minute .= '</select>';
$sminute = ($input_date > 0) ? floor($user->format_date($input_date,'i') / $minute_interv) * $minute_interv : (($isnow == true)? floor($user->format_date(time(),'i') / $minute_interv) * $minute_interv : request_var($sel_name . '_minute', ''));
$s_minute = str_replace('value="'.$sminute.'">', 'value="'.$sminute.'" selected="selected">', $s_minute);
}
$template->assign_vars(array(
'S_' . strtoupper($sel_name) . '_SELECT' => $s_day . $separator . $s_month . $separator . $s_year . $separator . $s_hour . $separator . $s_minute,
));
}FIND
Код: Выделить всё
?>Код: Выделить всё
$lang = array_merge($lang, array(
'SELECT_MONTH' => 'Месяц',
'SELECT_YEAR' => 'Год',
'SELECT_DAY' => 'День',
'SELECT_HOUR' => 'ЧЧ',
'SELECT_MINUTE' => 'ММ',
));Использование по русски:
Добавляете в нужном месте скрипта вызов функции
Код: Выделить всё
create_selectbox ($sel_name, $finish_year, [$input_date], [$separator], [$class], [$minute_interv], [$isnow], [$isyear], [$ismonth], [$isday], [$ishour], [$isminute]);$sel_name (string) префикс Имени(name) и ID селектбокса (необходим)
$finish_year (string) Последний год в выпадающем списке (необходим)
$input_date (int) Дата в UNIX формате для выбора селектов при выводе (selected). По умолчанию = 0, т.е. не выбрано.
$separator (string) Сепаратор между боксами, для отображения, по умолчанию = ' '
$class (string) Класс для селектбоксов, по умолчанию = '' (нет специального класса)
$minute_interv (int) Интервал между минутами в выпадающем списке. По умолчанию = 5
$isnow (bool) Использовать текущую дату для селектов ? По умолчанию = false
$isyear (bool) Использовать год? По умолчанию - true
$ismonth (bool) Использовать месяц? По умолчанию - true
$isday (bool) Использовать день? По умолчанию - true
$ishour (bool) Использовать часы? По умолчанию - true
$isminute (bool) Использовать минуты? По умолчанию - true
Пример использования:
1. в скрипте вызываю функцию: create_selectbox ('sk', 2012);
2. в шаблоне, в месте, где необходимо отобразить: {S_SK_SELECT} , где SK - первый аргумент функции Загл.буквами.
3. Получаю на выходе (с последним годом 2012):
2010-12-17 - Version 1.0.1
Add Variable form name for check fields onsubmit form
Add Create output UTC hidden field for send form
2010-12-22 - Version 1.0.2
Add subsulver2 install
FIX return value (add coockies for value)
FIX dont geate UTC hidden field if not full selectboxes use
Add change select box js file into ACP
Версия 1.0.1
Добавлено:
1. Переменная $form_ - для проверки полей формы с этим именем перед отправкой (onsubmit добавляется в форму посредством js)
2. Hidden field с указанным именем, для отправки значений дат в формате UTC (автозаполнение посредством js)
Версия 1.0.2
1. Добавлена инструкция для subsulver2
2. FIX обнуление значений при возврате формы (посредством coockies)
3. FIX отменено создание hidden со значением UTC, если задано, что функция не создает какой либо из селектов Даты Месяца или Года.
4. В АСР в overall_header добавлен вызов скрипта js, что позволяет использовать ф-цию в АСР

