Drupal 7: Content erzeugen
am 04.03.2010 - 10:44 Uhr in
Hallo,
ich bin gerade dabei mein Modul an Drupal 7 anzupassen und hab jetzt folgendes Problem.
Ab Drupal 7 soll ein page callback ja ein strukturiertes Array zurückliefern und nicht wie bisher gerendertes HTML.
Ich hab aber keine Ahnung wie ich das jetzt mache.
Bisher hatte ich zB sowas:
<?php
function my_page_callback(){
$content = '<div><div>MyContent1</div>';
$content .='<div><img src="mypic.png"></div></div>';
$content .= drupal_get_form('myform',$param1,$param2);
return $content;
}
?>
Wie muss das dann ab Drupal 7 aussehen?
Das geht nicht:
<?php
function my_page_callback(){
$content = array();
$content[] = '<div><div>MyContent1</div>';
$content[] ='<div><img src="mypic.png"></div></div>';
$content[] = drupal_get_form('myform',$param1,$param2);
return $content;
}
?>
Es wird nichts ausgegeben. Leider find ich noch nirgends was zum nachlesen.
Ihr stellt euch jetzt bestimmt die frage warum ich überhaupt schon auf Drupal 7 gehe?
Mein Projekt wird vermutlich erst in nem halben Jahr starten, da ich das nur in meiner Freizeit mache und bis dahin wird denke ich Drupal 7 erschienen sein, also warum noch auf Drupal 6 gehen?
Habt ihr ne Idee wie ich in D7 den Content ausgeben muss?
- Anmelden oder Registrieren um Kommentare zu schreiben
Upgrade Handbuch
am 04.03.2010 - 11:00 Uhr
Siehe http://drupal.org/update/modules/6/7#menu_callback_array
Danke :) Daher weis ich ja
am 04.03.2010 - 11:06 Uhr
Danke :) Daher weis ich ja das mit dem array, aber wie das render array aufgebaut sein muss kann ich nirgends entdecken :(
Gibts da ein Tutorial dazu?
Zitat
am 04.03.2010 - 11:09 Uhr
Ich zitier mal von der verlinkten Stelle
For examples of how some callbacks have been converted to arrays, see node_page_default() and node_show() and blog_page_last() and taxonomy_term_page().
In diesen Funktionen (und in vielen anderen auch) sieht man, wie man das verwenden muss.
Ach jetzt versteh ich das
am 04.03.2010 - 14:01 Uhr
Ach jetzt versteh ich das :D
Also wenn man HTML direkt ausgeben will muss es zB so aussehen:
<?php
$page_content['mycontainer']['#prefix'] = '<div>';
$page_content['mycontainer']['#markup'] = 'MyText';
$page_content['mycontainer']['#suffix'] = '</div>';
?>
Wenn man zb ein strukturiertes Array(von nem hook_form) hat, dann so:
<?php
$page_content['mycontainer'] = drupal_get_form('my_form',$param1,$param2);
?>