Skip to content

Commit 240a239

Browse files
author
Ivan Borzenkov
committed
В скафолдинг добавлен datepicker
1 parent d565360 commit 240a239

7 files changed

+1050
-3
lines changed

addons/timepicker/jquery-ui-1.8.custom.css

+577
Large diffs are not rendered by default.

addons/timepicker/jquery-ui-1.8.custom.min.js

+374
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2+
/* Written by Andrew Stromnov ([email protected]). */
3+
jQuery(function($){
4+
$.datepicker.regional['ru'] = {
5+
clearText: 'Очистить', clearStatus: '',
6+
closeText: 'Закрыть', closeStatus: '',
7+
prevText: '<Пред', prevStatus: '',
8+
prevBigText: '<<', prevBigStatus: '',
9+
nextText: 'След>', nextStatus: '',
10+
nextBigText: '>>', nextBigStatus: '',
11+
currentText: 'Сегодня', currentStatus: '',
12+
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
13+
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
14+
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
15+
'Июл','Авг','Сен','Окт','Ноя','Дек'],
16+
monthStatus: '', yearStatus: '',
17+
weekHeader: 'Не', weekStatus: '',
18+
dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
19+
dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
20+
dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
21+
dayStatus: 'DD', dateStatus: 'D, M d',
22+
dateFormat: 'dd.mm.yy', firstDay: 1,
23+
initStatus: '', isRTL: false};
24+
$.datepicker.setDefaults($.datepicker.regional['ru']);
25+
});

addons/timepicker/jquery-ui-timepicker-addon.min.js

+19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/Modules/Scaffold/Fields.php

+23
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,29 @@ public function editor($id, $value)
379379

380380
}
381381

382+
class Scaffold_Datetime extends Scaffold_Field
383+
{
384+
385+
public function __construct($info)
386+
{
387+
parent::__construct($info);
388+
if ($this->default == 'CURRENT_TIMESTAMP')
389+
$this->default = date('Y-m-d H:i:s');
390+
}
391+
392+
public function editor($id, $value)
393+
{
394+
return QFW::$view->
395+
assign('id', $id)->
396+
assign('name', $this->editName($id))->
397+
assign('value', $value)->
398+
fetch('scaffold/fields/dateedit.php');
399+
}
400+
401+
}
402+
403+
class Scaffold_Timestamp extends Scaffold_Datetime {}
404+
382405
/**
383406
* Класс для поля, в котором хранится имя файла,
384407
* загружаемого на сервер

lib/Modules/Scaffold/ScaffoldController.php

+12-3
Original file line numberDiff line numberDiff line change
@@ -281,11 +281,20 @@ public function editAction($id=-1)
281281
{
282282
//получение дефолтовых значений для новой записи
283283
$data = array();
284+
$fields = array();
285+
//сортированные поля
284286
foreach($this->order as $f)
285-
$data[$f] = $this->fields[$f]->def();
287+
$fields[] = $f;
288+
//остальные поля
286289
foreach ($this->fields as $f=>$info)
287-
if (!isset($data[$f]))
288-
$data[$f] = $info->def();
290+
if (!isset($fields[$f]))
291+
$fields[] = $f;
292+
//вынимаем с учетом default_*
293+
foreach($fields as $f)
294+
if (isset($this->methods['default_'.ucfirst($f)]))
295+
$data[$f] = call_user_func(array(get_class($this), 'default_'.ucfirst($f)));
296+
else
297+
$data[$f] = $this->fields[$f]->def();
289298
}
290299
else
291300
$data = QFW::$db->selectRow('SELECT ?# FROM ?# WHERE ?#=?',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
Hlp::addCSS('timepicker/jquery-ui-1.8.custom.css');
3+
Hlp::addJs('js/jquery.js');
4+
Hlp::addJs('timepicker/jquery-ui-1.8.custom.min.js');
5+
Hlp::addJs('timepicker/jquery-ui-timepicker-addon.min.js');
6+
Hlp::addJs('timepicker/jquery-ui-datepicker-ru.js');
7+
?><input type="text" name="<?php echo $name ?>" value="<?php echo $value?>" class="datepicker" />
8+
<?php Hlp::sJSe() ?>
9+
$('.datepicker').datetimepicker({
10+
showSecond: true,
11+
dateFormat: 'yy-mm-dd',
12+
timeFormat: 'hh:mm:ss',
13+
timeOnlyTitle: 'Выберите время',
14+
timeText: 'Время',
15+
hourText: 'Час',
16+
minuteText: 'Мин',
17+
secondText: 'Сек',
18+
currentText: 'Теперь',
19+
});
20+
<?php Hlp::eJSe() ?>

0 commit comments

Comments
 (0)