2012-04-11 15 views
6

Voglio includere il file js esterno nel mio script php. Sto seguendo il framework di zend. Adesso sto aggiungendo il file js nella funzione init del controller in questo modo.il modo migliore per includere il file js nel framework zend

public function init() { 
    $this->doUserAuthorisation(); 
    parent::init(); 
    $this->view->headScript()->appendFile($this->view->baseUrl().'/js/front_cal/jquery-1.3.2.min.js'); 
    $this->view->headLink()->setStylesheet($this->view->baseUrl().'/styles/front_cal/calendar.css'); 
} 

problema quello che sto affrontando è, js file doesnot include.È questo il modo giusto per includere il file js?

risposta

12

JavaScript (e immagini, CSS, filmati flash, ecc.) Appartengono al livello di vista quindi configurarli lì.

Per globalmente inclusi file, aggiungere al layout, ad esempio

<!-- layout.phtml --> 
<head> 
    <?php echo $this->headScript()->prependFile(
     $this->baseUrl('path/to/file.js')) ?> 
    <?php echo $this->headLink()->prependStylesheet(
     $this->baseUrl('path/to/file.css')) ?> 

<!-- snip --> 

    <?php echo $this->inlineScript()->prependFile(
     'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js') ?> 
</body> 

Gli script di vista può quindi aggiungere risorse per gli aiutanti che vengono emessi con effetto eco nel layout. Come il layout utilizza i prepend*() metodi, i file globali verranno visualizzati per primi, ad esempio

<?php // views/scripts/index/index.phtml 
$this->inlineScript()->appendFile($this->baseUrl('path/to/script.js')); 
+0

hey non si conosce il percorso predefinito del layout.pthml? Non riesco a trovarlo sul mio server. – Xitcod13

+0

@Xitcod, 'Applicazione \ vista \ layout \ layout.phtml' – Dennis

2

Nella soluzione di cui sopra il 'path/to/file.js' sceneggiatura saranno inclusi nella testata due volte. Non è necessario per echo prima di chiamare prependFile. Tale comportamento può portare alla duplicazione dei controlli javascript.

<!-- layout.phtml --> <head> <?php echo $this->headScript()->prependFile( $this->baseUrl('path/to/file.js')) // this will echo out the whole prependFile queue

+0

Intendi la mia risposta sopra? Non sei sicuro di cosa intendi perché viene incluso due volte. La tua risposta è identica alla mia parte – Phil

Problemi correlati