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

Kommentar Formular Themen [fixed]

Eingetragen von drupalone (128)
am 30.01.2009 - 19:35 Uhr in
  • Themes & Theming
  • Drupal 6.x

Mein Problem ist folgendes: Ich möchte um das Eingabefeld für Kommentare weitere HTML-Elemente schachteln, also das "template" aus dem das ganze aufgebaut wird anpassen. Leider komm ich nicht drauf, wo ich das machen kann.

Rein über CSS Kann ich das Formular nicht so anpassen wie ich es möchte.

Ich habe schon diese Funktion gefunden die in meiner Template.php enthalten ist, kann damit allerdings nur den gesamten Kommentarbereich umschließen, und nicht das Formular alleine.
http://api.drupal.org/api/function/phptemplate_comment_wrapper/6

Hat jemand da ne Idee? Ich finde auch leider nicht die Stelle, wo für alle Formulare das Template angepasst werden kann. Das würde ich zur Not ja auch machen, und es dann per CSS nur beim Kommentarformular anpassen wie ich es möchte.

‹ Theming: if [anrisstext] ? geht so etwas? Inhaltstyp themen, fragen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

comment.tpl.php in deinem

Eingetragen von Thoor (3678)
am 30.01.2009 - 20:13 Uhr

comment.tpl.php in deinem Theme vorhanden?

http://api.drupal.org/api/file/modules/comment/comment.tpl.php

  • Anmelden oder Registrieren um Kommentare zu schreiben

Formular anpassen

Eingetragen von stBorchert (6003)
am 30.01.2009 - 22:05 Uhr

Moin!
Welch Zufall; erst gestern hatten wir dieses "Problem" im IRC.

Du erstellst Dir in Deinem Theme-Verzeichnis eine neue Datei namens comment-form.tpl.php:

<?php
// drupal_set_message('<pre>'. print_r($form, 1) .'</pre>');

unset($form['homepage']);
print drupal_render($form);

In diesem Beispiel wird einfach mal das Feld "Homepage" entfernt. Wenn Du wissen willst, welche Elemente noch so alles im Formular vorhanden sind, kannst Du einfach die erste Zeile wieder aktivieren und siehst dann die gesamte Formularstruktur. Nach Änderungen an dieser Datei solltest Du unter admin/settings/performance "Clear cached data" anklicken, damit das Template neu geladen wird.

Jetzt musst Du noch in der template.php Deines Themes folgende Funktion einfügen:

function phptemplate_theme($existing, $type, $theme, $path) {
  return array(
    'comment_form' => array(
      'arguments' => array('form' => NULL),
      'template' => 'comment-form', // this is the name of the template
    )
  );
}

Dies teilt Drupal mit, dass wir ab jetzt ein anderes Template für die Darstellung des Kommentarformulars verwenden wollen.

In der comment-form.tpl.php kannst Du jetzt nach Belieben die vorhandenen Elemente verschieben oder die HTML-Struktur ändern:

<fieldset class="collapsible">
  <legend><?php print t('Information'); ?></legend>
  <div class="form-field">
    <?php print drupal_render($form['email']);?>
  </div>
  <div class="form-field">
    <?php print drupal_render($form['homepage']);?>
  </div>
</fieldset>
<?php
unset($form['email']);
unset($form['homepage']);
print drupal_render($form);

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Also erstmal danke an euch

Eingetragen von drupalone (128)
am 03.02.2009 - 15:31 Uhr

Also erstmal danke an euch beide für die Antworten.

Ja, ich habe eine comment.tpl.php in meinem Verzeichniss, die kann ich aber nur zum Themen der Kommentare benutzen, so wie ich das sehe.

Der Tipp von Stefan sieht ja eigendlich super aus, nur leider bekomme ich das nicht auf meine Theme übertragen. Es erscheint nur eine weiße Seite, also ein php Fehler. Jetzt bin ich erstmal auf der Suche nach ner Einstellung, um die Error-Messages sichtbar zu machen. Hatte vor kurzem noch Drupal 5 laufen, und mir war so, als wenn php fehlermeldungen da direkt auf der Seite ausgegeben wurden...

[edit:] So! Jetzt hab ich die Fehlermeldung:

"Cannot redeclare phptemplate_theme()"

Hilft mir aber leider nicht... Meine Theme basiert doch auf der phptemplatengine, also was soll das heißen?

  • Anmelden oder Registrieren um Kommentare zu schreiben

So so, nun hab ich

Eingetragen von drupalone (128)
am 03.02.2009 - 16:08 Uhr

So so, nun hab ich herrausgefunden, das die Fehlermeldung die mir anzeigt wird, bedeuted das die Funktion schon vorhanden ist.

