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

Modul-Entwicklung

Fragen und Tipps zur Entwicklung eigener Drupal-Module.

Datei-Upload mit Progressbar

Eingetragen von Scentyoo (60) am 18.05.2011 - 17:51 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo, ich würde gerne ein Datei-Upload mit Progressbar erzeugen (so wie in dem angehängten Bild). Dabei soll lediglich die Datei in ein Verzeichnis hochgeladen werden, aber es sollen keine Einträge in die Datenbank geschrieben werden. Am besten sollte das ganze noch per Multiupload (5 Dateien) funktionieren.

Wie muss ich das $form-Array aufbauen?

  • 2 Kommentare
  • 1 Anhang

Mehrere Modulpfade (hook_menu) auf einer Seite einbinden

Eingetragen von striker182 (8) am 16.05.2011 - 08:17 Uhr in
  • Modul-Entwicklung

Hallo zusammen,
ich habe ein kleines Archivmodul geschrieben, dass mir je nach Pfad Supporttickets aus einem bestimmten Zeitraum ausgibt.
Zum ansprechen habe ich hook_menu verwendet. Der Pfad /tickets/top10 gibt mir beispielsweise die aktuellsten 10 aus, /tickets/top100 die letzten 100 usw.

  • 3 Kommentare
  • Weiterlesen

[gelöst] override theme_location_cck_field_map in Modul location\contrib\location_cck

Eingetragen von leda.ch (977) am 10.05.2011 - 13:19 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo zusammen,

Konnte schon mal jemand im Titel benannte Funktion in einem eigenen Modul überschreiben?

Was auch immer ich anstelle (PHPTemplate, Themename, Modulname davor...), Cache löschen
etc., schlägt die Theme Engine einfach nicht an.
Ist ja nicht das erste Mal, dass ich eine Funktion überschreibe, aber genau diese da weigert sich...

  • 7 Kommentare
  • Weiterlesen

link in page.tpl

Eingetragen von Nevson (158) am 10.05.2011 - 13:18 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

HI,

ich suche gerade nach einer schnellen Möglichkeit ein tag in den head Bereich der page.tpl zu bekommen mit dynamischen Inhalt.
Genauer gesagt: ich habe Videos per taxonomy Content Modul dargestellt, Video + Thumbnail, nun möchte ich die url des thumbnail in einen tag in den Header einbinden um dieses Bild beim sharen zb. Facebook nutzen zu können.
Jemand eine Idee??

  • 12 Kommentare

[gelöst] Variable %s am Anfang einer URL mit menu_hook

Eingetragen von Medienopfer98 (65) am 06.05.2011 - 15:40 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Wie der Titel schon sagt, versuche ich mit Menu_Hook mir SEO Urls aufzubauen, bzw. diese in einem Modul zu definieren. Irgendwie tue ich mir aber grad damit etwas schwer. Folgendes habe ich bereits angelegt und funktioniert:

