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

Node Add Formular themen?

Eingetragen von wflorian (251)
am 02.08.2009 - 10:34 Uhr in
  • Themes & Theming
  • Drupal 5.x

Hallo zusammen,

wir haben unser Node Add Formular für einen bestimmten Inhaltstyp mit verschiedenen CCK Felder sehr erweitert.

Das Ganze wirkt jetzt beim Eintragen von neuen Nodes sehr sehr unübersichtlich.
Da vorallem User und Gäster die Eintragefunktion nutzen, müssen wir hier dringend etwas an der Usability ändern.

Besteht in irgendeiner Weise das Node Add Formular für einen bestimmten Inhaltstyp nur zu themen?

Bisher sind meine Recherchen vollkommen im Sand verlaufen. Ich konnte keine wirklich nützlichen Informationen finden.

Wie gesagt soll sich dieses Theming lediglich auf das Node Add Formular eines einzigen Inhaltstyps am besten beziehen.

Hat jemand eine Idee oder ähnliches bereits vollzogen?

VIele Grüße
Florian

‹ [Gelöst] Label nur für einen bestimmten Inhaltstyp steuern RSS im neuen Fenster ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Node Formular themen

Eingetragen von stBorchert (6003)
am 02.08.2009 - 17:04 Uhr

Moin.
Das geht eigentlich relativ einfach mit jedem Inhaltstypen (unabhängig von der Verwendung von CCK).
In den folgenden Beispielen gehe ich jetzt einfach mal von "Garland" als Theme und "article" als Inhaltstyp aus.

In Deiner template.php erstellst Du (falls nicht bereits vorhanden) die Funktion garland_theme:

<?php
function garland_theme($existing, $type, $theme, $path) {
  return array(
   
'article_node_form' => array(
     
'arguments' => array('form' => NULL),
     
'template' => 'article-node-form',
    ),
  );
}
?>

Falls Du die verfügbaren Variablen noch ein wenig anpassen und aufhübschen möchtest, kannst Du sie vorher auch noch in einer entsprechenden preprocess-Funktion (in der template.php) bearbeiten:

<?php
function garland_preprocess_article_node_form(&$vars) {
 
// Backup original form.
 
$vars['article-form'] = $vars['form'];
 
 
// Change submit button to image button.
 
$vars['form']['buttons']['submit']['#type'] = 'image_button';
 
$vars['form']['buttons']['submit']['#src'] = drupal_get_path('theme', 'garland') .'/images/submit.png';
 
 
// field_article_image
 
$vars['article_image'] = drupal_render($vars['form']['field_article_image']);
 
// ...
 
  // Submit button.
 
$vars['submit'] = drupal_render($vars['form']['buttons']['submit']);
}
?>

Jetzt kannst Du für diesen Inhaltstypen ein Template namens article-node-form.tpl.php erstellen (in dem Verzeichnis, in dem auch template.php liegt).

<?php
// Print names of all available variables.
drupal_set_message('<pre>'. var_export(array_keys(get_defined_vars()), 1) .'</pre>');

// Print fields.
<?php print $article_image; ?>

<hr class="field-break" />
<div class="form-buttons">
  <?php print $submit; ?>
</div>
<div class="hidden">
  <?php print drupal_render($form); ?>
</div>
?>

Und schon kannst Du das Formular genau so ausgeben, wie Du es gerne hättest.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wahnsinn! Das sieht super

Eingetragen von wflorian (251)
am 02.08.2009 - 17:51 Uhr

Wahnsinn! Das sieht super aus. Werde es die Tage gleich mal testen! Besten, besten Dank Dir!

Viele Grüße
Florian

  • Anmelden oder Registrieren um Kommentare zu schreiben

funktioniert das auch in der

Eingetragen von esseff (173)
am 04.08.2009 - 16:40 Uhr

funktioniert das auch in der version 6.xx?

ich scheine mich grad etwas blöd anzustellen. ich habe einen inhaltstyp "hadamar" und will das formular dafür ändern. in der template.php hab ich folgendes:

