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 - 18: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 - 19: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 - 21: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 - 14: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 - 15: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 - 15: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 - 15: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 - 15: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 - 16: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

  • 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 1 Woche 6 Tagen
  • Hey danke
    vor 2 Wochen 14 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 5 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 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 15 Stunden

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

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 28 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