Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

input formfelder [geloest]

Eingetragen von quiptime (4972)
am 09.09.2005 - 17:28 Uhr in
  • Allgemeines zu Drupal

Hallo spezies,

versuche gerade vergeblich herauszufinden, wie die input tags aufgebaut werden.

Momentan finde ich keinen roten faden. Kennt sich da jemand aus?

PS.
Ausgangspunkt meiner bemuehung ist das modul feedback. Dort werden die gleichen CSS-klassen wie im rest von drupal verwendet. Ich will dem modul feedback eigene klassen fuer die form-tags geben - um sie separat zu stylen. In feedback.module kann ich beim besten willen nicht den praktizierten weg erkennen, wie dann das jeweilige form-tag entsteht.

‹ aktive node ermitteln Probleme beim update von 4.5.3 auf 4.6.3 ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hier der betreffende Code

Eingetragen von bv (3924)
am 09.09.2005 - 17:57 Uhr

Hier der betreffende Code aus dem Modul (ab Zeile 189):

function feedback_display_form () {
  global $user;

  $edit = $_POST["edit"];

  $edit['form_field_name']  = "";
  $edit['form_field_email'] = "";

  if ($user->name) {
  $edit['form_field_name'] = $user->name ;
  }

  if ($user->mail) {
  $edit['form_field_email'] = $user->mail ;
  }

  if (variable_get("feedback_pageheader", "")) {
    $title .= variable_get("feedback_pageheader", "");
  }

  $instructions = variable_get("feedback_instructions", "");

  if ($instructions) {
    $message .= $instructions;
  }
  else {
    $message .= t("Enter your message below:");
  }
   
  if ( variable_get("feedback_field_name", "") )
    $form .= form_textfield (t("Your Full Name"), "form_field_name",
    $edit['form_field_name'],  60, 64);

  if ( variable_get("feedback_field_email", "") )
    $form .= form_textfield (t("Your E-Mail Address"), "form_field_email",
    $edit['form_field_email'], 60, 64);

  if ( variable_get("feedback_field_postal", "") )
    $form .= form_textarea (t("Your Postal Address"), "form_field_postal",
    $edit['form_field_postal'], 50, 4);

  if ( variable_get("feedback_field_phone", "") )
    $form .= form_textfield (t("Your Phone Number"), "form_field_phone",
    $edit['form_field_phone'], 60, 64);

  if ( variable_get("feedback_field_subject", "") )
    $form .= form_textfield (t("Subject"), "form_field_subject",
    $edit['form_field_subject'], 60, 64);

  if ( variable_get("feedback_field_body", "") )
    $form .= form_textarea  (t("Message"), "form_field_body",
    $edit['form_field_body'], 60, 15);

  $form .= form_hidden ("form_field_referer", $_SERVER[HTTP_REFERER]);

  $form .= form_submit (t("Send Message"), "op", $edit['op'] );

  $output .= $message . form($form, "post");
  if ($title) {
    $output = theme("box", $title, $output);
  }

  return $output;
}

Es wird aber bereits für jedes Input-Tag eine eigene Klasse vergeben, du müßtest also eigentlich dort nicht mehr eingreifen müssen.

Wenn doch wäre es eleganter, das über das Theme-System zu machen. Drupal ist mehr ein flexibles CMS-Framework für PHP-Entwickler als ein Out-of-the-Box-CMS und ist dementsprechend auf solche Eingriffe vorbereitet. Evtl. setzt du dich zuerst mit dem PHPTemplate-Engine und den Drupal-Docs auseinander: http://drupal.org/node/509, http://drupaldocs.org/, http://drupaldocs.org/api/head/function/theme_form_element

Ich hoffe, das hilft dir weiter!

Grüße
Björn

  • Anmelden oder Registrieren um Kommentare zu schreiben

*grübel*

Eingetragen von micha_1977 (nicht überprüft) (0)
am 09.09.2005 - 17:58 Uhr

das feedback modul benutzt standard drupal functions für die Erstellung des Formulars
du brauchst ja wahrscheinlich nur einen div-Wrapper mir eindeutiger ID/class

so wie ich das sehe, wird eine "box" erzeugt, wenn die feedback Seite gerufen wird

angenommen du benutzt phptemplate, dann wird die box.tpl.php als Layout benutzt,
wenn du für dein Theme noch keine hast wird die aus dem engine Verzeichnis genommen

...jedenfalls könntest du in der box.tpl.php auf den "title" abfragen (das ist
der Name deiner Feedback page) und entsprechend eine class/ID setzen

Beispiel mit standard box.tpl.php und ohne Benutzung der Übersetzungsfunktionen

<div <?php if ($title == 'Feedback') : ?>id="feedback"<?php endif; ?> class="box">
  <h2><?php print $title ?></h2>
  <div class="content"><?php print $content ?></div>
</div>

...das ist nur schnell getippt, evtl. gibts kleinere Syntaxfehler ;-)

MfG Micha
- work in progress mit Langmi.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

@drupalcenter

Eingetragen von quiptime (4972)
am 09.09.2005 - 18:48 Uhr