<?
function msz_theme($existing, $type, $theme, $path) {
  return array(
    'hadamar_node_form' => array(
      'arguments' => array('form' => NULL),
      'template' => 'hadamar-node-form',
    ),
  );
}
?>

(mein theme, das ich nutze heißt "msz")

ich habe die hadamar-node-form.tpl.php angelegt - im gleichen ordner wie template.php. wenn ich aber meinen node/add/hadamar neu aufrufe, gibt es keinerlei veränderungen

  • Anmelden oder Registrieren um Kommentare zu schreiben

Node Formular themen

Eingetragen von stBorchert (6003)
am 04.08.2009 - 17:46 Uhr
esseff schrieb

funktioniert das auch in der version 6.xx?

Ja, das ist speziell für Drupal 6.x

Hast Du mal die Theme-Registry geleert?

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich bin bisher noch nicht

Eingetragen von wflorian (251)
am 04.08.2009 - 18:35 Uhr

Ich bin bisher noch nicht zum austesten gekommen. Werde ich wohl erst am WE nachholen können. Wir fahren unsere Seite auf einer D5 Version, bin gespannt obs hinhaut! :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

theming

Eingetragen von stBorchert (6003)
am 04.08.2009 - 21:20 Uhr
wflorian schrieb

...Wir fahren unsere Seite auf einer D5 Version, bin gespannt obs hinhaut! :)

Öhm, höchstvermutlich nicht. Dass das für D5 war, habe ich glatt übersehen.
Bei D5 gab es noch keine hook_theme().
Da geht das dann ein wenig anders.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

@stBorchert dein link zeigt

Eingetragen von esseff (173)
am 05.08.2009 - 08:20 Uhr

@stBorchert
dein link zeigt zum leeren des caches. was genau meinst du mit theme-registry leeren. (bin noch relativ neu bei drupal)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Theme-Registry

Eingetragen von stBorchert (6003)
am 05.08.2009 - 08:32 Uhr

Moin.
Die Theme-Registry ist ein Container für sämtliche Theme-Funktionen von Drupal (und Templates). Die Funktionen und Templates werden dort also zwischengespeichert, so dass sie nicht bei jedem Seitenaufruf von Neuem erzeugt und abgearbeitet werden müssen.
Wenn man Templates erstellt (oder Module entwickelt, die theme-Funktionen implementieren) kann es sein, dass Drupal noch nicht gleich mitbekommt, dass es da ein neues Template, bzw. eine neue Funktion gibt.
Aus diesem Grund muss man dann die Theme-Registry leeren, damit Drupal alle verfügbaren theme-Funktionen und deren Verarbeitung neu einliest.

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Oder man installiert das

Eingetragen von Alexander Langer (3416)
am 05.08.2009 - 08:37 Uhr

Oder man installiert das Devel-Modul und hakt in dessen Konfig die Option an bei jedem Seitenaufruf den Theme Registry Cache zu leeren.

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

dank devel-modul hab ich das

Eingetragen von esseff (173)
am 05.08.2009 - 12:24 Uhr

dank devel-modul hab ich das auf die reihe bekommen... :-)
mein formular reagiert nun.

jetzt muss ich die template-datei füllen.

<?php
print '<h3>Einen Artikel eingeben</h3>';
print
drupal_render($form['title']);
print
drupal_render($form['field_bild']);
print
drupal_render($form['field_name']);
print
drupal_render($form['field_vorname']);
print
drupal_render($form['field_email']);



?>

soweit bin ich schon. mit meinem gefährlichen php-halbwissen muss ich nun noch irgendwie das feld für den textkörper, das feld für die taxonomie, die ich für den inhaltstyp angelegt hab, ausgeben und die buttons für vorschau und absenden. das gestalterische kommt dann im anschluss. gibt's tipps für die fehlenden felder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Node Formular

Eingetragen von stBorchert (6003)
am 05.08.2009 - 12:58 Uhr
esseff schrieb

