it-swarm.com.de

Wie füge ich mit dem Webform-Modul ein Knotenreferenzfeld hinzu?

Ist es möglich, mit dem Modul Webform ein Knotenreferenzfeld hinzuzufügen?

Wenn ja, wie kann ich es in mein Webformular einfügen?

4
Tyler Durden

Ich habe dies getan, aber als Benutzerreferenz, indem ich ein neues Modul und eine neue Webform-Komponente erstellt habe.

Diese neue Komponente erstellt die Benutzerreferenzfunktionalität effektiv neu und ermöglicht es Ihnen, sie im Webformular auszuwählen. Sie können den gleichen Ansatz versuchen, um dies für eine Knotenreferenz zu tun.

Außerdem finden Sie in den Webformularbeispielen einige gute Beispiele, die Ihnen bei den Grundlagen zum Erstellen einer neuen Komponente mit Hooks wie _webform_defaults_component() helfen.

Die Hauptsache, die Ihnen helfen wird, ist das '#autocomplete_path' => 'autocomplete/node', In _webform_render_component(), das Sie in der Komponente benötigen.

... Fügen Sie im Modul Folgendes hinzu (offensichtlich für die Knotensuche ändern):

//create a url path for the autocomplete
function hook_menu() {
  $items['autocomplete/users'] = array(
    'path' => 'autocomplete/users',
    'title' => 'Auto Complete Users',
    //page callback to a custom function
    'page callback' => 'hook_autocomplete_users',
    'type' => MENU_CALLBACK,
    'access arguments' => array('access content'),
  );
  return $items;
}


//custom function created to mimic auto complete functionailty
function hook_autocomplete_users($string = '') {
  $matches = array();
  $query = "SELECT u.name, u.uid FROM {users} u WHERE name LIKE LOWER('%s%%')";
  $result = db_query_range($query, $string, 0, 10);
  while ($user = db_fetch_object($result)) {
    $matches[$user->name.' uid:'.$user->uid] = $user->name;
  }
  //print drupal_to_js($matches);
  drupal_json($matches);
  //exit();
}

Sie müssen auch in der Knotenreferenz auswählen, was Sie möchten, da dies standardmäßig nur die NID ist, die in einer E-Mail ziemlich nutzlos wäre.

7
WestieUK

Entityforms Modul verwendet die Standardfelder Drupal), was bedeutet, dass Sie alle Standardfelder Drupal] verwenden können. Für diejenigen unter Ihnen, die Webforms verwendet haben Dieses Modul bringt die Funktionalität von Webform in die "Standard" Drupal Feld-/Entitätswelt.

Webform ist zwar ein großartiges Modul mit einer großen Fangemeinde, lässt sich jedoch nicht in Standardmodule Drupal feld- oder entitätsbezogene Module) integrieren. Für Drupal 7 Sites ist dies der Fall empfohlen, das Entityforms-Modul zu verwenden!

Wie Webform lässt es sich gut in das Modul Regeln für Formularübermittlungsbenachrichtigungen integrieren und ermöglicht eine komplexe Benachrichtigungslogik.

2
OSSGuys

Check out Webform-Referenzmodul . Ich denke, es passt perfekt zu Ihrem Fall.

Wie die Modulseite liest

Bietet eine Webform-Komponente, die auf einen Knoten/Begriff in Webform verweisen kann. Derzeit enthält das Modul Knoten-/Termreferenzkomponenten. Es bietet "Select List" und "Autocomplete" als Widget. Benutzerreferenz wird später hinzugefügt.

2
Gokul N K

Sie sollten das alte Webform-Modul sichern und sich Entity Form :) ansehen

Es ermöglicht Ihnen, zum Beispiel Node Referenzfeld für Ihr Formular hinzuzufügen. Waren ordentlich Modul!

2
hene
function MY_MODULE_webform_select_options_info() {
  $items = array();
  $items['my_custom_list'] = array(
    'title' => t('Custom list'),
    'options callback' => 'MY_MODULE_custom_list'
  );

  return $items;
}

function MY_MODULE_custom_list() {
  $my_custom_list = array(
    'foo' => 'bar',
  );

  return $my_custom_list;
}

Sie haben jetzt eine neue vorgefertigte Optionsliste. Wenn Sie einen neuen Feldtyp "Optionen auswählen" erstellen, können Sie "Vorgefertigte Optionsliste laden" auswählen und es gibt Ihre neue Liste

0
c232993