2013-09-08 4 views
0

Mes toutes premières expériences avec elgg. elgg_view ('entrée/date' utilise la fonction datepicker, mais je dois ajouter des options.dans elgg Les options de datepicker de jQuery ne fonctionnent pas

Dans mon plugin (appelé "help") la fonction d'initialisation (start.php) Je déclarai elgg_extend_view ('js/Elgg' , 'help/js'); Ensuite, dans \ mod \ help \ views \ default \ help \ js.php j'ai copié la fonction elgg.ui.initDatePicker à partir du noyau elgg et j'ai ajouté mes options à celui-ci.

elgg.provide ('elgg.help');

sur le dessus et

elgg.register_hook_handler ('init', 'système', elgg.ui .initDatePicker);

sur le fond, comme ceci:

- Début de mod \ help \ \ vue \ default \ help Code \ js.php de

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); 

--- fin mod \ \ help \ views \ default \ help \ js.php code

En effet, il ouvre un calendrier, mais il n'applique pas mes options yearRange, changeYear et changeMonth. Cependant, si j'ajoute juste les options dans elgg \ js \ lib \ ui.js cela fonctionne bien. Puisque je ne veux pas jouer avec le fichier de base, je demande des conseils ici. Merci

Répondre

0

Notez que vous remplacez la version principale de elgg.ui.initDatePicker de cette façon.

Vous semblez enregistrer même fonction pour la deuxième fois sur le système init (il est enregistré par le noyau, vous venez de changer la mise en œuvre)

Vous n'avez pas besoin d'exécuter elgg.provide si vous ne utilisez l'objet fourni (elgg.help). En dehors de ces notes, je m'assurerais que le code JS est chargé à temps. Comment chargez-vous le code? elgg_load_js ou une extension de vue?

0

Utilisez

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

POUR Elgg 1.8.16

Questions connexes