JQuery Datepicker

4 contenuti / 0 new
Ultimo contenuto
JQuery Datepicker

Ciao ragazzi,
ho la necessità di inserire un datepicker basato su jquery in un form che ho creato in node-mionode.tpl.php.Uso drupal 5.1.
Premetto che ho creato una folder js (con dentro i js riportati nel codice sottostante) allo stesso livello della folder css prevista dal tema che uso (multiflex).
Carico i js nel file page-miapage.tpl.php così:

<script type="text/javascript" src="<?php print base_path() . path_to_theme() ?>/js/date.js"></script>
compreso il file jquery-1.1.2.js (mi chiedo se quello di usare un altro jquery rispetto al default di drupal 5.1 sia un problema).

Il codice che riporto sotto, funziona se usato come semplice html ma non funziona se inserisco i vari pezzi in files di drupal:

tutti gli script type..... l'ho messi in testa a page-miapage.tpl.php seguiti da $(function().......)
<div id="container">......  è in node-mionode.tpl.php perchè voglio che il datepicker compaia in tutti i nodi.

E' come se non trovasse i js.Dove posiziono in drupal i js relativi al singolo tema?? Dove sbaglio???

Grazie

------------------------------------------------------------------------------------------------------------------------

<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>untitled</title>
        <!-- jQuery -->
                        <script type="text/javascript" src="jquery-1.1.2.js"></script>
                <!-- required plugins -->
                        <script type="text/javascript" src="date.js"></script>
                        <script type="text/javascript" src="jquery.dimensions.js"></script>
                        <!--[if IE]><script type="text/javascript"
src="jquery.bgiframe.js"></script><![endif]-->
                <!-- jquery.datePicker.js -->
                        <script type="text/javascript" src="jquery.datePicker.js"></script>
                <!-- datePicker required styles -->
                        <link rel="stylesheet" type="text/css" media="screen"
href="datePicker.css">
                <!-- page specific styles -->
                        <link rel="stylesheet" type="text/css" media="screen"
href="demo.css">
                <!-- page specific scripts -->
                        <script type="text/javascript" charset="utf-8">
                    $(function()
                                {
                                        $('.date-pick')
                                                .datePicker(
                                                        {
                                                                createButton:true,
                                                                displayClose:true,
                                                                closeOnSelect:false,
                                                                selectMultiple:true
                                                        }
                                                );
                                });
                        </script>
</head>
<body>
<div id="container">
            <h1>jquery.datePicker</h1>
                        <p><a href="index.html">< date picker home</a></p>
                        <form name="chooseDateForm" id="chooseDateForm" action="#">
                            <label for="date1">Date 1: Pick a range ofdates</label><br>
                                                        <input name="date1" id="date1" class="date-pick" value=""/>
                                                        <br><br>
                            <label for="date2">Date 1: Pick a range ofdates<</label><br>
                                                        <input name="date2" id="date4" class="date-pick" value=""/>
                        </form>
</body>
</html>

Sinceramente non è che si è capito molto cosa vuoi fare, ma per caricare i JS la cosa migliore è di includerli direttamente in page.tpl.php, in pratica all'inizio metti, al posto di:

<?php
 
print $scripts;
?>

questo codice:
<?php
   
unset($js['core']['misc/jquery.js']);
   
$js = drupal_add_js(path_to_theme().'/js/jquery.corner.js', NULL, 'header');
   
$js = drupal_add_js(path_to_theme().'/js/script.js', NULL, 'header');
    print
drupal_get_js('header', $js);
?>

in questo modo aggiungi al tuo header lo script per JS e quello che ti serve per il tuo datepicker (ovviamente devi scriverci il codice corretto nel JS :D ). A quel punto ci pensa drupal a stamparlo nella posizione corretta dell'header.

Ciao
Marco
--
My blog
Working at @agavee

Hai ragione,
cercherò di essere più chiaro e sintetico.
Devo inserire un datepicker in ogni nodo del mio sito drupal 5.1 multiflex.
Ho i codici js di jquery e quelli relativi al datepicker, testati e funzionanti (li richiamo da un semplice file html per la prova).
In drupal invece penso di dover integrare i vari pezzi di codice (vedi sopra) in vari files.
Le domande sono:

1) in quale file di drupal (page.tpl.php??) richiamo i js del datepicker e in che modo...
2) dove istanzio il datepicker affinche sia visibile in ogni nuovo nodo che aggiungo e in che modo lo istanzio???Vale l'istanziazione di cui sopra?

<script type="text/javascript" charset="utf-8">
$(function()
{
     $('.date-pick')
        .datePicker(
                 {
                    createButton:true,
                    displayClose:true,
                    closeOnSelect:false,
                    selectMultiple:true
                  }
          )
     );
});
</script>

Ciao e grazie.

Vale se l'oggetto che è il tuo datepicker ha come attributo:

class .date-pick

altrimenti non viene associato all'oggetto. appurato questo devi inserire quel codice all'interno di un JS e includere anche questo JS (ovviamente senza i tag script) oltre a quello di jQuery e eventualmente al JS necessario per la creazione dell'oggetto datepicker.

Ciao
Marco
--
My blog
Working at @agavee