Modul-Entwicklung
Dynamische Optionsliste für List Field [gelöst]
Eingetragen von valderama (47) am 01.08.2011 - 15:08 Uhr inBräuchte ein List Field, bei dem die zur Verfügung stehenden Optionen dynamisch sind (Für jeden Node anders).
Da gibts wohl die Property "allowed_values_function" bei List Feldern -- das dürfte eine Art Callback sein. Allerdings finde ich keine gute Doku für wie man damit arbeiten kann.
Hat jemand schon mal damit rumgespielt und hat eventuell Tips?
Danke + Grüße,
Walter
UPDATE:
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen
Text beim Speichern modifizieren
Eingetragen von batman1983 (189) am 31.07.2011 - 12:29 Uhr inHallo zusammen,
ich möchte beim Speichern eines Nodes den Text auf bestimmte Links überprüfen und diese ggf. ändern. Durch mein Redaktionsteam, bin ich gezwungen, diese Änderung selbst händisch durchzuführen oder durch ein kleines Modul zu lösen.
Kennt jemand ein Modul, welches genau das macht, was ich mir modifizieren kann?
MFG Batman1983
Views in eigenem Modul
Eingetragen von Lumio (9) am 28.07.2011 - 14:10 Uhr inHallo,
ich versuche gerade ein Modul zu schreiben das mir eine gewisse View ausliest und in einer Region modifiziert darstellt.
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen
dynamische Menueinträge mit menu-hook erzeugen ohne Callback-Funktion
Eingetragen von GevatterTod (85) am 25.07.2011 - 21:23 Uhr inHi,
ich möchte in ein Menü über ein Modul mit dynamischen Menüpunkten füllen, also der klassische Link zum Benutzerkonto z.b. (user/ ' . $user->uid .' /edit).
Mir selbst ausgedacht und zum Thema gefunden habe ich bisher nur, dass man einen Funktionsaufruf als Callback definiert und dort entsprechend umleitet.
Das scheint mir aber irgendwie unnötig und umständlich:
- Anmelden oder Registrieren um Kommentare zu schreiben
- Weiterlesen
Ergebnisse unterhalb der $form
Eingetragen von andre8 (14) am 25.07.2011 - 20:21 Uhr inHi zusammen,
kann mir jemand sagen wie ich mir die Ergebnisse unterhalb der $form anzeigen lassen kann. (wert aus dropbox auswählen und dann submit)
Derzeit arbeite ich mit "$form_state['redirect']" in der submitmethode und verweise auf einen anderen link der zwei funktionen aufruft nämlich die form selbst und die results.
gibt es noch eine andere methode ?
lg andre
- Anmelden oder Registrieren um Kommentare zu schreiben
Editor für Drupal, Baukastenprinzip, HTML-Code
Eingetragen von psycho1987 (11) am 18.07.2011 - 18:24 Uhr inHallo,
ich habe versucht mich in verschiedenste CMS einzuarbeiten aber ich muss sagen das jedes große Schwächen besitzt.
Am besten hat mir dabei Drupal gefallen aufgrund der verschmelzung von Frontend und Backend UND wegen des guten Forums.
Bisher habe ich damals mit Dreamweaver und dann mit NVU per Editor meine Seiten erstellt, das hat auch immer bei kleineren Seiten super funktioniert.
[gelöst] tabelle unter form nach submit
Eingetragen von andre8 (14) am 13.07.2011 - 10:43 Uhr inhi gemeinde,
ich glaube ich brauch nen denkanstoss.
ich habe ein form das die daten in eine mysql tabelle pusht und per mail versendet.
jetzt möchte ich das nach dem submit auch eine tabelle unter dem form erzeugt wird die die daten aus der mysql tabelle holt.
wo muss ich die funktion sport_page_callback()
eintragen das das erreicht wird.
Danke vorab
LG Andre
<?php
/*
* Formular
*/
function sport_page_form($form_state) {
$form['event'] = array (
'#type' => 'select',
'#title' => t('Select your Event'),
'#options' => ev_entries(),
'#prefix' => '<div class="sport_event">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['lauf'] = array (
'#type' => 'select',
'#title' => t('Select your Run'),
'#options' => l_entries(),
'#prefix' => '<div class="sport_event">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['lastname'] = array(
'#type' => 'textfield',
'#title' => t('Enter your fullname'),
'#prefix' => '<div class="sport_fullname">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['firstname'] = array(
'#type' => 'textfield',
'#title' => t('Enter your firstname'),
'#prefix' => '<div class="sport_firstname">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['jahrgang'] = array (
'#type' => 'select',
'#title' => t('Enter the year of your birthday'),
'#options' => jg_entries(),
'#prefix' => '<div class="sport_jahrgang">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['verein'] = array(
'#type' => 'textfield',
'#title' => t('Enter your club'),
'#prefix' => '<div class="sport_verein">',
'#suffix' => '</div>',
);
$form['verband'] = array(
'#type' => 'textfield',
'#title' => t('Enter your association'),
'#prefix' => '<div class="sport_verband">',
'#suffix' => '</div>',
);
$options = array("Auswahl", "w", "m");
$form['geschlecht'] = array (
'#type' => 'select',
'#title' => t('Enter your male'),
'#options' => $options,
'#prefix' => '<div class="sport_jahrgang">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['telefon'] = array(
'#type' => 'textfield',
'#title' => t('Enter your telefonnumber'),
'#prefix' => '<div class="sport_tel">',
'#suffix' => '</div>',
);
$form['email'] = array(
'#type' => 'textfield',
'#title' => t('Enter your E-Mailaddress'),
'#prefix' => '<div class="sport_email">',
'#suffix' => '</div>',
);
$form['copy'] = array(
'#type' => 'checkbox',
'#title' => t('Send me a copy.'),
'#prefix' => '<div class="sport_copy">',
'#suffix' => '</div>',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
'#prefix' => '<div class="sport_submit">',
'#suffix' => '</div>',
);
$output = $form;
// $output .= sport_page_callback();
return $output;
}
function sport_page_form_submit($form, $form_state) {
//$timestamp = time();
//$datum = date("d.m.Y - H:i",$timestamp);
$eid = $form_state['values']['event'];
$name = $form_state['values']['lastname'];
$vorname = $form_state['values']['firstname'];
$verein = $form_state['values']['verein'];
$verband = $form_state['values']['verband'];
$jahrgang = $form_state['values']['jahrgang'];
$geschlecht = $form_state['values']['geschlecht'];
$lauf = $form_state['values']['lauf'];
$telefon = $form_state['values']['telefon'];
$email = $form_state['values']['email'];
$copy = $form_state['values']['copy'];
$sql = "INSERT INTO {e_anmeldung} (eid, datum, name, vorname, verein, verband, jid, geschlecht, lid, telefon, email, copy) VALUES('%d', '%d','%s','%s','%s','%s','%d','%s','%d','%s','%s', '%s')";
db_query($sql, $eid, time(), $name, $vorname, $verein, $verband, $jahrgang, $geschlecht, $lauf, $telefon, $email, $copy);
drupal_set_message('Anmeldung zur Teilnahme am '.$lauf.' für '. $name .', '. $vorname .' war erfolgreich !','status', TRUE);
if ($copy == 1 and $email != '') {
$message = array(
'to' => $email,
'subject' => t('Anmeldebestätigung für Event '.$lauf.' !'),
'body' => t('Anmeldung zur Teilnahme am '.$lauf.' für '. $name .', '. $vorname .' war erfolgreich !'),
'headers' => array('From' => 'my mail'),
);
drupal_mail_send($message);
}
}
function sport_page_callback(){
$eid = $form_state['values']['event'];
$result = db_query("SELECT * FROM `e_anmeldung` WHERE eid = 2");
$output = '';
$rows = array();
$header = array('Name','Vorname','Verein','Lauf');
$rows = array();
$i = 0;
while($row = db_fetch_object($result)){
$data = array();
$data[] = $row->name;
$data[] = $row->vorname;
$data[] = $row->verein;
$data[] = $row->lid;
$rows[] = $data;
$i++;
}
$output .= theme('table', $header,$rows);
}
?>Mehrer AJAX Buttons auf einer Formularseite
Eingetragen von conscienc3 (1) am 11.07.2011 - 22:14 Uhr inHi,
ich stehe vor einem AJAX Problem.
Ich habe zwei Fieldsets in meinem Formular. Jedes Fieldset hat einen Hinzufuegen- und Entfernenbutton ... damit moechte ich via AJAX dynamisch in das 1. Fieldset Textfelder und ins zweite ebenfalls Textfelder einfuegen, jedoch unterschiedlicher Art ... leider functioniert folgendes Codesnippet nicht:
<?php
function telquel_protocol_form($form, &$form_state) {
// Because we have many fields with the same values, we have to set
// #tree to be able to access them.
$form['#tree'] = TRUE;
$form['names_fieldset'] = array(
'#type' => 'fieldset',
'#title' => t('Plenumsteilnehmer'),
// Set up the wrapper so that AJAX will be able to replace the fieldset.
'#prefix' => '<div id="names-fieldset-wrapper">',
'#suffix' => '</div>',
);
// Build the fieldset with the proper number of names. We'll use
// $form_state['num_names'] to determine the number of textfields to build.
if (empty($form_state['num_names'])) {
$form_state['num_names'] = 3;
}
for ($i = 0; $i < $form_state['num_names']; $i++) {
if ($i < 3) {
$form['names_fieldset']['name'][$i] = array(
'#title' => t('@num. Teilnehmer', array('@num' => ($i + 1))),
'#type' => 'textfield',
'#required' => TRUE,
);
}
else {
$form['names_fieldset']['name'][$i] = array(
'#title' => t('@num. Teilnehmer', array('@num' => ($i + 1))),
'#type' => 'textfield',
);
}
}
$form['names_fieldset']['add_name'] = array(
'#type' => 'submit',
'#value' => t('Hinzufuegen'),
'#submit' => array('protocol_add_one_name'),
// See the examples in ajax_example.module for more details on the
// properties of #ajax.
'#ajax' => array(
'callback' => 'protocol_names_ajax_callback',
'wrapper' => 'names-fieldset-wrapper',
'name' => 'name',
),
);
if ($form_state['num_names'] > 1) {
$form['names_fieldset']['remove_name'] = array(
'#type' => 'submit',
'#value' => t('Entfernen'),
'#submit' => array('protocol_remove_one_name'),
'#ajax' => array(
'callback' => 'protocol_names_ajax_callback',
'wrapper' => 'names-fieldset-wrapper',
'name' => 'name',
),
);
}
// Topic-Fieldset definition
$form['topic_fieldset'] = array(
'#title' => t('Themen'),
'#type' => 'fieldset',
'#description' => t('Eine Liste der Themen des Plenums'),
'#prefix' => '<div id="topics-fieldset-wrapper">',
'#suffix' => '</div>',
);
if (empty($form_state['num_topics'])) {
$form_state['num_topics'] = 1;
}
for ($n = 0; $n < $form_state['num_topics']; $n++) {
$form['topic_fieldset']['topic'][$n] = array(
'#title' => t('@num. Thema', array('@num' => ($n + 1))),
'#type' => 'textfield',
);
}
$form['topic_fieldset']['add_topic'] = array(
'#type' => 'submit',
'#value' => t('Hinzufuegen'),
'#submit' => array('protocol_add_topic'),
'#ajax' => array(
'callback' => 'protocol_topics_ajax_callback',
'wrapper' => 'topics-fieldset-wrapper',
'name' => 'topic',
),
);
if ($form_state['num_topics'] > 1) {
$form['topic_fieldset']['remove_topic'] = array(
'#type' => 'submit',
'#value' => t('Entfernen'),
'#submit' => array('protocol_remove_topic'),
'#ajax' => array(
'callback' => 'protocol_topics_ajax_callback',
'wrapper' => 'topics-fieldset-wrapper',
'name' => 'topic',
),
);
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Abschicken'),
);
return $form;
}
function protocol_topics_ajax_callback($form, $form_state) {
return $form['topics_fieldset'];
}
function protocol_remove_topic($form, &$form_state) {
if ($form_state['num_topics'] > 1) {
$form_state['num_topics']--;
}
$form_state['rebuild'] = TRUE;
}
function protocol_add_topic($form, &$form_state) {
firep('add topic');
$form_state['num_topics']++;
$form_state['rebuild'] = TRUE;
}
function protocol_names_ajax_callback($form, $form_state) {
return $form['names_fieldset'];
}
function protocol_add_one_name($form, &$form_state) {
firep('add name');
$form_state['num_names']++;
$form_state['rebuild'] = TRUE;
}
function protocol_remove_one_name($form, &$form_state) {
firep('remove name');
if ($form_state['num_names'] > 1) {
$form_state['num_names']--;
}
$form_state['rebuild'] = TRUE;
}
?>Mach ich das ganze mit nur einem Fieldset und einem Buttonpaar funktioniert alles. Was laeuft da schief ? Ich komm mit meiner suche im Internet irgendwie nicht weiter.
Ich danke euch fuer eure Hilfe.
- Anmelden oder Registrieren um Kommentare zu schreiben
Form -> submit -> webroot anstatt Drupal
Eingetragen von etron777 (79) am 08.07.2011 - 07:38 Uhr inHallo zusammen,
ich versuche gerade ein Form zu erstellen.
Wenn ich nun die Submit Function einbaue und auf den Button clicke, wird das webroot aufgerufen.
(Drupal ist im Unterverzeichnis)
Falls es jemand kennt: es ist das Weather_info Beispiel aus Drupal 7 for windows developers
Grüße Knut
[gelöst] $form_values leer
Eingetragen von andre8 (14) am 05.07.2011 - 19:02 Uhr inhallo zusammen!
ich stehe auf dem schlauch.
seit 3 h versuche ich daten aus nem formular in die datenbank zu speicher.
print r() gibt die werte fein säuberlich aus.
datum geht aber die form_values nicht.
kann mir bitte jemand sagen wo mein fehler ist.
danke
hier der code:
<?php
/*
* Hilfefunktion bauen
*/
function sport_help($section) {
switch ($section) {
case 'admin/modules#description':
return t('This module implements an example form.');
}
}
/**
* Implementation of hook_init(). Add's the sport module's CSS.
*/
function sport_init() {
drupal_add_css(drupal_get_path('module', 'sport') .'/sport.css');
}
/**
* Berechtigungen.
*/
function sport_perm() {
return array('access sport content', 'administer sport');
}
/*
* Link bauen
*/
function sport_menu() {
$items = array();
$items['sport'] = array(
// Vergleichbar mit <a href="#">title</a>
'title' => 'Anmeldeformular',
// Vergleichbar mit <a href="#" alt=""></a>
'description' => 'A menu entry that shows how hook_menu() works.',
// Ruft die Funktion: function get_user_login_form auf
'page callback' => 'get_sport_form',
'access callback' => 'user_access',
'access arguments' => array('access sport content'),
'type' => MENU_CALLBACK
);
return $items;
}
/*
* Callback function for 'get_form'
*/
function get_sport_form() {
$output = "<h2>";
$output .= t('Registration for the run');
$output .= "</h2>";
$output .= drupal_get_form('sport_page_form');
return $output;
}
/*
* Event aus e_event
*/
function ev_entries() {
$ev_entries = array();
$query="SELECT event,eid FROM e_event WHERE estatus='0'";
$result = db_query ($query);
$ev_entries[''] = 'Auswahl';
while ($row = mysql_fetch_array($result)) {
$ev_entries[$row[eid]] = $row[event];
}
return $ev_entries;
}
/*
* Jahrgangsdaten aus e_jahrgang
*/
function jg_entries() {
$jg_entries = array();
$query="SELECT jahrgang,jid FROM e_jahrgang";
$result = db_query ($query);
$jg_entries[''] = 'Auswahl';
while ($row = mysql_fetch_array($result)) {
$jg_entries[$row[jid]] = $row[jahrgang];
}
return $jg_entries;
}
/*
* Formular
*/
function sport_page_form() {
$form['event'] = array (
'#type' => 'select',
'#title' => t('Select your Event'),
'#options' => ev_entries(),
'#prefix' => '<div class="sport_event">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['lastname'] = array(
'#type' => 'textfield',
'#title' => t('Enter your fullname'),
'#prefix' => '<div class="sport_fullname">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['firstname'] = array(
'#type' => 'textfield',
'#title' => t('Enter your firstname'),
'#prefix' => '<div class="sport_firstname">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['jahrgang'] = array (
'#type' => 'select',
'#title' => t('Enter the year of your birthday'),
'#options' => jg_entries(),
'#prefix' => '<div class="sport_jahrgang">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['verein'] = array(
'#type' => 'textfield',
'#title' => t('Enter your club'),
'#prefix' => '<div class="sport_verein">',
'#suffix' => '</div>',
);
$form['verband'] = array(
'#type' => 'textfield',
'#title' => t('Enter your association'),
'#prefix' => '<div class="sport_verband">',
'#suffix' => '</div>',
);
$options = array("Auswahl", "w", "m");
$form['geschlecht'] = array (
'#type' => 'select',
'#title' => t('Enter your male'),
'#options' => $options,
'#prefix' => '<div class="sport_jahrgang">',
'#suffix' => '</div>',
'#required' => TRUE,
);
$form['telefon'] = array(
'#type' => 'textfield',
'#title' => t('Enter your telefonnumber'),
'#prefix' => '<div class="sport_tel">',
'#suffix' => '</div>',
);
$form['email'] = array(
'#type' => 'textfield',
'#title' => t('Enter your E-Mailaddress'),
'#prefix' => '<div class="sport_email">',
'#suffix' => '</div>',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
return $form;
}
function sport_page_form_submit($form_id, $form_values) {
$message = 'You have submitted the ' . $form_id . ' form which contains the following data:<pre>' . print_r($form_values,true) . '</pre>';
drupal_set_message(t($message));
//$timestamp = time();
//$datum = date("d.m.Y - H:i",$timestamp);
$sql = "INSERT INTO {e_anmeldung} (datum, name) VALUES('%d','%s')";
db_query($sql, time(), $form_values['lastname']);
}
?>
Neue Kommentare
vor 3 Wochen 4 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 5 Tagen
vor 3 Wochen 6 Tagen
vor 4 Wochen 9 Stunden
vor 4 Wochen 1 Tag
vor 4 Wochen 3 Tagen