Jak vypsat odkaz (ktery je v promenne) v sablone

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

Ahoj vsem,

rekneme, ze v presenteru mam neco jako toto

// zapis
$x = '<a href="/'.$this->page->getInternalLink($item['nejake_id']).'">';
$y = 'amore';
$z = '</a>';
// dump $x --> <a href="/neco-nekde">
$this->template->hrefText = $x.$y.$z;

a pak vypis v sablone

kuku ru kuku {$hrefText} mio
// jestli to mam takto a nebo {!$hrefText} je fuk

vysledek je vzdy
vypsano je vse jako text, takze vidim „<a href…“ a ne jako odkaz tj. podtrzene AMORE

V zasade vim proc, ale fakt netusim jak to udelam, aby si odkaz mohl skladat nekde po ceste a nebyl nucen ho psat at v sablone, protoze pak mi to funguje …?

Diky za posunuti.

Radek

Semik
Backer | 135
+
0
-

Snadné řešení.

Odkaz vytvoř pomocí třídy Html (Nette\Utils\Html):
$el = Html::el('a')->href($link)->setText('amore');
kde $link je to tvé $this->page->getInternalLink($item['nejake_id']).

ras
Člen | 135
+
0
-

Díky za rychlou odpověd … leč já to mám spojené ještě s jedním krokem. Škoda, že jsem to hned nanapsal.

Takže celek:
1.) data jsou v jedne DB tabulce ve tvaru např.

Kuku %%link-internal-1%% kuku

a pak v druhé DB tabulce jsou uvedeny parametry, ze kterých si ve finále složím odkaz … a představa byla prostá, že to pak v presenteru bude nějak takto

forech ($dataZdbt2 AS $key2 => $item2)
{
	forech ($dataZdbt1 AS $key1 => $item1)
	{
		$return = str_replace($key2, $item2, $item1);
	}
dump($retur); // bych chtel mit "kuku <a href="/neco-nekam">ru</a> kuku" s funkcnim odkazem
}

přičemž proměnné vypadají takto

$dataZdbt2 = array ('%%link-internal-1%%' => '<a href="/neco-nekam">ru</a>');
$dataZdbt1 = array ('content' => 'kuku %%link-internal-1%% kuku');

Bohužel do tohoto konceptu asi zápis odkazu přes Nette\Utils\Html nedám …

Takže dotaz možná šířeji … jak zajistit přepsání „inteního tagu“ finalní hodnotou v šabloně tak, aby to byl funkční odkaz?

Díky ještě jednou.

Radek

David Matějka
Moderator | 6445
+
0
-

s vykricnikem v sablone by to melo fungovat ok, dalsi moznost je:

$el = Html::el()->setHtml('<a href="/">foo</a>');