$items['mymod/%/%node'] = array(
'title callback' => 'node_page_title',
'title arguments' => array(2),
'page callback' => 'node_page_view',

  • 4 Kommentare
  • Weiterlesen

abhängige Listenfelder mit AJAX

Eingetragen von Micha1111 (290) am 06.05.2011 - 10:56 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Es gibt zwei über die Benutzerobfläche erstellte Inhaltstypen, nämlich
Vereine (es gibt dann auch 4 eingegebene Mannschaften)
und
Spieler (es gibt dann auch zu jeder Mannschaft 4 Spieler, also insgesamt 16 Spieler)

Im Inhaltstyp Spieler gibt es ein per Modul "References" ermöglichtes Nodereferencefeld spieler_team, in dem die nid des betreffenden Vereins gespeichert ist.
Nun habe ich einen dritten Inhaltstypen Brettpaarung erstellt, in dem es zwei Nodereferencefelder gibt, nämlich
brettpaarung_brettheimteam
und
brettpaarung_brettheimspieler
gibt.

Nachdem ein brettheimteam ausgewählt wurde, sollen im Feld brettheimspieler nur noch die zur Mannschaft gehörenden Spieler angezeigt werden.

Mit dem folgenden Code funktioniert das auch für neue (also node/add) Datensätze vom Typ brettpaarung:

<?php

function brettpaarung_form_alter(&$form, &$form_state, $form_id) {

  //drupal_set_message("Form ID is : " . $form_id);
  //drupal_set_message('<pre>'. print_r($form, 1) .'</pre>');

switch ($form_id) {
   
case 'brettpaarung_node_form':

$form['brettpaarung_brettheimteam'][LANGUAGE_NONE] += array(
'#ajax' => array(
        'callback' => 'brettpaarung_callback',
        'wrapper' => 'dropdown-second-replace',
     ),
);

$ausgabetext = '';
    if (!empty($form_state['values']['brettpaarung_brettheimteam'])) {
$ausgabetext = $form_state['values']['brettpaarung_brettheimteam'][LANGUAGE_NONE][0]['nid'];
    }

drupal_set_message('<pre>'. $ausgabetext .'</pre>');

$form['brettpaarung_brettheimspieler'][LANGUAGE_NONE]['#description'] = 'Die möglichen Spieler der Heimmannschaft.';
$form['brettpaarung_brettheimspieler'][LANGUAGE_NONE]['#options'] = _ajax_example_get_second_dropdown_options($ausgabetext);
$form['brettpaarung_brettheimspieler'][LANGUAGE_NONE]['#default_value'] = ''; //???
$form['brettpaarung_brettheimspieler'][LANGUAGE_NONE] += array(
'#prefix' => '<div id="dropdown-second-replace">',
'#suffix' => '</div>',
);

break;

default:
break;

}
}

function brettpaarung_callback($form, $form_state) {
    return $form['brettpaarung_brettheimspieler'];
}

function _ajax_example_get_second_dropdown_options($arg) {
 
  $query = db_select('node', 'n');
 
  $query->condition('n.type', 'spieler', '=')
        ->fields('n', array('nid', 'title'));
  $query->join('field_data_spieler_team', 's', 'n.nid = s.entity_id');
  $query->condition('s.spieler_team_nid', $arg, '=');
 
  $result = $query->execute();
 
  $options = array();
 
  $options['_none'] = '- Keine -';
 
  foreach ($result->fetchAll() as $node) {
    $options[$node->nid] = $node->title; 
    }

      return $options;
 
}

Wählt man eine Mannschaft aus, wird der AJAX-callback ausgelöst und anschließend sind die Spieler dieser Mannschaft auswählbar, soweit wunderbar.

Nun zum Problem:

Wenn ich eine bereits gespeicherte Paarung erneut aufrufe (in der bereits eine Mannschaft und auch ein Spieler ausgewählt wurde, also node/edit), zeigt das Listenfeld für den brettspieler immer nur - keine - an.
Soweit ich das bisher feststellen kann, liegt es daran, dass form_state['values']['brettheimteam'] nach dem Öffnen des Formulars immer leer ist, statt den schon vorhandenen Wert (die nid des Vereins) auszulesen. Das passiert erst wenn ich erneut einen anderen Verein auswähle.

konkrete Frage:

Wie bringe ich Drupal dazu, schon beim öffnen des Edit-Formulars
1. den Wert des Feldes brettheimteam auszulesen
2. die ajax_callback-Funktion auszuführen und damit die richtige Spielerliste anzuzeigen
und
3. den richtigen Spieler in den #default_value des Feldes brettheimspieler zu schreiben ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

[gelöst]JS CSS mit Ajax Request ;Drupal.attachBehaviors Problem

Eingetragen von dennis605 (138) am 05.05.2011 - 20:46 Uhr in
  • Modul-Entwicklung

Hi, ich hätte gerne eure Lösungen, bzw. Lösungsvorschläge, oder nur Lösungsansätze für folgendes Problem:

"Drupal.attachBehaviors" allein funktioniert nicht zufriedenstellend in meinem Fall.
Kennt jmd. eine adäquate Lösung, wie man benötigte(s) Css und JS Scripte, für Inhalt, der durch eine Ajax Anfrage angefordert wurde, nachlädt bzw. nachladen lässt.

  • 1 Kommentar
  • Weiterlesen

[gelöst] Node Input-Felder speichern

Eingetragen von Medienopfer98 (65) am 03.05.2011 - 15:57 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x oder neuer

Habe ein neuen Nodetypen und tue mir grad schwer die Daten zu speichern mit node_save() und finde leider auch keine weitern Infos zu meinem Problem. Folgende Funktion habe ich, die auch nach absenden des Formulars ausgeführt wird:

function meinformular_submit($form, &$form_state)
{
$values = $form_state['values'];
$node = node_load($values['nid']);
$node->hobby = $values['hobby'];

  • 3 Kommentare
  • Weiterlesen

[gelöst]Ajax implementierung mal anders

Eingetragen von dennis605 (138) am 01.05.2011 - 17:26 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo liebe Drupal Fans,

ich versuche nun schon länger meine Homepage mit ajax zu erweitern - bisher leider ohne Erfolg.
http://www.drupalcenter.de/node/34774
Ich habe schon verschiedene Beiträge zu dem Thema erstellt, die auch sehr hilfreich waren, aber leider noch nicht den "Durchbruch" brachten.
Deshalb habe ich mir eine andere Vorgehensweise überlegt.
Ich denke, wenn folgendes JS Script immer die komplette Website lädt

Drupal.behaviors.my_ajax = function (context) {
    $('#content-group-inner .node a').live('click', function (e) {
        var url = $(this).attr('href');
        //$('#content-region-inner').slideUp('slow');
        $('#content-region-inner').empty().html('<img src="ajax-loader.gif" style="margin-left:50%;"/>');
        xhr = $.ajax({
            data: 'ajax=1',                    //hierauf lauschen die preprocess Funktionen(funktioniert auch)
            type: 'GET',
            url: url,
            success: function (data) {
                $('#content-region-inner').replaceWith(data);
                Drupal.attachBehaviors(context);
            }
        });
        return false;
    });
};

könnte ich vielleicht versuchen Drupal bei einer Ajax Anfrage dazu zu bringen nur den Content auszugeben.
Also habe ich in mein Modul 2 hook_preprocess eingebaut, die auf eine Anfrage über Ajax, 2 andere tpl.php Dateien für die Ausgabe verwenden:
node-ajax.tpl.php und page-ajax.tpl.php.
So habe ich es gemacht:
function my_ajax_preprocess_page(&$vars, $hook) {

if ( isset($_GET['ajax']) && $_GET['ajax'] == 1 ) {
   
    $vars['template_file'] = 'page-ajax';
  }
 
}
function my_ajax_preprocess_node(&$vars, $hook) {

if ( isset($_GET['ajax']) && $_GET['ajax'] == 1 ) {
   
    $vars['template_file'] = 'node-ajax';
  
  }
 
}

Jetzt dachte ich, ich könnte in der node-ajax.tpl.php nur ein print $content einfügen, und damit nur content ausgeben.
Aber weit gefehlt.
Eigenartigerweise kann ich meine node-ajax und page-ajax.tpl.php als 1:1 Kopie, wie die original Dateien meines Themes verwenden, wenn ich nur das
print $content aus meiner node-ajax.tpl entferne.
Zumindest lädt sich dann nicht die ganze Seite neu, sondern alle benötigten JS und CSS Scripte, und natürlich, wie nicht erwünscht, aber erstmal egal, die komplette Seitenstruktur. Sobald ich aber den Content mit ausgebe, habe ich wieder eine kompletten reload meiner Seite.
Wie kann das sein, da ich mir den Inhalt meiner $content Variable angeschaut habe, und diese definitiv nur den Inhalt hat, den ich benötige.

Ich bitte um eure Erkärung bzw. Hilfe um zu verstehen, wie sich dieses Verhalten erklären lässt.

Anbei poste ich nochmal den kompletten Code meines Moduls, aber ohne die tpl.php Dateien, um den Post nicht unnötig aufzublähen, da die sich von anderen wohl wenig unterscheiden:

my_ajax.module:

<?php
function my_ajax_init()
{
    drupal_add_js(drupal_get_path('module', 'my_ajax') . '/my_ajax.js');
}
function my_ajax_preprocess_page(&$vars, $hook)
{
    if (isset($_GET['ajax']) && $_GET['ajax'] == 1) {
        $vars['template_file'] = 'page-ajax';
    }
}
function my_ajax_preprocess_node(&$vars, $hook)
{
    if (isset($_GET['ajax']) && $_GET['ajax'] == 1) {
        $vars['template_file'] = 'node-ajax';
    }
}

my_ajax.js:

Drupal.behaviors.my_ajax = function (context) {
    $('#content-group-inner .node a').live('click', function (e) {
        var url = $(this).attr('href');
        //$('#content-region-inner').slideUp('slow');
        $('#content-region-inner').empty().html('<img src="ajax-loader.gif" style="margin-left:50%;"/>');
        xhr = $.ajax({
            data: 'ajax=1',
            type: 'GET',
            url: url,
            success: function (data) {
                $('#content-region-inner').replaceWith(data);
                Drupal.attachBehaviors(context);
            }
        });
        return false;
    });
};

  • 14 Kommentare

Url prüfen ob sie valid ist

Eingetragen von Halpha (7) am 30.04.2011 - 19:02 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo,

ich habe eine Formular und in diesem Formular befindet sich ein textfield in das eine url eingetragen werden soll. Ich möchte jedoch prüfen ob diese url stimmt. Also http://abc.de z.b

Ich hab das an einer anderen Stelle im Projekt schon gesehen, nur leider ist das Projekt zu umfangreich um nachzuvollziehen wo genau denn diese Stelle ist.

<?php

$form
['project_internal_fields'][$field->fid] = array(
                   
'#type'                => 'textfield',
                   
'#title'            => t($field->title. " is"),
                   
'#description'      => t($field->explanation),
                   
'#default_value'    => $is_new ? "" : $node->project_internal_fields[$field->fid],
                   
'#weight'           => $field->weight
               
);

?>

So siehts momentan aus. Hat jemand eine Idee?

Lg

Michael

  • 2 Kommentare
  • « erste Seite
  • ‹ vorherige Seite
  • …
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • …
  • nächste Seite ›
  • letzte Seite »

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • lstin tombent homophonic wikke
  • Rolle erstellen nicht zu finden
  • 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
Weiter

Neue Kommentare

  • Rollen
    vor 2 Tagen 17 Stunden
  • Inzwischen sind wir bei
    vor 1 Woche 6 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 2 Stunden
  • melde mich mal wieder, da ich
    vor 9 Wochen 4 Tagen
  • Hey danke
    vor 9 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 14 Stunden
  • In der entsprechenden View
    vor 11 Wochen 14 Stunden

Statistik

Beiträge im Forum: 250238
Registrierte User: 20466

Neue User:

  • StevenEness
  • FoxPiola
  • ocvk2810

» 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 39 Gäste online.

Drupal Security

  • Login Disable - Less critical - Access bypass - SA-CONTRIB-2026-008
  • Central Authentication System (CAS) Server - Less critical - XML Element Injection - SA-CONTRIB-2026-007
  • Drupal Canvas - Moderately critical - Access bypass - SA-CONTRIB-2026-006
  • Microsoft Entra ID SSO Login - Critical - Access bypass - SA-CONTRIB-2026-005
  • AT Internet Piano Analytics - Moderately critical - Cross-site Scripting - SA-CONTRIB-2026-004
Weiter

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