2010-12-15 86 views
2

Pour voir le chemin de modèle dans le code source HTML généré à des fins de debuggin je l'extrait de code suivant dans laseule variable doit être adoptée par référence dans le problème Magento

app/code/core/Mage/Core /Block/Template.php

/** 
* Render block 
* 
* @return string 
*/ 
public function renderView() 
{ 
    $this->setScriptPath(Mage::getBaseDir('design')); 
    $showDebug = true; 
    if (!$showDebug) { 
     $html = $this->fetchView($this->getTemplateFile()); 
    } 
    else { 
     $template = $this->getTemplateFile(); 
     $tagName = 'template_'.current(explode('.',end(explode('/',$template)))); 
     $html = '<'.$tagName.'><!-- '.$template.' -->'; 
     $html .= $this->fetchView($template); 
     $html .= '<!--/ '.$template.' --></'.$tagName.'>'; 
    } 
    return $html; 
} 

mais maintenant dans les journaux d'erreurs que je vois les suivantes: 2010-12-13T21: 55: 35 + 00: 00 ERR (3): Avis Strict: Seules les variables doivent être transmis par référence dans /app/code/core/Mage/Core/Block/Template.php à la ligne 245

Comment cela devrait-il être référencé afin d'éviter cette erreur?

+0

Quelle ligne est 245? –

Répondre

1

Jolie que votre problème est cette ligne

$tagName = 'template_'.current(explode('.',end(explode('/',$template)))); 

Les méthodes end et current acceptent une variable de tableau comme paramater, passé par référence. Vous passez le résultat d'un appel de fonction que PHP n'aime pas. En supposant que l'extrait tente d'obtenir un nom de modèle sans extension, essayez à la place

$parts = pathinfo($template); 
$tagName = $parts['filename']; 
+0

@Alan Cela fonctionne. Et l'erreur est partie. Lorsque vous dites que l'extrait tente d'obtenir un nom de modèle sans extension, je ne comprends pas très bien ce que vous voulez dire. – capnhud

+0

Un nom de modèle: "foo/baz/bar.html". Un nom de modèle: "bar.html". Un nom de modèle sans extension: "bar" –

+0

Ok, je vois ce que vous voulez dire. Merci pour l'assistance au code. – capnhud

1

Installez plutôt l'extension Developer Toolbar. Ou activez les conseils de modèle de l'administrateur.

+0

L'avantage de cet extrait est qu'il vous permet de regarder le code HTML généré et de voir exactement quel modèle est appelé, alors que les indications de modèle montrent une superposition, mais vous devez ensuite garder la page ouverte afin de renvoyer à la page modèle en question. – capnhud