Das ist Sie natürlich auch, in dem phptemplateengine ordner. Da gehört sie ja aber auch hin und erfüllt eine wichtige funktion. Wie man die jetzt mit der oben genannten Funktion einfach überschreiben soll, ist mir schleierhaft... Oder ist das bei dir anders gewesen, Stefan?

  • Anmelden oder Registrieren um Kommentare zu schreiben

phptemplate_theme

Eingetragen von stBorchert (6003)
am 03.02.2009 - 16:15 Uhr
drupalone schrieb

Wie man die jetzt mit der oben genannten Funktion einfach überschreiben soll, ist mir schleierhaft... Oder ist das bei dir anders gewesen, Stefan?

Nein, bei mir existiert die Funktion auch. Jedoch ist das nicht so schlimm, wir können sie ja einfach erweitern.
Mal angenommen, bei Dir steht sie so in der template.php:

<?php
function phptemplate_theme($existing, $type, $theme, $path) {
  return array(
   
'user_register' => array(
     
'arguments' => array('form' => NULL),
     
'template' => 'user-register', // this is the name of the template
   
),
  );
}
?>

Dann fügen wir unser Schnipsel jetzt einfach dazu:
<?php

function phptemplate_theme($existing, $type, $theme, $path) {
  return array(
   
'user_register' => array(
     
'arguments' => array('form' => NULL),
     
'template' => 'user-register', // this is the name of the template
   
),
   
'comment_form' => array(
     
'arguments' => array('form' => NULL),
     
'template' => 'comment-form', // this is the name of the template
   
),
  );
}
?>

(Die Kommata hinter den Klammern in Zeile 6 und 10 beachten!)

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Leider hab ich mich wohl

Eingetragen von drupalone (128)
am 03.02.2009 - 16:36 Uhr

Leider hab ich mich wohl missverständlich ausgedrückt. In meiner template.php in meiner Theme gab es diese Funktion noch nicht. Deswegen brauch ich da auch nichts zusammenfügen.

Bei mir steht in der "phptemplate.engine".

function phptemplate_theme($existing, $type, $theme, $path) {
  $templates = drupal_find_theme_functions($existing, array('phptemplate', $theme));
  $templates += drupal_find_theme_templates($existing, '.tpl.php', $path);
  return $templates;
}

Das ist doch die Funktion, mit der der Konflikt entsteht, oder nicht?

Die muss da ja auch bleiben, da sie ja auch von anderen Themes genutzt wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

verschrieben

Eingetragen von stBorchert (6003)
am 03.02.2009 - 16:42 Uhr

Äh und ich hab jetzt nicht genau hingeschaut :-)
Benenne die Funktion in der template.php einfach in <THEMENAME>_theme(...) um. Also beispielsweise garland_theme(...).

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

So, alter! Tausend Dank für

Eingetragen von drupalone (128)
am 03.02.2009 - 17:30 Uhr

So, alter! Tausend Dank für deine schnelle und umfangreiche Hilfe.

Hab es jetzt hinbekommen, nachdem ich dann merkte, das man in den Theme namen wohl auch keine Unterstriche nutzen kann. Das wusste ich nicht.

Jetzt hab ich im Prinzip die Möglichkeit das zu machen, was ich möchte. Das formularelement selber ist da aber noch nicht mit drinne, sondern nur alles was innerhalb des Fornm Tags steckt... Wenn ich noch ne Ebene höher käme ware das traumhaft.. Ich möchte die Überschrift nämlich noch mit rein haben...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
  • (gelöst)Drupal 11 installieren
  • Titel ausblenden
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
Weiter

Neue Kommentare

  • Gefunden
    vor 6 Wochen 1 Tag
  • Vielen Dank für die ausführlichen Hinweise...
    vor 6 Wochen 5 Tagen
  • Mögliche Ursachen und nächste Schritte
    vor 6 Wochen 5 Tagen
  • Was für einen Server benutzt
    vor 9 Wochen 1 Tag
  • Wenn die Subdomain auf
    vor 9 Wochen 3 Tagen
  • ordnerstruktur
    vor 9 Wochen 4 Tagen
  • Die Subdomain muß auf den
    vor 9 Wochen 6 Tagen
  • Verwende doch das Tag dafür,
    vor 13 Wochen 1 Tag
  • Guckst du hier: step by step
    vor 13 Wochen 23 Stunden
  • Guckst du hier: step by step
    vor 13 Wochen 23 Stunden

Statistik

Beiträge im Forum: 250294
Registrierte User: 20544

Neue User:

  • 888sportrofs
  • DanielAltek
  • HilipPet

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 13 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