Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Verständnisfrage zu Fields

Eingetragen von JenneMander (112)
am 05.09.2013 - 14:15 Uhr in
  • Anfängerfragen
  • Drupal 7.x oder neuer

Hi,
ja es tut mir Leid, dass ich euch mit wahrscheinlich trivialen Fragen nerven muss. Aber, ich finde einfach keine Lösungen zu diesem Thema:
Ich lege ein Liste|Text Feld an und übergebe dieser Liste mehrere Werte, wenn ich nun einen Node anlege (ein Wert der Liste ist also verwendet) und nach diesem Text in der DB suche, finde ich ihn unter field_data_fieldname und unter field_revision_fieldname. Ändere ich diesen Wert ändert sich in der Ansicht rein gar nichts. Weiterhin ist mir unschlüssig, wie die Liste gespeichert wird, wenn noch gar kein Node mit dem Feld angelegt ist, dann ist kein Wort der Liste zu finden. Kann mir das jemand eventuell erklären?
mit freundlichem Gruß
Jens

‹ submission:? und Webform2pdf wie soll ich anfangen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe dein Problem nicht verstanden

Eingetragen von ronald (3857)
am 05.09.2013 - 18:06 Uhr

aber generell solltest du NIEMALS irgendetwas in der Datenbank ändern, außer es ist ausdrücklich in einer Anleitung beschrieben.

Drupal ist hochgradig relational, und die Art und Weise, wie Informationen abgelegt werden ist keineswegs trivial.

Versuche zu beschreiben, was du tun möchtest, dann können wir leichter helfen.

Für Listen, die mit Einträgen verlinkt werden, ist am besten Taxonomy zu benutzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, danke für die Antwort.

Eingetragen von JenneMander (112)
am 06.09.2013 - 05:58 Uhr

Hi,
danke für die Antwort. Das NIEMALS habe ich befürchtet. Drupal ist nur die Schnittstelle für andere Bibliotheken und Scripst in unserem System. So starten wir einige Prozesse über entsprechende Nodes. Wenn diese Prozesse laufen bzw. beendet sind, ändern sich auch einige Attribute (Fields-Werte) des Nodes und diese möchte ich nicht manuell ändern, daher muss ich das über die Datenbank machen, es sei denn es gibt (PHP-) Funktionen, an die ich die entsprechenden neuen Werte übergeben kann.
mit freundlichem Gruß
Jenne

das mit den Listen lassen wir erstmal, da ging es mir darum, wenn ich ein List|Text-Field erzeuge und mit Werten fülle, dann sind die Werte in der Datenbank nicht zu finden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sieh dir für diese Zwecke Feeds an

Eingetragen von ronald (3857)
am 06.09.2013 - 08:09 Uhr

Mit feeds (und Zusatzmodulen) kannst du Inhalte aus anderen Systemen (auch automatisiert) in Drupal holen, oder aus Drupal ausspielen.

Ob XML oder CSV bleibt dir überlassen.

Darüber lassen sich auch Taxonomy-Listen pflegen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, damit werde ich mich

Eingetragen von JenneMander (112)
am 06.09.2013 - 10:07 Uhr

Okay, damit werde ich mich jetzt einmal näher beschäftigen. Ich möchte aber dennoch explizit nur ein einziges Feld eines bestehenden Nodes ändern, dass muss doch auch möglich sein.
mfg
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

In einem eigenen Modul kannst

Eingetragen von wla (9461)
am 06.09.2013 - 13:23 Uhr

In einem eigenen Modul kannst Du so etwas leicht realisieren. Du definierst in Deinem Modul einen Pfad, über den eine von Dir geschriebene Routine aufgerufen wird. Die kann sich jetzt von Irgendwo, z.B. mittels eines HTTP-Request auf einer anderen Webseite, die Informationen abholen, den Node laden und das Feld verändern. Aber da mußt Du Dir jetzt kreativ etwas überlegen.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, vielen Dank, das scheint

Eingetragen von JenneMander (112)
am 09.09.2013 - 07:01 Uhr

Hi,
vielen Dank, das scheint auch irgendwie das richtige Vorgehen zu sein. Doch kriege ich das eventuell auch mit einem einfachen php-Script hin?
Hier stellt sich mir natürlich die Frage, wie ich die Drupal-Api eingebunden bekomme

<?php
$nid
= 10;
$node = node_load($nid);
$title = $node->title;
var_dump($node);
?>

mfg
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es ist viel einfacher, ein

Eingetragen von wla (9461)
am 09.09.2013 - 08:33 Uhr

Es ist viel einfacher, ein eigenes Drupal Modul zu schreiben:
Du überlegst Dir einen eindeutigen Namen für Dein Modul [MODUL].
Du legst ein sites/all/modules einen Ordner mit diesem Namen an.
Da hinein kommen zwei Dateien [MODUL].info und [MODUL].module (das ist PHP-Code)
[MODUL].info:

name = Lesbarer Name für Dein Modul (erscheint auf der Modul Seite)
description = Beschreibung der Funktion Deines Moduls (erscheint auf der Modul Seite)
core = 7.x

Evtl. kann man dependencies eintragen.
dependencies[] = modulname (immer eine neue Zeile pro Modul, das man als Voraussetzung braucht)

[MODUL].module
<?php
/**
* Implements hook_menu().
*/
function [MODUL]_menu() {
 
$items = array();
 
$items['Dein/Pfad'] = array(
   
'title' => 'ein Titel',
   
'description' => 'Eine Beschreibung',
   
'page callback' => '[MODUL]_function_name',
   
'access callback' => TRUE,
  );
  return
$items;
}

function [
MODUL]_function_name() {
/*
Dein Code Hier
*/
}
?>

Die untere PHP-Klammer sollte man immer weglassen. Die dient hier nur zum Syntax Highlighting.
Dann hast Du ein funktionierendes Modul, das Du über die Drupal Modul-Seite aktivieren kannst und in dem die gesamte Drupal-API zur Verfügung steht.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Werner, ich danke dir

Eingetragen von JenneMander (112)
am 10.09.2013 - 06:37 Uhr

Hallo Werner,
ich danke dir für dein Input. Leider scheine ich das Prinzip, trotz einiger Tutorials nicht ganz zu verstehen. Mein Ansatz sieht ja jetzt so aus, nur leider habe ich keine Ahnung, wie ich die Funktion jetzt vernünftig ansprechen kann.

<?php
/**
* Implements hook_menu().
*/
function nodeupdate_menu() {
 
$items = array();
 
$items['admin/config/Modul'] = array(
   
'title' => 'NodeUpdate',
   
'description' => 'mit Hilfe dieses Moduls, soll es möglich werden ein Nodeupdate durchzuführen',
   
'page callback' => 'nodeupdate_function_nodeupdate',
   
'access callback' => TRUE,
  );
  return
$items;
}

function
nodeupdate_function_nodeupdate($nodeid,$newfieldvalue) {   //Nodeid muss vorhanden sein
   
   
$node = node_load($nodeid);
   
$node->field_status[$node->language][0]['value'] = $newfieldvalue;
   
node_save($node);
}
 
?>

Reicht das nun aus oder muss da noch deutlich mehr rein?
mit freundlichem Gruß
Jenne
p.s. das Drupal Modul fivestars habe ich aus dem Drupal 7 - Buch schon nach gebaut, nur leider fehlt mir hier jeglicher Ansatz, denn ich brauche keine Oberfläche oder sonstiges.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich sehe zwei Probleme, der

Eingetragen von wla (9461)
am 10.09.2013 - 07:01 Uhr

Ich sehe zwei Probleme, der Pfad ist nicht korrekt (Du solltest keinen Pfad aus dem Admin-Bereich dafür nutzen) und der hat außerdem keinen Parameter, denn wie sollen zweitens Deine Argumente in die aufgerufene Funktion kommen?
Sieh Dir doch mal das Node-Modul an. Da siehst Du wie man so etwas macht. Du brauchst in hook_menu noch weitere Angaben im Items-Array. Sieh Dir dazu die API Dokumentation an.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, vielen Dank. Das mit dem

Eingetragen von JenneMander (112)
am 10.09.2013 - 07:08 Uhr

Hi, vielen Dank. Das mit dem Pfad erschließt sich mir.Gehörst du einer Softwareschmiede oder einem Dienstleister an?
mfg
Jenne

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, also, wenn ich jetzt

Eingetragen von JenneMander (112)
am 10.09.2013 - 12:22 Uhr

Hi, also, wenn ich jetzt folgenden Code ausführe, nach der function_hook_menu - Anweisung der API, sollte ich eigentlich auch den fisch ausgegeben bekommen. Das bekomme ich aber nicht, wenn ich drupalbeispiel.de/nodeupdate/fleisch/ aufrufe bekomme ich lediglich die "echo"s und das wort fleisch übergeben. Wie schaffe ich es dass ich da mehrere Werte abfangen und übergeben kann?
mit freundlichem gruße
Jens
p.s.@Werner ich werde mich sicherlich in Zukunft einmal beruflich bei dir melden, bzw. jemand aus der Firma

<?php

/**
* Implements hook_menu().
*/
function nodeupdate_menu() {
 
$items = array();
 
$items['nodeupdate'] = array(
   
'title' => 'NodeUpdate',
   
'description' => 'mit Hilfe dieses Moduls, soll es möglich werden ein Nodeupdate durchzuführen',
   
'page_arguments'=> array(1,'fisch'),
   
'access callback' => TRUE,
   
'page callback' => 'nodeupdate_function_nodeupdate',
  );
  return
$items;
}

function
nodeupdate_function_nodeupdate($arg) {   //Nodeid muss vorhanden sein
   
$nodeid=12;
   
$newfieldvalue="huhu";
   
   
var_dump($arg);
   
    echo
$nodeid;
    echo
$newfieldvalue;}
?>

Okay, ich habe es gerafft, wenn ich mehrer Parameter an die URL hänge, dann übergebe ich die einfach indem ich die Funktion erweitere:

<?php
function nodeupdate_function_nodeupdate($arg1,$arg2....) {   //Nodeid muss vorhanden sein
   
$nodeid=12;
   
$newfieldvalue="huhu";
   
   
var_dump($arg1);
   
var_dump($arg2);
....
   
    echo
$nodeid;
    echo
$newfieldvalue;} 
?>

Aber geht das nicht irgendwie eleganter? mit nodeupdate?wert1=ads&wert2=das

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du übergibst 2 Argumente bei

Eingetragen von wla (9461)
am 10.09.2013 - 12:23 Uhr

Du übergibst 2 Argumente bei page_arguments, den Wert #### aus der URL bei nodeupdate/#### und den String 'fisch'. In der Funktion
function nodeupdate_function_nodeupdate($arg)
hast Du aber nur ein Argument angenommen.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Okay, das ich jetzt mehrere

Eingetragen von JenneMander (112)
am 10.09.2013 - 12:28 Uhr

Okay, das ich jetzt mehrere Werte ausgelesen bekomme, habe ich hinbekommen, jedoch nicht die 'page_arguments'. Naja nach und nach werde ich dahinter kommen.
mfg
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sieh Dir mal die

Eingetragen von wla (9461)
am 10.09.2013 - 12:31 Uhr

Sieh Dir mal die API-Dokumentation an zu drupal_get_query_parameters.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

He, vielen lieben Dank, ich

Eingetragen von JenneMander (112)
am 10.09.2013 - 13:49 Uhr

He, vielen lieben Dank, ich habe es jetzt auch hinbekommen, nur glaube ich das nicht alle Instanzen des Feldes, abgeändert werden, vielleicht kannst du mir noch einen Ratschlag geben.

<?php
<?php
/**
* Implements hook_menu().
*/
function nodeupdate_menu() {
 
$items = array();
 
$items['nodeupdate'] = array(
   
'title' => 'NodeUpdate',
   
'description' => 'mit Hilfe dieses Moduls, soll es möglich werden ein Nodeupdate durchzuführen',
   
'page_arguments'=> array(1,'foo'),
   
'access callback' => TRUE,
   
'page callback' => 'nodeupdate_function_nodeupdate',
  );
  return
$items;
}

function
nodeupdate_function_nodeupdate($nodeid,$wert) {   //Nodeid muss vorhanden sein
    //var_dump(node_load($nodeid));
    //var_dump($wert);
   
    //$node = node_load($nodeid);
    //var_dump(node_load($nodeid));
   
$node = node_load($nodeid);
   
//$field = $node->field_running['und'][0]['value'];
    //var_dump($node->field_running['und'][0]['value']);
   
$node->field_running['und'][0]['value'] = $wert;
   
node_save($node);
   
//var_dump($node);
}
?>

Der Aufruf nodeupdate/12/wert ändert jetzt für Node 12 den Wert des field_running in "wert", reicht das echt schon? Wie schaut es mit den revisions aus? werden die auch abgeändert?
mfg
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da bin ich jetzt nicht

Eingetragen von wla (9461)
am 10.09.2013 - 16:37 Uhr

Da bin ich jetzt nicht sicher, da ich das noch nicht ausprobiert habe. Ich vermute, daß node_save eine neue Version des Nodes erzeugt. Wieso sollten auch die alten Feldwerte geändert werden? Das widerspricht doch gerade dem Revisioning.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, okay. Also bis jetzt

Eingetragen von JenneMander (112)
am 12.09.2013 - 05:46 Uhr

Hi, okay. Also bis jetzt scheint das alles prima zu laufen, ich beschäfftige mich jetzt nur noch mit der Query-Mehtode, damit die URL "anständiger" abgefragt wird und auch dem defacto Standard entspricht.
Ich werde die entsprechende Funktion posten.
mfg
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • 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?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 6 Tagen 5 Stunden
  • Hey danke
    vor 6 Tagen 23 Stunden
  • Update: jetzt gibt's ein
    vor 1 Woche 17 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 5 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 5 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 2 Tagen
  • In der entsprechenden View
    vor 2 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 2 Tagen
  • gelöst
    vor 4 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 3 Minuten

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» 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 4 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