Modulentwicklung - Automatisch in Profil einbinden
Eingetragen von rapsli (1500)
am 13.07.2007 - 07:50 Uhr in
am 13.07.2007 - 07:50 Uhr in
Hallo
Ich habe nochmals eine Frage. Danach bin ich dann wieder beschäftigt...
Oky, folgendes Problem:
Kurz zu meinem Modul: Die User können Inhalte von der Seite verschicken, welche in der DB abgespeichert werden. Nun will ich dem User ermöglichen, dass er diese Informationen in seinem Profil angezeigt bekommen. Wie gehe ich da am Besten vor?
Ich hätte gedacht, ich könnte etwas mit Views machen. Nur habe ich diesen Gedanken wieder verworfen, da ich das Modul so konzipieren will, dass es out of the box funktioniert.
Irgendwelche gute Links und Tipps?
Danke.
- Anmelden oder Registrieren um Kommentare zu schreiben
Der hook dafür heisst
am 13.07.2007 - 08:10 Uhr
Der hook dafür heisst einfach nur "_user"
Also: "deinmodulname_user"
gruß pebosi
gruß pebosi
--
https://pebosi.net
Danke. Hat mich auf den
am 13.07.2007 - 08:45 Uhr
Danke. Hat mich auf den richtigen Weg gebracht, jetzt fehlt nur noch der richtige Syntax:
if($op == 'load'){
$ar_return = array('categories' => array( 'name' => 'nickiplorerm_received_content',
'title' => t('Empfangene Inhalte'),
'weight'=> 3));
return $ar_return;
}
Scheint irgendwie nicht zu klappen. wahrscheinlich stimmt da etwas noch nicht.
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Die $op heisst "view". gruß
am 13.07.2007 - 08:51 Uhr
Die $op heisst "view".
gruß pebosi
gruß pebosi
--
https://pebosi.net
Und welche Form müsste das
am 13.07.2007 - 08:58 Uhr
Und welche Form müsste das array haben?
"view": An associative array of strings to display, keyed by category name.
Wie würde das denn Konkret aussehen?
$op = categories würde ja dann sicher entsprechende Tabs ausgeben?
"categories": A linear array of associative arrays. These arrays have keys:
* "name": The internal name of the category.
* "title": The human-readable, localized name of the category.
* "weight": An integer specifying the category's sort ordering.
Und das sollte ca. so aussehen?
<?php
if ($op == 'categories') {
$ar_return = array(array( 'name' => 'nickiplorerm_received_content',
'title' => t('Empfangene Inhalte'),
'weight'=> 3));
return $ar_return;
}
?>
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Dein Array könnte z.B. so
am 13.07.2007 - 09:03 Uhr
Dein Array für den view könnte z.B. so aussehen:
<?php
$nickiplorerm[] = array(
'title' => t('Empfangene Inhalte'),
);
return array('Empfangene Inhalte' => $nickiplorerm);
?>
Hab grad mal geguckt, die Tabs kriegst du nicht durch "categories".
gruß pebosi
gruß pebosi
--
https://pebosi.net
Sieht jetzt wie folgt aus
am 13.07.2007 - 09:18 Uhr
Sieht jetzt wie folgt aus (noch ein paar Debug Sachen drin:
<?php
function nickiplorerm_user($op, &$edit, &$account, $category = NULL){
print_r('operation: '.$op);
print '<br/>';
print_r('category: '.$category);
print '<br/>';
if ($op == 'view') {
print 'display view';
$nickiplorerm[] = array('title' => t('Empfangene Inhalte'));
return $nickiplorerm;
}
}
?>
Debug gibt folgendes aus:
operation: load
category:
operation: load
category:
operation: view
category:
display view
Dann habe ich im Profil zwei Tabs: View und Edit, aber sonst nichts.
Danke für deine Hilfe.
PS: Jo, ich denke, die Tabs kommen dann automatisch über view Title rein.
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Geb die Daten mal so
am 13.07.2007 - 09:27 Uhr
Geb die Daten mal so zurück:
return array($nickiplorerm);
Die Tabs könntest du so machen:
In die nickiplorerm_menu:
$items[] = array('path' => 'user/'. arg(1) .'/empf-inhalte',
'title' => t('Empfangen Inhalte'),
'callback' => 'nickiplorerm_user_page',
'type' => MENU_LOCAL_TASK,
'access' => $user->uid,
'weight' => 3,
);
Dann noch die callback Funktion mit der Ausgabe und fertig, dann kannst du denn hook_user weglassen, da es ja dann ne eigene Seite ist.
gruß pebosi
gruß pebosi
--
https://pebosi.net
Danke. Jetzt funktionierts
am 13.07.2007 - 10:44 Uhr
Danke. Jetzt funktionierts :)
Gibts da irgend eine Bestpractice, um Inhalt zu schreiben. Ich hätte ja jetzt die Möglichkeit, einfach in der Callback Funktion direkt HTML Code reinzuschreiben, nur scheint mir das dann nicht besonders flexibel, bzw. ist eine unsaubere Trennung. Kann ich entsprechende Templates einrichten?
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Kommt drauf an was du
am 13.07.2007 - 10:49 Uhr
Kommt drauf an was du ausgeben willst, bei Formularen "drupal_get_form". Wenns aber nur ein paar Zeilen sind würd ich den Code direkt reinschreiben.
gruß pebosi
gruß pebosi
--
https://pebosi.net
Ok. Werde es direkt
am 13.07.2007 - 11:17 Uhr
Ok. Werde es direkt reinschreiben. Wird irgend eine Tabelle oder so was.
___________________________
it's easier than you think
Raphael Schär
http://www.schaerwebdesign.ch
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Bei ner Tabelle gibts
am 13.07.2007 - 11:26 Uhr
Bei ner Tabelle gibts "theme_table" http://api.drupal.org/api/5/function/theme_table
gruß pebosi
gruß pebosi
--
https://pebosi.net