Modul-Entwicklung
[gelöst] Hook nachdem Node komplett gespeichert wurde
Eingetragen von manuelBS (330) am 05.07.2010 - 18:58 Uhr inHi, gibt es denn irgendwo die Möglichkeit eine Aktion auszuführen, nachdem ein Node komplett gespeichert wurde (INsert oder Update)? Hooknodeapi hat ja nur presave, update (ist hier der Node komplett gespeichert also auch die CCK Felder?) und inset (selbe Frage wie bei Update).
Grüße
Manuel
API für User aus Drupal freigeben
Eingetragen von Medienopfer98 (65) am 02.07.2010 - 16:31 Uhr inIch habe vor eine API zu programmieren. D.h. User die auf meinem Portal angemeldet sind, sollen die Möglichkeit haben einen bestimmten Nodetyp auszulesen und die Überschriften bei sich auf der Website anzeigen zu lassen. Das Modul ist eigentlich anders, aber ich will jetzt hier nicht auf das Modul eingehen.
Nur Book-Nodes für Buchgliederung verfügbar machen
Eingetragen von Medienopfer98 (65) am 30.06.2010 - 14:30 Uhr inWie die Überschrift schon sagt, will ich dass Nodes von anderen Typ als Bookpages nicht die Möglichkeit haben, eingegliedert zu werden im Buch. In der Subnavi auf den jeweiligen Seiten erscheint bei mir immer neben Ändern usw... der Punkt "Gliederung". Diese Option will ich aber nur für Seiten vom Typ Book. Nicht für Pages usw...
Form API : $_POST und $_GET "gemischt"
Eingetragen von cosmo (9) am 30.06.2010 - 13:26 Uhr inMein kleines Modul übernimmt aus einem Formular Werte und erstellt mit einem pager_query(); eine Übersicht der gefunden Ergebnisse. Das funktioniert eigentlich alles ganz prima, bis ich mal auf die Idee kam die pager_query()-Sortierfunktion zu verwenden.
Link aus PHP-Include umleiten in ein Node
Eingetragen von wogga (19) am 29.06.2010 - 16:24 Uhr inHallo,
ich inkludiere mir in einem Node eine PHP-Datei, besser gesagt die Pixlie-Bildergalerie:
<?php
ob_start();
include_once "http://xxxxx/drupal/pixlie/galerie.php";
$output = ob_get_contents();
ob_end_clean();
return $output;
?>Das funktioniert soweit auch alles einwandfrei. Nur die Sache mit den Unterordner klappt nicht.
Hierzu werden mir über einen Foreach-Schleife in der galerie.php die Ordner aufgelistet.
<?php foreach ($pixlie_table_dir as $folder){ ?>
<li>
<a href="//xxxxx/drupal/pixlie/galerie.php<?php echo $folder['link_get']; ?>">
<?php echo $folder['name']; ?>
</a>
</li>
<?php } ?>Allerdings werden mir die Links immer in einem neuen Fenster geöffnet.
Wie schaffe ich es das ich die Linkausgabe umleite damit Sie im Content-Bereich von meinem Node ausgegben wird? Ist das überhaupt möglich?
Danke schonmal.
Formular ohne hook_form_alter modifizieren [gelöst]
Eingetragen von drubb (580) am 27.06.2010 - 21:16 Uhr inBlödes Problem, bei dem ich nicht weiter komme: in einem Modul habe ich ein kleines Formular definiert, sowie einen passenden Submit-Handler dazu. Etwa so:
function mymodule_form(&$form_state) {
$form = array();
$form['text'] = array(
'#title' => t('Help text'),
'#type' => 'textarea',
);
$form['submit'] = array(
'#value' => t('Save'),
'#type' => 'submit',
'#weight' => 99,
);
return $form;
}
function mymodule_form_submit(&$form, &$form_state) {
// Mach was mit dem Formular...
}Jetzt möchte ich dieses Formular in einem Template (xyz.tpl.php) verwenden. Die Standardmethode dafür ist folgende:
<?php print drupal_get_form('mymodule_form'); ?>Das funktioniert auch, das Formular wird angezeigt, ich kann etwas eingeben, das Formular abschicken, und der Submit-Handler wird aufgerufen und macht den Rest. Aber jetzt zum eigentlichen Problem: ich möchte das Formular vor der Ausgabe verändern, z.B. vorbelegen. drupal_get_form liefert aber das fertige HTML. Normalerweise würde man hook_form_alter verwenden, um Änderungen vorzunehmen. Diese Methode kann ich hier nicht benutzen, da die benötigten Variablen nur in dem betroffenen Template zur Verfügung stehen. Also habe ich im Template anstelle von drupal_get_form folgenden Ansatz versucht:
<?php
$form_state = array();
$form = drupal_retrieve_form('mymodule_form',$form_state);
drupal_prepare_form ('mymodule_form',$form,$form_state);
$form['text']['#value'] = 'Irgendein Text';
drupal_process_form ('mymodule_form',$form,$form_state);
print drupal_render_form ('mymodule_form',$form);
?>Das Formular wird auch angezeigt, mit dem geänderten Feldinhalt. Aber der Submit-Handler wird nicht mehr aufgerufen, obwohl er im Formular enthalten ist. Ich kann das Formular also nicht weiter verarbeiten.
Die Funktionen drupal_retrieve_form, drupal_prepare_form und drupal_process_form sind leider nicht sonderlich gut dokumentiert, bzw. einfach selten verwendet. Ich weiss nicht ob das der richtige Weg ist. Auf jeden Fall funktioniert es so nicht.
Gibt es vielleicht einen besseren Weg? Oder mache ich was falsch?
Danke und Gruß,
Boris
Modul zum Downloaden von Bildern
Eingetragen von stebeg (463) am 25.06.2010 - 10:14 Uhr inHi,
ich schreibe grade ein Modul, mit dem man Bilder über einen Download-Diaglog herunterladen kann, also ohne das Bild im Browser zu öffnen. Nur leider scheint der Download nicht ganz zu klappen. Der Download-Dialog öffnet sich zwar, aber das Bild wird nicht heruntergeladen wenn ich auf speichern klicke. Hier mal der Code:
<?php
function my_gallery_menu()
{
$items = array();
$items['meine-seite/bilder/%'] = array(
'title' => 'Meine Bilder Gallerie',
'page callback' => 'my_gallery_download_img',
'page arguments' => array(2),
'access arguments' => array('view my gallery'),
'type' => MENU_CALLBACK,
);
return $items;
}
function my_gallery_download_img($arg)
{
$datei = '/sites/default/files/myimg/'.$arg;
$akt_type ="image/jpeg";
$size = filesize($datei);
header("Content-Type: ".$akt_type);
header("Content-disposition: attachment; filename=".$datei);
header("Pragma: no-cache");
header("Expires: 0");
header("Content-length: ".$size);
readfile($datei);
}
?>Der Download wird dann wie in folgender Zeile verlinkt:
<?php
...
$page_content .= "<a href='".$base_path."meine-seite/bilder/".$datei."'>Download</a>";
...
?>Bei Versuch das Bild herunterzuladen bekomm ich dann folgende Fehlermeldungen
warning: filesize() [function.filesize]: stat failed for /sites/default/ ....
warning: readfile(/sites/default/files/myimg/Bild0001.JPG) [function.readfile]: failed to open stream: No such file or directory
was ja eigentlich darauf hindeutet, dass der Pfad zum Bild falsch ist. Lass ich mir aber den Pfad des Bildes in der Funktion my_gallery_download_img ausgeben oder folge dem Pfad des Bildes in der Fehlermeldung, so lande ich bei dem Bild. Der Pfad it also ok.
Jemand ne Idee wo der Fehler liegen könnte?
[gelöst] Views Integration Datum
Eingetragen von manuelBS (330) am 24.06.2010 - 17:16 Uhr inHey, ich habe ein eigenes Modul mit einer eigenen Tabelle in der lediglich zwei Datumsfelder gespeichert werden. Das scheme ist wie folgt:
....
'nid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'vid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
Tabs im Modul hinzufügen
Eingetragen von SyneX (13) am 23.06.2010 - 23:29 Uhr inHuhu,
irgendwie bin ich blind. Ich finde in den bestehenden Modulen und auch im Internet nicht, wie man bei einer Seite (form) Tabs - also diese Registerkarten - einfügt.
Kann mir jemand einen Tipp geben?

Neue Kommentare
vor 3 Wochen 5 Tagen
vor 3 Wochen 6 Tagen
vor 3 Wochen 6 Tagen
vor 3 Wochen 6 Tagen
vor 3 Wochen 6 Tagen
vor 3 Wochen 6 Tagen
vor 4 Wochen 7 Stunden
vor 4 Wochen 1 Tag
vor 4 Wochen 2 Tagen
vor 4 Wochen 4 Tagen