Content-type: image pre node

ahoj

pokusam sa spravit nasledujuce:

chcem vytvorit node, na ktorom je nejaky text, formular a obrazok. ten formular sluzi na to, aby som definoval urcite parametre, podla ktorych sa ma vygenerovat obrazok (generujem ho z rrd). mal by tam byt potom element img src=‘ODKAZ’. tento odkaz by som v klasickom php uviedol ako cestu k nejakemu php skriptu s parametrami z formulara a tento script, ktory by generoval ten obrazok, by mal v sebe okrem ineho header(“content-type: image/png”).

moja predstava je, ze by som vytvoril druhy node, zmenil mu content-type na image/png a ten by vratil pozadovany obrazok.

neviem spravit ani funkcny odkaz na php skript ani zmenit content-type pre node, aby bol node iba obrazok a nie webova stranka so vsetkymi nalezistostami.

este poznamenam, ze by som uprednostnil riesenie cez node, aby sa na generovanie obrazka aplikovali pristupove prava.

ako na to?

To je zaujimavy problem :). No - ak by ten obrazok mal byt vyobrazeny ako sucast stranky tak urobit v sablone node-mojrrdtyp.tpl.php taketo nieco: <img src="rrd_generator.php?param1=<?php print $node->field_param1[0]['value'] ?>&param2=<?php print $node->field_param2[0]['value'] ?>". A priamo v skripte rrd_generator.php nastavovat header… Toto ale pokial poznas url a parametre mozes zobrazit vzdy (pokial to nejak v danom php skripte neosetris).

Pokial chces aby sa to zobrazovalo cez Drupal - s vyuzitim jeho pristupovych prav tak jedine modulom.

ja som to presne takto skusal, len ma nenapadlo, ze mam zlu cestu k skriptu … O:-)

ale ako som uz spominal, rad by som to spravil drupal way, aby sa aplikovali drupalovske pristupove prava. vies ma nasmerovat tymto smerom?

mozno mam skreslenu predstavu ale predpokladam, ze v module si vytvorim nejaky MENU_CALLBACK, ktory bude generovat a vrati ten obrazok. ale niekde tam by som este mal vediet odchytit tuto poziadavku skor ako sa to vyrenderuje ako webova stranka, zmenit jej content-type na image/png a takto to vratit. ale neviem ako

s programovanim nie je problem. problem je v tom, ze s drupalom robim sporadicky ani nie mesiac a este sa velmi nevyznam v systeme a v dokumentacii.

uz to mam. nejak nahrubo to funguje takto

v MENU_NORMAL_ITEM mam
$content .= “<img src=’/monitor/rrd’/>”;
ktory ukazuje na MENU_CALLBACK

v MENU_CALLBACK mam
drupal_set_header(“content-type: image/jpg”);
readfile(“files/kuk.jpg”);
exit;

funguje aj s pristupovymi pravami

Hej, presne takto sa riesi aj pre AJAX. Jednoducho sa skript na konci ukonci.

Tu http://drupal.org/project/js je zaujimavy modul (no ono to vlastne ani modul nie je) co riesi tento problem aj efektivnejsie z hladiska mnozstva spracovaneho php kodu.