Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Modul Entwicklung Denkanstöße gesucht.

Eingetragen von Lirius (88)
am 11.12.2012 - 19:58 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Hi,
da viele Wege zur Realisierung meines Vorhabens gescheitert sind und die vorhanden Module einfach nicht passen, bin ich jetzt dran mein Vorhaben in einem Modul zu verwirklichen.

Was das Modul machen soll:
-> Vor dem Abspeichern eines Nodes(Filter:Typ)
-> nimmt das Modul den Inhalt eines Feldes
- >führt ein paar Berechnungen durch (mein Php Skript)
-->$fertigeberrechnung
->füge $fertigeberrechnung in ein anderes Feld des Nodes ein
-> Node abspeichern

Die 2 Aufgabe die das Modul hat ist das Feld, in dem die Fertige Berrechnung kommt, während des Erstellens der Seite zu verstecken.
-> Entweder mit css,aber lieber wäre mir aber es iwie per field_access zu machen.

Was ich bisher gemacht habe:
Das Modul erstellt, den Inhaltstyp per Install erstellt

Meine Fragen:
1.Wie kann ich den Node abrufen, wenn man diesen gerade abspeichern will?? Ist das hook_node_presave?
2.Wie kann ich ein Feld Wert abrufenß
3. Wie kann ich einen Wert in einem Feld speichern??
4. Wie kann ich anschließend den Node speichern?

5.Gibt es auch einen Hook um einem Feld eine Edit Berechtigung zu vergeben??

Gesucht sind Drupal Interne Funktionen, da ich diese nicht kenne.

‹ [GELÖST] - Vertikalen Tab Versionsinformation im Edit-Modus entfernen Funktion eines Moduls überschreiben ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du mit hook_node_presave

Eingetragen von wla (9461)
am 11.12.2012 - 23:01 Uhr

Wenn Du mit hook_node_presave arbeitest, wird der Node danach automatisch gespeichert. Das brauchst Du nicht selbst zu tun. Du kannst mittels dsm($node) in Deinem Modul Dir den Node in seiner gesamten Struktur anzeigen lassen und das ist das Feld ein Bestandteil eines Node-Objekts, dem Du ganz einfach Werte zuweisen kannst. Wo ist also das Problem?

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke

Eingetragen von Lirius (88)
am 13.12.2012 - 17:01 Uhr

Danke. Wollte nur wissen ob es so möglich ist.

Jetzt habe ich bereits mein Skript fast fertig geschrieben. Es fehlt nur noch die Speicherung einer Variable in ein Feld. Bloß wie kann ich diese jetzt zuweisen??

Probiert habe ich einfach mal frei Schnauze:

$url = $node->field_url['und']['0']['value'];
$videostream = $node->field_videostream['und'];

$url = $videostream;

Jedoch wird der Wert des Feldes Videostream ja in $node->field_videostream['und']['0']['value'] gespeichert. Ich verstehe zwar nicht wieso drupal hier unnötige arrays erstellt aber ok.

Wäre über deine und andere Hilfe sehr dankbar.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn Du ein Modul schreiben

Eingetragen von wla (9461)
am 13.12.2012 - 18:03 Uhr

Wenn Du ein Modul schreiben willst, solltest Du Dich schon etwas mit der Datenstruktur von Drupal vertraut machen.
['und'] ist die Language und => undefined
[0] das erste von vielen möglichen Werte-Feldern
['value'] der eingetragene Wert (da gab es auch mal 'save_value' für bereits gesäuberte Einträge)
Dateien werden aber anders behandelt, da die in der File-Tabelle eingetragen werden. Also mußt Du dafür sorgen, daß das auch passiert. Da wäre dies der passende Beitrag zum Einstieg.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es ist ja eigentlich keine

Eingetragen von Lirius (88)
am 13.12.2012 - 18:10 Uhr

Es ist ja eigentlich keine Datei. Sondern nur ein Text. Ich wollte bloß einem Feld den Text eines anderen Feldes übergeben.

Da das Feld,welches befüllt werden soll aber leer ist, ist nur Sprache undefined. Also muss ich ein Array erstellen. Danke! Wollte nur wissen ob es dafür eine Funktion gibt ein Feld zu befüllen. Bei den Hooks habe ich leider nix gefunden.

