Только переменная должна быть передана по ссылке в задаче Magento - PullRequest
2 голосов
/ 15 декабря 2010

Чтобы увидеть путь к шаблону в сгенерированном html-исходном коде для целей отладки, я использовал следующий фрагмент кода в

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;
}

но теперь в журналах ошибок я вижу следующее: 2010-12-13T21: 55: 35 + 00: 00 ERR (3): строгое уведомление: только переменные должны передаваться по ссылке в / app /code / core / Mage / Core / Block / Template.php в строке 245

Как на это следует ссылаться, чтобы избежать этой ошибки?

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

Уверен, что ваша проблема в этой строке

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

Методы end и current принимают переменную массива в качестве параметра, переданного по ссылке. Вы передаете результат вызова функции, который не нравится PHP. Предполагая, что фрагмент пытается получить имя шаблона без расширения, попробуйте вместо этого

$parts  = pathinfo($template);
$tagName    = $parts['filename']; 
1 голос
/ 15 декабря 2010

Вместо этого установите расширение панели инструментов разработчика. Или включите Шаблон подсказок от администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...