Дата рождения в профиле - в выпадающем списке

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Дата рождения в профиле - в выпадающем списке - не открывает весь диапазон возможных годов

#1 29 января 2016 в 07:11
Дата рождения в профиле — в выпадающем списке — не открывает весь диапазон возможных годов. Изначально в списке присутствует диапазон: с 2006 по 2026 годы.
Потом, чтобы появились более ранние годы, нужно выбрать какую-нибудь цифру — затем снова нажать на выпадающий список диапазона годов — тогда открываются более ранние годы.
Как это исправить?
#2 29 января 2016 в 07:37
Для 2.4.0 в файле \system\libs\template.helper.php в блоке между строк 200-205 добавьте, чтобы стало так
  1. $datepicker_default = array(
  2. 'showStatus' => true,
  3. 'changeYear' => true,
  4. 'showOn' => 'both',
  5. 'yearRange' => '1900:2050',
  6. 'dateFormat' => cmsConfig::get('date_format_js')
  7. );
где 1900:2050 — диапазон лет
#3 5 февраля 2016 в 06:24


Для 2.4.0 в файле \system\libs\template.helper.php в блоке между строк 200-205 добавьте, чтобы стало так

  1. $datepicker_default = array(
  2. 'showStatus' => true,
  3. 'changeYear' => true,
  4. 'showOn' => 'both',
  5. 'yearRange' => '1900:2050',
  6. 'dateFormat' => cmsConfig::get('date_format_js')
  7. );
где 1900:2050 — диапазон лет

Loadырь

Сделала, кусок кода выглядит теперь вот так:
function html_datepicker($name='', $value='', $attributes=array()){
if (isset($attributes['id'])){
$id = $attributes['id'];
unset($attributes['id']);
} else {
$id = $name;
}
$attr_str = html_attr_str($attributes);
$html = '<input type="text" name="'.$name.'" value="'.htmlspecialchars($value).'" class="date-input" id="'.$id.'" '.$attr_str.'/>';
$html .= '<script type="text/javascript">';
$html .= "$(function(){ $('#{$id}').datepicker({showStatus: true, changeYear: true, minDate: new Date(1970, 01 — 1, 02), showOn: 'both', dateFormat:'".cmsConfig::get('date_format_js')."'}); });";
$html .= '</script>';
$datepicker_default = array(
'showStatus' => true,
'changeYear' => true,
'showOn' => 'both',
'yearRange' => '1900:2050',
'dateFormat' => cmsConfig::get('date_format_js')
);
return $html;
}


Версия 2.4.0
Не работает
Может потому, что ввод даты сделан обязательным при регистрации пользователя?
Первый выпадающий диапазон остался прежний 2006-2016
134.seocean.ru
#4 5 февраля 2016 в 08:44
seocean, в 2.4.0 код с правкой должен выглядеть так
  1. function html_datepicker($name='', $value='', $attributes=array(), $datepicker = array()){
  2. if (isset($attributes['id'])){
  3. $id = $attributes['id'];
  4. unset($attributes['id']);
  5. } else {
  6. $id = $name;
  7. }
  8. $datepicker_default = array(
  9. 'showStatus' => true,
  10. 'changeYear' => true,
  11. 'showOn' => 'both',
  12. 'yearRange' => '1900:2050',
  13. 'dateFormat' => cmsConfig::get('date_format_js')
  14. );
  15. if($datepicker){
  16. $datepicker_default = array_merge($datepicker_default, $datepicker);
  17. }
  18. $attr_str = html_attr_str($attributes);
  19. $html = '<input type="text" name="'.$name.'" value="'.htmlspecialchars($value).'" class="date-input" id="'.$id.'" '.$attr_str.'/>';
  20. $html .= '<script type="text/javascript">';
  21. $html .= '$(function(){ $("#'.$id.'").datepicker('.json_encode($datepicker_default).'); });';
  22. $html .= '</script>';
  23. return $html;
  24. }
#5 5 февраля 2016 в 09:18
хоть не в тему, но вопрос, как в первой ветке вырубить время, автоматически приписывающееся при вводе даты рождения?
Иллюстрация
#6 5 февраля 2016 в 09:18
Помогло! Спасибо!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.