Jak přidat dítě do Nette\Web\Html prvku?

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

Neumím do Html tagu přidat potomka daného prvku (tzn. dovnitř).

Metoda add() by se měla jmenovat spíše append(), podle dokumentace se tak i chová:

$strong = $el->create('strong');
$strong->setText('La Trine');

// lze přidávat existující uzly Html
$br = Html::el('br');
$el->add($br);

echo $el; //  <strong>La Trine</strong><br />

Potřebuji dovnitř tagu <a> dostat <img>, aby obrázek byl klikatelný.

Html::el('a')->href($image->html->src)->insert(0, $image->getThumbnail(15, 15)->html);

mi vrátí:

<a href="/images/photos/photo-1-foo.jpg"></a>

Prostě se to dovnitř nepřidá.

Přidávaný objekt je v pořádku:

Nette\Web\Html(4) {
   "name" private => "img" (3)
   "isEmpty" private => TRUE
   "attrs" => array(4) {
      "src" => "/images/photos/thumbnails/photo-1-foo-thumb-15-15-1279610954.jpg" (85)
      "width" => 15
      "height" => 15
      "alt" => "Image" (5)
   }
   "children" protected => array(0)
}

Nezná někdo řešení? Díky.

Ola
Člen | 385
+
0
-

setHtml na odkazu?

EDIT: ale Tvůj kód funguje taky, alespoň, pokud ho takhle upravím:

echo Html::el('a')->href('big')->insert(0, Html::el('img')->src('small'));

Funguje to i když zavolám add nebo setHtml.

Editoval Ola (21. 7. 2010 13:19)

Michalek
Člen | 211
+
0
-

Buď jsem to nepochopil, nebo takhle?

$a = Html::el('a')->href('http://www.seznam.cz');
$img= Html::el('img')->src('/!_img/clanek.jpg');
$p = $a->add($img);
echo $p;

nebo

echo Html::el('a')->href('http://www.seznam.cz')->add(Html::el('img')->src('/!_img/clanek.jpg'));

Mě to funguje :-)
<a href="http://www.seznam.cz"><img src="/!_img/clanek.jpg"></a>

Editoval Michalek (21. 7. 2010 13:17)

Ondřej Mirtes
Člen | 1536
+
0
-

Aha! Takže je to bug DataGridu (vracím ten element pro formatCallback), venku mi to taky funguje. Teď teda babo raď :)

Ola
Člen | 385
+
0
-

A který typ sloupce formátuješ? TextColumn by to nemusel zvládat, ale jen tipuji. Tak opravdu, nezvládá ;-)

Editoval Ola (21. 7. 2010 13:39)