(RÉSOLU) comprennent notamment l'intérieur variable disparaître

  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Juillet 21st, 2010, 5:49 am

heres donc ce qui continue, j'ai un fichier (index.php) qui est juste une page que je utiliser pour inclure le modèle de ma coutume CMS. Ce fichier index.php construit toutes les variables pour le modèle de fichier ($ title, $ content, $ me (utilisateur connecté), etc.) À la fin de ce fichier-je inclure mon modèle (/ templates / theme / index.php) et cela fonctionne grand et tire dans toutes les variables définies dans index.php. A l'intérieur du fichier de modèle-je inclure le module de connexion (/ modules / user / theme / login.php).

Quelques bouts de code:

index.php
PHP Code: [ Select ]
...
  //if the user is logged in, create the user object
  if(isset($_SESSION["login"]) && $_SESSION["login"] != ""){
    $me = new User($_SESSION["login"]);
  }
  else{
    $me = false;
  }
...
  $template_file = "templates/" . WEBSITE_THEME . "/" . (($mobile_browser == true) ? "mobile.php" : "index.php");
  if(file_exists($template_file)){
    require_once($template_file);
  }
  1. ...
  2.   //if the user is logged in, create the user object
  3.   if(isset($_SESSION["login"]) && $_SESSION["login"] != ""){
  4.     $me = new User($_SESSION["login"]);
  5.   }
  6.   else{
  7.     $me = false;
  8.   }
  9. ...
  10.   $template_file = "templates/" . WEBSITE_THEME . "/" . (($mobile_browser == true) ? "mobile.php" : "index.php");
  11.   if(file_exists($template_file)){
  12.     require_once($template_file);
  13.   }


/ Templates / theme / index.php
PHP Code: [ Select ]
<div class='login'>
 <?php Module_Helper::load_module("user","login"); ?>
</div>
  1. <div class='login'>
  2.  <?php Module_Helper::load_module("user","login"); ?>
  3. </div>


/ Modules / user / theme / login.php
PHP Code: [ Select ]
<?php if($me == false): ?>
 ...
<?php else: ?>
 ...
<?php endif; ?>
  1. <?php if($me == false): ?>
  2.  ...
  3. <?php else: ?>
  4.  ...
  5. <?php endif; ?>


Le problème est maintenant, $ me est toujours faux sur les modules / / user / thème de la page login.php /, même si elle est un objet sur les modèles / / theme / page index.php, qui comprend uniquement la page login.php . Quelqu'un peut-il me dire ce qu'il se passe ici...?
Let's leave all our *plum* where it is and go live in the jungle ...
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Juillet 21st, 2010, 5:49 am

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Juillet 21st, 2010, 6:34 am

Im prendre une photo dans le noir ici, mais je suppose que vous utilisez eval ou quelque chose dans votre Module_Helper:: méthode et votre load_module $ me variable n'est pas disponible dans ce contexte. Peut-être me $ n'est pas disponible dans load_modules contexte.

Qu'advient-il si vous utilisez "global $ me" à l'intérieur load_module?
Strong with this one, the sudo is.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Juillet 21st, 2010, 6:39 am

Heres la fonction, rien ne se passe à la variable $ me au coeur de ce.
PHP Code: [ Select ]
public static function load_module($module,$action,$module_url = null){
  if(file_exists("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php")){
    include("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php");
  }
  else{
    include("modules/{$module}/default/{$action}.php");
  }
}
  1. public static function load_module($module,$action,$module_url = null){
  2.   if(file_exists("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php")){
  3.     include("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php");
  4.   }
  5.   else{
  6.     include("modules/{$module}/default/{$action}.php");
  7.   }
  8. }
Let's leave all our *plum* where it is and go live in the jungle ...
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Juillet 21st, 2010, 6:45 am

Qu'advient-il si vous faites cela?

PHP Code: [ Select ]
public static function load_module($module,$action,$module_url = null){
  global $me;
  if(file_exists("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php")){
    include("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php");
  }
  else{
    include("modules/{$module}/default/{$action}.php");
  }
}
  1. public static function load_module($module,$action,$module_url = null){
  2.   global $me;
  3.   if(file_exists("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php")){
  4.     include("modules/{$module}/" . WEBSITE_THEME . "/{$action}.php");
  5.   }
  6.   else{
  7.     include("modules/{$module}/default/{$action}.php");
  8.   }
  9. }
Strong with this one, the sudo is.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Juillet 21st, 2010, 6:50 am

fonctionne comme un charme...Pourquoi cela se produit bien? si je inclure un fichier devrait pas également lire les variables à partir du fichier qui est de l'inclure...?
Let's leave all our *plum* where it is and go live in the jungle ...
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Juillet 21st, 2010, 7:13 am

Youre toujours dans le cadre de cette fonction si vous ne le comprennent bien. notamment ne pas en soi l'utilisation du contexte mondial, il utilise le contexte d'exécution actuel. :)
Strong with this one, the sudo is.
  • righteous_trespasser
  • Scuffle
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Mar 12, 2007
  • Messages: 6228
  • Loc: South-Africa
  • Status: Offline

Message Juillet 21st, 2010, 7:20 am

oh ok, noté, plein de trucs cool, Merci.
Let's leave all our *plum* where it is and go live in the jungle ...

Afficher de l'information

  • Total des messages de ce sujet: 7 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 228 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC