Modul-Entwicklung
Datenabgleich
Eingetragen von benny1979 (119) am 11.07.2012 - 14:22 Uhr inHallo,
ich habe eine CSV Liste mit Daten, die ich regelmäßig mit Drupal abgleichen muß. Mein Modul liest die Datei per Drupal-Batch ein und führt ein node_save aus Performance-Gründen nur dann durch, wenn sich die Daten wirklich geändert haben.
Horizont erweitern
Eingetragen von NaxChefkoch (1) am 08.07.2012 - 10:22 Uhr inHeyho Leute,
ich hab eigentlich eine recht allgemeine Frage. Ich beschäftige mich nun seit einigen Tagen mit der Entwicklung von Drupal Modulen, aber irgendwie hab ich es noch nicht gecheckt.
Zur Info: Vorher hab ich für Joomla! entwickelt und komme daher auf das hook System nur sehr langsam klar ^^
Also zum Beispiel.
SQL - Abfrage Join mit multivalue field
Eingetragen von Sawascwoolf (125) am 06.07.2012 - 14:46 Uhr inHallo,
Ich versuche gerade eine eigene recht komplexe SQL Abfrage auf die Beine zu stellen, leider scheitert es gerade an einer Kleinigkeit. Diese könnte ich natürlich auch in eine extra Abfrage stecken, aber ich denke es sollte auch mit nur einer Abfrage funktionieren.
Folgendes Szenario:
Beteiligte Node-types:
-Koordinaten
-Spioberichte
-Spieler
Versionierung im Hintergrund immer aktivieren
Eingetragen von raffi (21) am 03.07.2012 - 10:56 Uhr inHallo zusammen,
ich möchte bei folgendem Szenario die Versionierung explizit aktivieren. Ein Nutzer kann durch ein selbsgeschriebenes Modul nur bestimmte Felder eines Inhaltstyps ändern. Eingeblendet sind auch nur diese Felder, alle anderen Labels u. ä. sind nicht sichtbar. Allerdings soll der Nachvollziehbarkeit halber die Versionierung explizit aktiviert sein. Normalerweise sollte das doch mit einer zusätzlichen Zeile im folgenden Quelltext möglich sein, oder sehe ich das falsch?
<?php
// $Id$
/*
* Created on 19.06.2012
*
* @file
* Geaendertes Auftragsformular
*
*/
# Implementierung von hook_form_alter
function new_auftrag_form_form_alter (&$form, $form_state, $form_id) {
global $user;
# Ueberpruefung ob Formular
# und ob auch das richtige Formular
if (isset($form['type']) && ($form_id == 'auftrag_node_form')) {
# welche Rolle hat der Nutzer
$role = db_result(db_query("
select
r.name
from
{role} r
inner join
{users_roles} ur
on
r.rid = ur.rid
where
ur.uid = %d
", $user->uid));
# blende nur für Consultants die Felder
# für Verantwortliche und Vertreter ein
if ($role == "Consultant") {
# blende Titel mittels #access aus
# damit Daten trotzdem
# über Formular gesendet und verarbeitet
# werden
$form['title']['#access'] = FALSE;
# blende alle body labels und fields aus
$form['body_field']['#access'] = FALSE;
}
}
}
?>Viele Grüße
- Anmelden oder Registrieren um Kommentare zu schreiben
Performance Rules <-> Nnodeapi
Eingetragen von Makku01 (58) am 03.07.2012 - 08:57 Uhr inIch hab mal eine generelle Frage,
hat es performancetechnisch Nachteile, gewisse Aktionen über Rules statt hook_nodeapi zu triggern oder nicht? Es geht nur darum, ein CCK Feld mit dem aktuellen Timestamp zu füllen wenn ein anderer Inhaltstyp gespeichert wird und eine andere Kondition über php als TRUE ausgewertet wird.
Was meint Ihr?
Vielen Dank!
Bitte Hinweise für Modulentwicklung (Technologien, Workflow, Stichworte)
Eingetragen von ak (1) am 27.06.2012 - 15:17 Uhr inHallo allerseits!
Ich befinde mich gerade bei meinen Arbeitgeber in Probezeit und soll ein Modul für Drupal 7 erstellen. Leider habe ich bisher noch kein Modul in Drupal programmiert, dafür aber bereits einige Jahre Erfahrung in der PHP-Programmierung. Als Unterstützung arbeite ich gerade das Buch (englisch) "Drupal 7 Module Development" durch.
Ich würde gern von euch erfahren mit welchen Drupal-Technologien ihr an die folgende Aufgabenstellung herangeht. Ich bin für jede Hilfe dankbar - Stichworte, Schlagworte oder gern auch eine kleine Beschreibung, denn im Moment habe ich keine wirkliche Idee wie ich die Aufgabe in Drupal implementieren soll...
Aufgabe
Eine XML-Datei, welche täglich aktualisiert wird enthält X Objekte mit jeweils gleichen Eigenschaften. Diese Objekte heißen Verfahren und die Eigenschaften bestehen zu 90% aus Fließtexten.
<?php
$aVerfahren = array(
'verfahren1' => array(
'text1' => 'Originaltext 1 von Verfahren 1',
'text2' => 'Originaltext 2 von Verfahren 1',
...
),
'verfahren2' => array(
'text1' => 'Originaltext 1 von Verfahren 2',
'text2' => 'Originaltext 2 von Verfahren 2',
...
),
...
)
?>Der Drupalredakteur soll nun folgende Möglichkeiten haben:
- Entscheiden welche Verfahren im Frontend angezeigt werden sollen.
- Für jedes sichtbare Verfahren entscheiden welche Eigenschaften (text1, text2, ...) wie dargestellt werden. Hier gibt es drei Möglichkeiten:
- ausblenden
- Originaltext (aus aktueller XML-Datei) verwenden
- einen benutzerdefinierten Text verwenden
Würde ich diese Datenstruktur als Array abbilden käme beispielsweise folgendes heraus:
<?php
define('VERFAHREN_VIEW_HIDE', 0);
define('VERFAHREN_VIEW_ORIGINAL', 1);
define('VERFAHREN_VIEW_CUSTOM', 2);
$aVerfahren = array(
'verfahren1' => array(
'text1' => array(
'view' => VERFAHREN_VIEW_HIDE,
'original' => 'Originaltext 1 von Verfahren 1',
'custom' => '',
),
'text2' => array(
'view' => VERFAHREN_VIEW_CUSTOM,
'original' => 'Originaltext 2 von Verfahren 1',
'custom' => 'Customtext 2 von Verfahren 1',
),
...
),
'verfahren2' => array(
'text1' => array(
'view' => VERFAHREN_VIEW_ORIGINAL,
'original' => 'Originaltext 1 von Verfahren 2',
'custom' => '',
),
'text2' => array(
'view' => VERFAHREN_VIEW_CUSTOM,
'original' => 'Originaltext 2 von Verfahren 2',
'custom' => 'Customtext 2 von Verfahren 2',
),
...
),
...
)
?>Im Falle der täglichen Aktualisierung der XML-Datei sollen alle Originaltexte der Verfahrenseigenschaften aktualisiert werden, benutzerdefinierte Texte jedoch erhalten bleiben.
Also: Wie sähe hier euer Workflow aus?
Danke für eure Ideen und liebe Grüße
Fehlermeldung beim Shop
Eingetragen von ibbis (9) am 25.06.2012 - 11:59 Uhr inHallo Leute,
ich habe folgendes Problem. Ich habe Drupal Commerce installiert. Alles funktioniert, jedoch wird mir nachdem ich die Bestellung abgeschicke, nach eingabe meiner Adressdaten folgende Fehlermeldung gezeigt:
Notice: Undefined index: pending in rules_action_mail() (Zeile 90 von /is/htdocs/../profiles/commerce_kickstart/modules/rules/modules/system.eval.inc).
Mitglieder eigener OG's mittels Widget hinzufügen/ entfernen - Mentor gesucht
Eingetragen von Xeto (209) am 24.06.2012 - 14:45 Uhr inIch bin nun schon einige Zeit auf der Suche nach einem Widget bzw. einem komfortableren Weg User einer oder mehreren eigenen OG's hinzuzufügen, um eine Art Google+ Kreise nachzubilden.
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen
Ausblenden Label im Bodybereich endet in falscher Funktionsweise
Eingetragen von raffi (21) am 22.06.2012 - 07:37 Uhr inHallo zusammen,
ich schreibe gerade ein kleines Modul, welches das Bearbeitungs- und Erstellungsformular für einen Inhaltstyp verändert. Ausgeblendet werden sollen Titel und Beschreibung, allerdings nur für eine bestimmte Benutzerguppe (Rolle). Die Inhalte der beiden ausgeblendeten Felder, sollen dabei aber mit gesendet werden. Die Rechte der betroffenen Rolle is insoweit eingeschränkt, dass diese keine Inhalte jeglicher Art erstellen darf.
Soweit klappt das gnaze Vorhaben auch, es scheitert an einem ich nenne es mal Luxusproblem. Das Label, oder vielmehr CSS-Div, in welchem die Infos zu den Eingabeformaten stehen sollen ebenfalls ausgeblendet werden. Sobald ich das aber mittels meiner Lösung mache, verhält sich Drupal sehr merkwürdig. Der Inhalt des Beschreibungsfeldes bleibt erhalten, wie gewünscht, wird allerdings in der Anzeige des Inhaltstyps nicht angezeigt. Noch komischer wird es dann auf Datenbankebene. Dort wird die letzte Version gelöscht aber die Felder body und teaser in node_revisions bleiben gefüllt.
Der Inhalt des Beschreibunsgfeldes erscheint erst wieder, sobald ich mit einem anderem Account, welcher die nötigen Rechte besitzt den Inhalt bearbeite.
Nun noch der Quelltext:
<?php
# Implementierung von hook_form_alter
function new_auftrag_form_form_alter (&$form, $form_state, $form_id) {
global $user;
if (isset($form['type']) && ($form_id == 'auftrag_node_form')) {
# welche Rolle hat der Nutzer
$role = db_result(db_query("
select
r.name
from
{role} r
inner join
{users_roles} ur
on
r.rid = ur.rid
where
ur.uid = %d
", $user->uid));
# blende für alle Consultants und nur für diese
# Titel- und Beschreibungsfeld aus
if ($role == "Consultant") {
# blende Titel und Beschreibung aus
# mittels #access damit Daten trotzdem
# über Formular gesendet und verarbeitet
# werden
$form['title']['#access'] = FALSE;
$form['body_field']['body']['#access'] = FALSE;
# blende alle body labels und fields aus
# macht die #access-Variante eigentlich überflüssig
# führt aber zu dem beschriebenem merkwürdigem
# Verhalten
$form['body_field']['#type'] = 'hidden';
}
}
}
?>Also die einfache Frage ist: Wie blende ich diese Labels zum Body-Bereich aus ohne dass dieses merkwürdige Verhalten eintritt.
Viele Grüße
- Anmelden oder Registrieren um Kommentare zu schreiben
db_select mit union, join und NULL spalten
Eingetragen von cpritz (91) am 19.06.2012 - 14:54 Uhr inHallo,
ich bin gerade dabei die Suche zu erweitern und möchte, dass die Tabelle {node} und {users} bei einer Anfrage gleichzeitig durchsucht werden. Dazu habe ich eine mysql-Abfrage erfolgreich getestet, bekomme sie aber nicht in Drupal umgesetzt. Das Problem besteht darin, dass ich für das UNION Spalten mit dem Wert NULL einfüge. Wie macht man das?
Hier meine Abfrage:
SELECT * FROM(
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen

Neue Kommentare
vor 1 Tag 20 Stunden
vor 1 Woche 5 Tagen
vor 1 Woche 6 Tagen
vor 9 Wochen 3 Tagen
vor 9 Wochen 4 Tagen
vor 9 Wochen 4 Tagen
vor 10 Wochen 2 Tagen
vor 10 Wochen 2 Tagen
vor 10 Wochen 6 Tagen
vor 10 Wochen 6 Tagen