Liebe Grüße
Lirius

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Berechnung läßt sich mit

Eingetragen von caw (2762)
am 14.12.2012 - 05:28 Uhr

Die Berechnung läßt sich mit Rules umsetzen. dazu brauchst du kein Modul

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das habe ich davor probiert.

Eingetragen von Lirius (88)
am 14.12.2012 - 10:37 Uhr

Das habe ich davor probiert. Leider ging das ganze nicht so gut mit der Umsetzung. Da Rules Probleme machte, wenn es einen html code in ein html feld einfügen sollte. Das Modul soll später aber auch noch erweitert werden und ich wollte dabei auch was lernen. Leider komm ich echt momentan nicht weiter, Es gibt doch sicher einen hook zum befüllen eines Feldes.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ein Feld stellt sich als ein

Eingetragen von wla (9461)
am 14.12.2012 - 10:53 Uhr

Ein Feld stellt sich als ein Teil z.B. einer Node-Struktur dar. Werte können dort ganz normal Programm technisch zugewiesen werden ($node->feldname['und'][0]['value'] = 4711;). Wieso sollte man für die einfach Zuweisung eines Wertes einen Hook benötigen?

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

So hab ich die Zuweisung auch

Eingetragen von Lirius (88)
am 14.12.2012 - 11:00 Uhr

So hab ich die Zuweisung auch gemacht, aber der Wert wird dann anschließend nicht bei Ende der node_presave function in der Datenbank gespeichert. Es geht mir also um die Speicherung des Wertes in der Datenbank.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist das Feld denn Bestandteil

Eingetragen von wla (9461)
am 14.12.2012 - 11:08 Uhr

Ist das Feld denn Bestandteil des Datentyps? Wenn Du Dir die Felder des Datentyps ansiehst, ist dieses Feld dabei? Sonst mußt Du erst das Feld über entsprechende Hooks definieren in einem eigenen Modul und/oder mittels der zugehörigen Hooks den Datentyp um dieses Feld erweitern. (Oder Du legst den Datentyp über die Benutzeroberfläche mit diesem Feld an.) Wenn Drupal nicht weiß, daß Dein Feld ein Bestandteil des Nodes ist, wird das Feld selbstverständlich auch nicht gesichert.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hab meinen Fehler gefunden.

Eingetragen von Lirius (88)
am 17.12.2012 - 15:10 Uhr

Hab meinen Fehler gefunden. Steige wieder in Php ein, deswegen passieren mir manchmal dumme Fehler. Ich habe $node->field_url['und']['0']['value'] einer Variable zugewiesen und dieser dann einen Wert zugewiesen. :P

Herzlichen Dank!

Edit: Bin weiterhin am erweitern des Moduls. Gibt es einen Hook, der überprüft ob ein Node existiert, welcher in Feld A den Wert A hat und in Feld B den Wert B??

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nein, so etwas gibt es nicht

Eingetragen von wla (9461)
am 17.12.2012 - 18:23 Uhr

Nein, so etwas gibt es nicht als Hook, da die doch etwas andere Aufgabenstellungen haben. Du könntest das aber mittels Views basteln. In den Einstellungen zu Views kannst Du angeben, daß Du die zugehörige Query bei der Vorschau sehen möchtest. Die nimmst Du dann, überarbeitest sie noch mal ein wenig und baust sie dann in Dein Modul ein. Sieh Dir dazu die Datenbank API von Drupal an.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank für deine Tips :D

Eingetragen von Lirius (88)
am 25.12.2012 - 12:58 Uhr

Vielen Dank für deine Tips :D

Edit: Wie kann ich in Drupal überprüfen, ob der $link in Drupal existiert, also das ein Inhalt gefunden wurde.
-> Hab es jetzt selbst eine Funktion geschrieben, da es anscheinend keine funktionen dafür gibt.

Danke für die Hilfe!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 1 Tag 13 Stunden
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Tagen 5 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 8 Wochen 3 Stunden
  • Update: jetzt gibt's ein
    vor 8 Wochen 22 Stunden
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 2 Tagen
  • In der entsprechenden View
    vor 9 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 21 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association