der von dir zitierte code ist genau der, den ich schon am wickel habe. Aber eins stimmt nicht - das in der function feedback_display_form fuer die einzelnen inputfelder eigene klassen gesetzt werden. Der HTML-quellcode zeigt fuer alle inputs die CSS-klasse form-text. Lediglich bei den id's werden einzelne gesetzt.

Momentan arbeite ich mit einer kopie von bluemarine - verwendet xtemplate und nicht phptemplate.

Ist xtemplate eigenstaendig oder eine version von phptemplate?

Um also ein glas milch einzugiessen muss ich jetzt eine kuh kaufen. Will sagen, um separate css-formatierungen im code eines modules zu erzeugen muss ich mir xtemplate und phptemplate reinziehen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Re: @drupalcenter

Eingetragen von bv (3924)
am 09.09.2005 - 19:18 Uhr

quiptime schrieb
Aber eins stimmt nicht - das in der function feedback_display_form fuer die einzelnen inputfelder eigene klassen gesetzt werden. Der HTML-quellcode zeigt fuer alle inputs die CSS-klasse form-text. Lediglich bei den id's werden einzelne gesetzt.

Sorry - du hast recht - habe ich übersehen!

quiptime schrieb

Momentan arbeite ich mit einer kopie von bluemarine - verwendet xtemplate und nicht phptemplate.

Ist xtemplate eigenstaendig oder eine version von phptemplate?

Xtemplate ist eigenständig und wird (soweit ich weiß) in einer der nächsten Drupal Versionen von phpTemplate abgelöst (im Core).
phpTemplate ist um einiges flexibler. Bluemarine gibt es auch als phpTemplate-Version: http://drupal.org/project/bluemarine

quiptime schrieb

Um also ein glas milch einzugiessen muss ich jetzt eine kuh kaufen. Will sagen, um separate css-formatierungen im code eines modules zu erzeugen muss ich mir xtemplate und phptemplate reinziehen.

Wenn du es so sehen willst - ja! Es ist sauberer und wartbarer, wenn du solche Sachen per Theme angehst, als direkt in ein Modul zu schreiben! Und: Wenn du dich ernsthaft mit Drupal befassen willst, kommst du früher oder später sowieso an den Punkt, an dem du dich damit auseinander setzen mußt...

Grüße
Björn

  • Anmelden oder Registrieren um Kommentare zu schreiben

Einarbeiten

Eingetragen von quiptime (4972)
am 10.09.2005 - 00:42 Uhr

Danke dir fuer die tipss. Na dann werde ich mich mal reinarbeiten,

Du hast recht. Sobald man aenderungen an modulen oder corefiles vornimmt wars das mit den updates.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Problem geloest

Eingetragen von quiptime (4972)
am 10.09.2005 - 23:48 Uhr

Habe das problem geloest. Meine feedbackformulare koennen nun separate classen zur separaten formatierung bekommen.

Meine loesung ist nur eine einfache veraenderung. Man koennte im modul feedback noch einige kleine erweiterungen vornehmen wie z. bsp. fieldset legend.

"Link zum thread mit der loesung":http://www.drupalcenter.de/node/259  <- Bitte dazu den post "naegel mit koepfen" lesen.

ACHTUNG: habe den post kurz rausgenommen. Die loesung war noch nicht perfekt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

phptemplate - Formular Ansicht verändern

Eingetragen von micha_1977 (nicht überprüft) (0)
am 12.09.2005 - 06:39 Uhr

quiptime hat nicht ganz unrecht

bisher ist es nicht vorgesehen die labels mit Klassen/IDs versehen zu können

verantwortlich ist diese Theme Funktion
http://drupaldocs.org/api/4.6/function/theme_form_element

und ein Tipp gibts in
http://drupal.org/node/15203#comment-19153

wie dort schon steht, ist es möglich (fast) alle Theme Funktionen mittels eigener Funktionen zu überschreiben zum Nachlesen overriding theme functions
(für unser Beispiell passt aber besser not including drupal.css )

ob da schon was in der kommenden 4.7 gemacht wurde ist mir grad nicht bekannt

kleines proof of concept für eine template.php eines phptemplate themes

<?php
function phptemplate_form_element($title, $value, $description = NULL, $id = NULL, $required = FALSE, $error = FALSE) {

 
$output  = "<div class=\"form-item\">\n";
 
$required = $required ? '<span class="form-required">*</span>' : '';

  if (
$title) {
    if (
$id) {
     
$output .= " <label for=\"$id\" id=\"$id\">$title:</label>$required<br />\n";
    }
    else {
     
$output .= " <label>$title:</label>$required<br />\n";
    }
  }

 
$output .= " $value\n";

  if (
$description) {
   
$output .= " <div class=\"description\">$description</div>\n";
  }

 
$output .= "</div>\n";

  return
$output;
}
?>

es dürfte 100% aber nur bei dem Modul Feedback funktionieren, laut Quellcode schickt das immer eine ID mit

MfG Micha
- work in progress mit Langmi.de

  • 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 2 Wochen 9 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 3 Tagen
  • In der entsprechenden View
    vor 3 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 3 Tagen
  • gelöst
    vor 6 Wochen 6 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

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