Linky v curlyBrackets

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jod
Člen | 701
+
0
-

Updatol som si nette na novú rev188 a nejak mi prestali ísť linky.

Píše mi:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Users/jod/Sites/nette/cms/app/temp/cache-Nette.Template%002625a55734bf0b4fd00a0a828a233143.menu.phtml on line 13

Používam:

<a href="{plink $item['link']}">{$item['label']}</a>

Čím by to mohlo byť, keďže to robí asi len mne.V $item[‚link‘] sú normálne stringy. Keď tam niečo napíšem ručne tak to ide.

David Grudl
Nette Core | 8152
+
0
-

Uff, pravda, snažil jsem se vyhovět tomuto požadavku.

Než pošlu opravu, tak si v souboru CurlyBracketsFilter.php změň:

$var = $stat === 'include' ? (strspn($m[1], '\'"$') ? $m[1] : "'$m[1]'") : (strspn($m[1], '\'"') ? $m[1] : '"' . $m[1] . '"');

// na
$var = strspn($m[1], '\'"$') ? $m[1] : "'$m[1]'";
Jod
Člen | 701
+
0
-

No to ma aj napadlo tak som skúšal ale nakoniec som to aj tak vyriešil takže pohoda.
Pridal som helper:

function getLink($destination)
{
	return $this->presenter->link(':' . $destination . ':');
}

$template->registerHelper('link', array($this, 'getLink'));

<a href="{$item['link']|link}">{$item['label']}</a>
David Grudl
Nette Core | 8152
+
0
-

Šikovné!