2010-06-15 6 views
0

utilisant This Template Librarybibliothèque Codeigniter modèle, méthode add_js()

Quand j'essaie d'utiliser la fonction add_js() il des erreurs sur. J'ajoute les régions $_scripts au fichier d'en-tête du modèle mais lorsque je charge la page, elle indique la variable non définie _scripts.

des pensées?

changé <?= $_scripts ?> to <?= (isset($_scripts)) ? $_scripts : “”; ?>

et, évidemment, je perds l'erreur, mais le fichier js est toujours pas charger.

J'ai fait un écho à chaque étape par la méthode add_js() et la sortie est correcte. J'ai également fait une sortie de $this->js et ils avaient tous deux la bonne sortie. Donc, il passe à travers la méthode get_js et définit bien la variable de classe, mais je ne reçois rien ajouté à la page réelle.

Répondre

0

Désolé ordinateur différent maintenant.

est ici le procédé de commande:

function registrationForm(){ 
    $this->template->set_template('single'); 
    $this->template->write_view('header', 'templates/header_template'); 
    $this->template->write_view('footer', 'templates/footer_template'); 
    $this->template->write_view('center', 'user/registration_form'); 
    $this->template->add_js('js/jquery.min.js'); 
    $this->template->add_js('js/validate.jquery.js'); 
    $this->template->render(); 
} 

est ici la partie de tête:

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link href="<?= base_url() ?>css/style.css" type="text/css" rel="stylesheet" /> 
<?= (isset($_scripts)) ? $_scripts : ""; ?> 
<?= (isset($_styles)) ? $_styles : ""; ?> 
</head> 

et la méthode add_js():

function add_js($script, $type = 'import', $defer = FALSE) 
    { 
     $success = TRUE; 
     $js = NULL; 

     $this->CI->load->helper('url'); 

     switch ($type) 
     { 
     case 'import': 
      $filepath = base_url() . $script; 
      $js = '<script type="text/javascript" src="'. $filepath .'"'; 
      if ($defer) 
      { 
       $js .= ' defer="defer"'; 
      } 
      $js .= "></script>"; 
      break; 

     case 'embed': 
      $js = '<script type="text/javascript"'; 
      if ($defer) 
      { 
       $js .= ' defer="defer"'; 
      } 
      $js .= ">"; 
      $js .= $script; 
      $js .= '</script>'; 
      break; 

     default: 
      $success = FALSE; 
      break; 
     } 

     // Add to js array if it doesn't already exist 
     if ($js != NULL && !in_array($js, $this->js)) 
     { 
     $this->js[] = $js; 
     $this->write('_scripts', $js); 
     } 

     return $success; 
    } 

fichier de configuration template.php

/* 
|-------------------------------------------------------------------------- 
| Default Template Configuration (adjust this or create your own) 
|-------------------------------------------------------------------------- 
*/ 

$template['default']['template'] = 'templates/default_template'; 
$template['default']['regions'] = array(
    'header', 
    'left', 
    'right', 
    'footer', 
); 
$template['default']['parser'] = 'parser'; 
$template['default']['parser_method'] = 'parse'; 
$template['default']['parse_template'] = FALSE; 

/* 
|-------------------------------------------------------------------------- 
| Default Template Configuration (adjust this or create your own) 
|-------------------------------------------------------------------------- 
*/ 
$template['single']['template'] = 'templates/single_template'; 
$template['single']['regions'] = array(
    'header', 
    'center', 
    'footer', 
); 
$template['single']['parser'] = 'parser'; 
$template['single']['parser_method'] = 'parse'; 
$template['single']['parse_template'] = FALSE; 

/* End of file template.php */ 
/* Location: ./system/application/config/template.php */ 
+0

Je ne sais pas si c'est important, mais pourquoi ne pas définir les zones d'en-tête et de pied de page dans votre modèle "unique"? L'une des raisons pour lesquelles je me suis accroché à cette bibliothèque était que je n'avais pas besoin d'ajouter les vues d'en-tête et de pied de page pour chaque méthode de contrôleur. Pouvez-vous poster votre configuration de bibliothèque de modèles? – someoneinomaha

+0

En fait, cela ne m'est jamais venu à l'esprit, mais je vais le faire maintenant. juste une vieille habitude je suppose. La bibliothèque de modèles est automatiquement chargée dans la configuration de chargement automatique de CI. Gardez à l'esprit que le code ci-dessus n'a pas encore été modifié. Merci pour ça. J'ai ajouté le fichier de configuration de modèle ci-dessus. – Karl

+0

cela a quelque chose à voir avec php et des balises courtes. – Karl

Questions connexes