gibt's tipps für die fehlenden felder?

Ja: http://www.drupalcenter.de/handbuch/20522

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

besten dank! das einzige,

Eingetragen von esseff (173)
am 05.08.2009 - 13:53 Uhr

besten dank! das einzige, was jetzt noch fehlt, ist die taxonomie, die dem inhaltstyp zugeordnet ist.

was noch dazugekommen ist: in meiner template.php ist irgendwas, das meine seite dazu bringt, nach dem klicken des speichern-buttons eine leere weiße seite anzuzeigen. egal welcher speicher-button, ob im formular, in irgendeiner konfiguration - überall.

<?
function msz_theme($existing, $type, $theme, $path) {
  return array(
    'hadamar_node_form' => array(
      'arguments' => array('form' => NULL),
      'template' => 'hadamar-node-form',
    ),
  );
}
?>

<?php
function msz_preprocess_hadamar_node_form(&$vars) {


 
// Grösse des Titelfeldes ändern.
 
$vars['form']['title']['#size'] = 30;
 
// Beschreibung des Titelfeldes ändern.
 
$vars['form']['title']['#description'] = 'Der Titel des Artikels.';
 
// Das Titelfeld als einfache Variable verfügbar machen.
 
$vars['field_title'] = drupal_render($vars['form']['title']);

 
// Body
 
$vars['form']['body_field']['body']['#rows'] = 10;
 
$vars['field_body'] = drupal_render($vars['form']['body_field']);

 
// Fieldsets
 
$vars['field_menu'] = drupal_render($vars['form']['menu']);
 
$vars['field_revision'] = drupal_render($vars['form']['revision_information']);
 
$vars['field_author'] = drupal_render($vars['form']['author']);
 
$vars['field_options'] = drupal_render($vars['form']['options']);
 
$vars['field_comment_settings'] = drupal_render($vars['form']['comment_settings']);

 
// Schaltflächen.
 
$vars['buttons'] = drupal_render($vars['form']['buttons']);
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich habs geschafft. es ist

Eingetragen von esseff (173)
am 05.08.2009 - 15:34 Uhr

ich habs geschafft. es ist alles da...

ich hab jetzt nur noch das problem mit der weißen seite nach dem klicken des speicher-buttons. kann mir da jemand helfen. wie gesagt, es muss an der template.php liegen. nehm ich alles raus, funtkioniert alles nach dem speichern.

  • Anmelden oder Registrieren um Kommentare zu schreiben

das problem hatte ich schon

Eingetragen von Shademan (82)
am 10.08.2009 - 12:22 Uhr

das problem hatte ich schon öfters, wenn die template.php auf UTF-8 steht passiert das. Stell es mal auf ASCII um
________________________________________________________________________
Drupal-Entwicklung und Web-Design in Darmstadt || www.brightsolutions.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

wo ist die Datei template.php?

Eingetragen von wanneng (103)
am 28.08.2009 - 06:08 Uhr

Hallo, ich verwende die Themen Bluemarien, Ich habe keine template.php gefunden, wie soll ich nun machchen. Drupal version 6x.
Danke

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das mit der weissen Seite

Eingetragen von leda.ch (977)
am 28.08.2009 - 08:35 Uhr

Das mit der weissen Seite passiert (mir) immer dann, wenn sich in *irgendeinem* xxx.tpl.php zu Beginn irgendwelche Zeichen oder Leerschläge eingeschlichen haben.

lg leda

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: ich hab jetzt nur

Eingetragen von stebeg (463)
am 28.08.2009 - 11:03 Uhr
Zitat:

ich hab jetzt nur noch das problem mit der weißen seite nach dem klicken des speicher-buttons. kann mir da jemand helfen. wie gesagt, es muss an der template.php liegen. nehm ich alles raus, funtkioniert alles nach dem speichern.

Das Problem hatte ich auch mal nachdem ich eine Theme-Funktion in der template-php geschrieben hatte. Schau am besten mal unter 'Berichte' -> 'Neue Log-Einträge', da müsste stehen, welche Fehler aufgetreten ist. Bei mir musste ich nur das ?> am Ende der template.php entfernen, das ich wohl aus Gewohnheit getippt hatte.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Servus. Wie gesagt nutze ich

Eingetragen von wflorian (251)
am 12.09.2009 - 13:25 Uhr

Servus.

Wie gesagt nutze ich D5. Habe jetzt mit der Anleitung von http://drupal.org/node/112358#comment-936148 ganz gute Ergebnisse erzielen können.

Allerdings benötige ich mehr Einfluss auf die Textfelder.

Mit

<?php
$width
=120;
$form['field_name']['0']['value']['#size']=$width;
print
drupal_render($form['field_name']);
?>

konnte ich jetzt schonmal Einfluss auf die Größe des Textfeldes nehmen.

Was ich jetzt aber bräuchte:

<?php
print drupal_render($form['field_name']);
?>

Gibt komplett das Textfeld mit dem Titel des Textfeldes und seiner Description aus. Ich würde jetzt aber gerne gezielt nur das Textfeld ausgeben, nur den Titel des Textfeldes ausgeben und nur die Description des Textfeldes seperat und einzeln ausgeben lassen.

Also jetzt mal rein logisch sowas?!?!

<?php
print drupal_render($form['field_name']['0']['value']['#title']);
?>

Besteht da eine Chance? Hat hier jemanden Erfahrungen?

Danke Euch!

Beste Grüße
Florian

  • Anmelden oder Registrieren um Kommentare zu schreiben

Keiner eine Idee? Oder kann

Eingetragen von wflorian (251)
am 18.09.2009 - 09:05 Uhr

Keiner eine Idee? Oder kann jemand definitiv ausschließen das es nicht möglich ist?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Feld ausgeben

Eingetragen von stBorchert (6003)
am 18.09.2009 - 09:22 Uhr

Speicher die Beschreibung in einer zusätzlichen Variablen und entferne sie dann aus dem Element.

<?php
$description
= $form['field_name'][0]['value']['#description'];
$form['field_name'][0]['value']['#description'] = '';
?>

<div class="description"><?php print $description; ?></div>
<?php
drupal_render
($form['field_name']);
?>

hth,

 Stefan

--
sei nett zu Deinem Themer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Funktioniert auch mit Admin Theme?

Eingetragen von Milchbar (39)
am 02.01.2011 - 09:47 Uhr

Hallo zusammen,

ich bin gerade auf euren Thread gestoßen um genau dieses Problem zu lösen. Allerdings benutze ich ein "Admin Theme" um den Inhalt zu editieren. Ich habe also "Theme Frontend" und "Theme Backend". Theme Backend wird nur von Moderatoren und Editoren benutzt wenn neuer Inhalt erstellt wird. Allerdings möchte ich das Gäste Bilder hochladen können die dann durch die Moderatoren freigeschaltet werden.
Die oben aufgezeigte Methode scheint nicht zu funktionieren. Drupal ignoriert meine template vorgabe und benutzt weiterhin das "Theme Backend".

Zur Zeit benutze ich folgenden Code:

<?php
function tubantia_theme() {

 
$items = array();

 
$items['image_node_form'] = array(
   
'arguments' => array('form' => array()),
   
'path' => drupal_get_path('theme', 'tubantia') . '/templates',
   
'template' => 'node-image-form',
   
'preprocess functions' => array(
     
'tubantia_preprocess_image_form'
   
)
  );
  return
$items;
}
// end function custom_theme_theme;

function tubantia_preprocess_image_form(&$vars) {

 
// Copy taxonomy and buttons from $form to $vars, to pass them to the template file.
 
$vars['sidebar'] = $vars['form']['taxonomy'];
 
$vars['buttons'] = $vars['form']['buttons'];

 
// Remove taxonomy and buttons, from $form ( no duplication ).
 
unset($vars['form']['taxonomy']);
  unset(
$vars['form']['buttons']);
}
// end function custom_theme_preprocess_project_form;
?>

Meine node-image-form.tpl.php sieht folgendermaßen aus:

<?php
// Print names of all available variables.
drupal_set_message('<pre>'. var_export(array_keys(get_defined_vars()), 1) .'</pre>');
?>

<div class="node-add-wrapper clear-block">
  <div class="node-column-sidebar">
    <?php if($sidebar): ?>
      <?php print drupal_render($sidebar); ?>
    <?php endif; ?>
  </div>
  <div class="node-column-main">
    <?php if($form): ?>
      <?php print drupal_render($form); ?>
    <?php endif; ?>
  
    <?php if($buttons): ?>
      <div class="node-buttons">
        <?php print drupal_render($buttons); ?>
    </div>
  <?php endif; ?>
  </div>
  <div class="clear"></div>
</div>

Hat jemand eine Idee wieso das nicht funktioniert oder was genau ich falsch mache? Vielen Dank schonmal!

Beste Grüße,
Milchbar

  • Anmelden oder Registrieren um Kommentare zu schreiben

Theme

Eingetragen von stBorchert (6003)
am 02.01.2011 - 11:23 Uhr

Hallo.

Milchbar schrieb

Drupal ignoriert meine template vorgabe und benutzt weiterhin das "Theme Backend".

Kann es sein, dass Du unter admin/settings/admin eingestellt hast, dass Drupal das Admin-Theme auch beim Erstellen und Bearbeiten von Inhalten verwenden soll?

https://skitch.com/stborchert/r8m8m/administration-theme

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

admin/settings/admin

Eingetragen von Milchbar (39)
am 02.01.2011 - 12:00 Uhr

Hi Stefan,

danke für die prompte Antwort. Ich habe das in der Tat so eingestellt. Genau das möchte ich ja eigentlich auch erreichen. Im Prinzip soll *überall* das Admin-Theme benutzt werden, sobald man Inhalte bearbeitet/löscht/erstellt. Die Ausnahme ist das erstellen des Content-Types "Image". Dies soll nicht das Admin-Theme, sondern das reguläre Theme benutzen.

Beste Grüße,
Milchbar

  • Anmelden oder Registrieren um Kommentare zu schreiben

Themekey

Eingetragen von stBorchert (6003)
am 02.01.2011 - 12:02 Uhr

In diesem Fall verwende das Modul [do:themekey Themekey]. Damit kannst Du nach verschiedensten Kriterien auswählen, welches Theme verwendet werden soll.
Bei Dir wären das dann "Pfad" + "Inhaltstyp" (+ eventuell Rolle).

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

*Doh*

Eingetragen von Milchbar (39)
am 02.01.2011 - 12:11 Uhr

Super, vielen Dank! Benutze das sogar schon bei 2 anderen Projekten aber das Brett vor meinem Kopf ist heute wohl besonders sperrig. ;)

Nochmals vielen Dank und beste Grüße,
Milchbar

  • Anmelden oder Registrieren um Kommentare zu schreiben

stBorchert schriebesseff

Eingetragen von Svenswiss (218)
am 03.08.2012 - 09:17 Uhr

Funktioniert das auch für Drupal7?

LG

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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?
Weiter

Neue Kommentare

  • Inzwischen sind wir bei
    vor 2 Tagen 1 Stunde
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Tagen 17 Stunden
  • melde mich mal wieder, da ich
    vor 7 Wochen 6 Tagen
  • Hey danke
    vor 8 Wochen 16 Stunden
  • Update: jetzt gibt's ein
    vor 8 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 8 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 8 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 9 Wochen 3 Tagen
  • In der entsprechenden View
    vor 9 Wochen 3 Tagen
  • Dazu müsstest Du vermutlich
    vor 9 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250235
Registrierte User: 20462

Neue User:

  • marouane.blel
  • capilclinic
  • Quabzibboter

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