2013-09-08 2 views
0

Мои самые первые эксперименты с elgg. elgg_view («вход/дата» использует функцию Datepicker, но мне нужно добавить некоторые опциив elgg jQuery datepicker опции не работают

В моем плагине (называется «помощь») функция инициализации (start.php) я объявил elgg_extend_view ('Js/Elgg. , 'help/js'); Затем в \ mod \ help \ views \ default \ help \ js.php Я скопировал функцию elgg.ui.initDatePicker из ядра elgg, и я добавил свои варианты к нему. Также я добавил

elgg.provide ('elgg.help');

на вершине и

elgg.register_hook_handler ('инициализации', 'системы', elgg.ui .initDatePicker);

на дно, как это:

- начало \ модов \ помощь \ Views \ умолчанию \ помощью кода \ js.php

elgg.provide('elgg.help'); 

elgg.ui.initDatePicker = function() { 
    var loadDatePicker = function() { 
     $('.elgg-input-date').datepicker({ 

      // MY OPTIONS ADDED 
      yearRange: "-100:+0", 
      changeYear: true, 
      changeMonth: true, 

      // ISO-8601 
      dateFormat: 'yy-mm-dd', 
      onSelect: function(dateText) { 
       if ($(this).is('.elgg-input-timestamp')) { 
        // convert to unix timestamp 
        var dateParts = dateText.split("-"); 
        var timestamp = Date.UTC(dateParts[0], dateParts[1] - 1, dateParts[2]); 
        timestamp = timestamp/1000; 

        var id = $(this).attr('id'); 
        $('input[name="' + id + '"]').val(timestamp); 
       } 
      } 
     }); 
    }; 

    if ($('.elgg-input-date').length && elgg.get_language() == 'en') { 
     loadDatePicker(); 
    } else if ($('.elgg-input-date').length) { 
     elgg.get({ 
      url: elgg.config.wwwroot + 'vendors/jquery/i18n/jquery.ui.datepicker-'+ elgg.get_language() +'.js', 
      dataType: "script", 
      cache: true, 
      success: loadDatePicker, 
      error: loadDatePicker // english language is already loaded. 
     }); 
    } 
} 

elgg.register_hook_handler('init', 'system', elgg.ui.initDatePicker); 

--- конец \ мода \ help \ views \ default \ help \ js.php code

Он действительно открывает календарь, но он не применяется в моих вариантах yearRange, changeYear и changeMonth. Хотя, если я просто добавлю опции в elgg \ js \ lib \ ui.js, он отлично работает. Поскольку я не хочу возиться с основным файлом, я прошу указать здесь подсказки. Спасибо

ответ

0

Обратите внимание, что вы перезаписываете основную версию elgg.ui.initDatePicker таким образом.

Вы, кажется, зарегистрировать такую ​​же функцию во второй раз на инициализации системы (она зарегистрирована ядром, вы только что изменили реализации)

Вам также не нужно запускать elgg.provide, если вы этого не сделаете (elgg.help).

Помимо этих заметок, я бы удостоверился, что код JS загружен вовремя. Как вы загружаете код? elgg_load_js или некоторое расширение расширения?

0

Использование

elgg_view('input/datepicker',array('name'=>'startDate')); 

ДЛЯ Эльг 1.8.16