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

node/add themen?

Eingetragen von MagicMatze (127)
am 25.01.2008 - 17:26 Uhr in
  • Allgemeines zu Drupal

Hiho,
ich wollte jetzt das Erstellen von Inhalten themen, Z.b. "Video einstellen": Hier habe ich vier Felder: Titel, Kategorie, Kurzbeschreibung und Videolink. Diese sind jetzt relativ schlicht untereinander und ich wollte da jetzt oberhalb der Felder jeweils eine Grafik einbinden (Schritt 1: Titel vergeben etc.).

Wie und wo kann ich für jeden Inhaltstyp die "add" Seite themen?

Danke,
Matze

‹ Terms als Block? Das muss doch gehen! Ausgewähltes Begriff einer Vokabulary im Node einblenden ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

eigentlich ist es gar nicht

Eingetragen von dawehner (2639)
am 26.01.2008 - 18:01 Uhr

eigentlich ist es gar nicht so schwer

1. diesen Code in die template.php am ende schreiben
wichtig dabei "inhaltstyp" zu verändern
das führt dazu dass Drupal in der datei inhaltstyp.tpl.php nachschaut und das darin enthaltene ausgibt

<?php
// Add Form Start...........jghyde..
if ((arg(0) == 'node') && (arg(1) == 'add') && (arg(2) == 'inhaltstyp')){
  function
phptemplate_node_form($form) {
return
_phptemplate_callback('inhaltstyp', array('user' => $user, 'form' => $form));
}
}
// Add Form End.................
// Edit Form Start...........Dublin Drupaller..
if ((arg(0) == 'node') && (arg(2) == 'edit')){
   
$node = node_load(array('nid' => arg(1)));
    if (
$node->type == 'inhaltstyp'){
function
phptemplate_node_form($form) {
  return
_phptemplate_callback('inhaltstyp', array('user' => $user, 'form' => $form));
}
    }
}
// Edit Form End........
?>

2. Felder kann man einfach folgendermaßen ausgeben

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

natürlich kann man auch html ausgeben
--------------
Mein Blog: www.freeblogger.org
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dereine@jabber.ccc.de Warum Jabber?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist genau das, was ich

Eingetragen von MagicMatze (127)
am 26.01.2008 - 18:34 Uhr

Das ist genau das, was ich gesucht habe! Vielen Dank dafür :)

Morgen werde ich dann eine schöne und einfache "Video einstellen in 3 Schritten" Seite basteln.
---
www.party-riebel.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe jetzt das Problem,

Eingetragen von MagicMatze (127)
am 10.02.2008 - 12:38 Uhr

Ich habe jetzt das Problem, dass wenn ich als Admin einen Beitrag erstelle oder editiere, dieser automatisch auf Unveröffentlicht steht.

Ich habe auch schon testweise die Funktion in template.php und die node-xxx-edit.php deaktiviert - dann hat es auch mit dem admin geklappt.

Meine node-video-edit.tpl.php sieht so aus:

<?php 
print '<h3>#1 - Titel und Beschreibung des Videos:</h3>';
print
drupal_render($form['title']);
print
drupal_render($form['field_kurzbeschreibung']);

print
'<h3>#2 - Videolink und Kategorie:</h3>';
print
drupal_render($form['field_videofeld']);
print
drupal_render($form['taxonomy']);

print
'<h3>#3 - Video Erstellen:</h3>';
global
$user;
if (
in_array('administrator',$user->roles)) {
 
// This line prints everything, including fields we haven't specified
 
print drupal_render($form);
} else {
 
// This prints just the fields that we've specified to keep it simple for regular users
 
print drupal_render($form['form_token']);
  print
drupal_render($form['form_id']);
  print
drupal_render($form['preview']);
  print
drupal_render($form['submit']);
  print
drupal_render($form['delete']);
}
?>

Funktion in template.php:

  if ($form['#node']->type == 'video') {
     return _phptemplate_callback('node-video-edit', array('form' => $form));
  }

Warum erstellt die selbstgebastelte node edit form meine Beiträge als unveröffentlicht?

---
www.party-riebel.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

lass dir noch <?phpprint

Eingetragen von dawehner (2639)
am 10.02.2008 - 13:30 Uhr

lass dir noch

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

anzeigen, damit müsste es gehen
--------------
Mein Blog: www.freeblogger.org
Deutscher IRC-Channel: irc.freenode.net #drupal.de je mehr desto besser
... Jabber-me: dereine@jabber.ccc.de Warum Jabber?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Vielen Dank - es hat

Eingetragen von MagicMatze (127)
am 10.02.2008 - 19:08 Uhr

Vielen Dank - es hat geklappt^^
---
www.party-riebel.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

irgendwie funktioniert das

Eingetragen von Mystify (232)
am 27.11.2008 - 15:49 Uhr

irgendwie funktioniert das ganze nicht bei mir.

ich habe einen inhaltstyp mit dem namen "news".
nun möchte ich nur die bearbeiten ansicht ändern.

ich hab also der template.php datei folgendes hinzugefügt:

if ((arg(0) == 'node') && (arg(2) == 'edit')){
    $node = node_load(array('nid' => arg(1)));
    if ($node->type == 'news'){
function phptemplate_node_form($form) {
  return _phptemplate_callback('news', array('user' => $user, 'form' => $form));
}
    }
}

und dann die datei node-news-edit.tpl.php erstellt.

aber irgendwie ändert sich nichts.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du hast den Zusammenhang noch nicht verstanden.

Eingetragen von quiptime (4972)
am 28.11.2008 - 00:25 Uhr

Kleine Korrektur Deines Code:

<?php
if ((arg(0) == 'node') && (arg(2) == 'edit')){
 
$node = node_load(array(arg(1));
  if (
$node->type == 'news') {
   
phptemplate_node_form($form);
  }
}

function
phptemplate_node_form($form) {
  return
_phptemplate_callback('news', array('user' => $user, 'form' => $form));
}
?>

Der Code ist PHP logisch so besser. Funktionen stehen wenn sie definiert werden immer fuer sich allein. Um sie anzusprechen kann man sie beispielsweise in if Statements aufrufen.

Er wird aber immer noch nicht funktionieren. Weil:

1.
Wie kommt bei Aufruf der Funktion die Variable $form zu ihrem Inhalt? Antwort: Gar nicht.

2.
Funktionen wie die function phptemplate_node_form($form) gehoeren in die Datei "template.php".

3.
Auch wenn sich die function phptemplate_node_form($form) in der "template.php" befindet wird das Ganze immer noch nicht funktionieren.

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

du solltest eher

Eingetragen von dawehner (2639)
am 28.11.2008 - 00:26 Uhr

du solltest eher schreiben

<?php
_phptemplate_callback('node-news-edit', a
?>
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da beisst die Maus keinen Faden ab.

Eingetragen von quiptime (4972)
am 28.11.2008 - 00:40 Uhr

Deine Frage

Zitat:

Wie und wo kann ich für jeden Inhaltstyp die "add" Seite themen?

Antwort

Eine /node/add Seite ist zu aller Erst ein Formular. Also benötigst Du für die Änderung eines Formulares den hook_form_alter. Zumindest immer dann wenn Du aktiv in den Code des Formulares eingreifen möchtest und nicht nur mittels CSS Formatierungen realisieren willst.

Da beisst die Maus keinen Faden ab. Das ist einfach so.

Die Funktion hook_form_alter verwendet man sinnvoller Weise in einem eigenen Modul.

Die Vorgehensweise zur Anwendung von hook_form_alter mit einem eigenen Modul (Minimodul, Mini Modul) habe ich hier auf DC bereits beschrieben. Suche einfach nach meinen Post's.

 

Tipp, Formulare mit HTML Code erweitern

HTML Code vor- und nach Formularelementen

Mit '#suffix' und '#prefix' kann man jedem Formelement HTML Code verpassen.

<?php
$foobar_prefix
= '<div>';
$foobar_prefix .= t('Hallo world');
$foobar_prefix .= '</div>';
$form['foobar'] = array(
 
'type' => 'textfield',
 
'title' => 'Field title',
 
'#suffix' => '<div>Hallo Drupal.</div>',
 
'#prefix' => $foobar_prefix,
);
?>

HTML Code links- und rechts neben Formularelementen

In bestimmten Formfeld-Anwendungsszenarien könnte man auch '#field_suffix' und '#field_prefix'. Und zwar dann um Code links und/oder rechts neben dem Formelement zu platzieren.

HTML Code unabhängig von Formelementen platzieren

Um HTML Code unabhängig von bereits existierenden Formelementen zu platzieren kann man sich eines Tricks bedienen. Der Trick besteht darin das man ein neues Feld/neue Felder vom Typ hidden erstellt. Dieses Feld kann man nach Bedarf mit '#suffix' und '#prefix' versehen.

Das würde so aussehen:

<?php
$foobar_prefix
= '<div>';
$foobar_prefix .= t('Hallo world');
$foobar_prefix .= '</div>';
$form['foobar'] = array(
 
'type' => 'hidden',
 
'#suffix' => '<div>Hallo Drupal.</div>',
 
'#prefix' => $foobar_prefix,
);
?>

Logischer würde bei einem Feld vom Typ hidden die Verwendung '#field_suffix' und '#field_prefix' keinen Sinn machen da es kein sichtbares Formularelement gibt neben dem recht und links etwas platziert wird.

Es bleibt die Frage nach der Unlogik:
Was passiert wenn trotzdem '#field_suffix' und '#field_prefix' mit einem hidden Formelement verwendet wird?

Zugefügter HTML Code und die Größe des Formulares

Grundsätzlich kann man alle existierenden Formelemente nachträglich mit Collapsi-Feldern erweitern um so im Formular "Platz zu schaffen".
Neben dem Aspekt des "Platz schaffens" kann diese Vorgehensweise auch als Alternative zur Anwendung von '#suffix' und '#prefix' dienen.

Formelement $form['foobar'] mit Collapsi-Funktion erweitern

<?php
$form
['more'] = array(
 
'type' => 'fieldset',
 
// Titel des eigentlichen Elementes übernehmen damit im zugeklappten Zustand sichtbar ist was da drin steckt
 
'title' => 'Field title',
 
'#collapsible' => TRUE,
 
// Feld ist standardmässig zugeklappt
 
'#collapsed' => TRUE,
 
'#description' => "<div>Hier zusätzlicher HTML Code alternativ zur Verwendung von '#suffix' und '#prefix'.</div>",
);
$form['more']['foobar'] = array(
 
'type' => 'textfield',
 
'title' => 'Field title',
);
?>

 

Links

DC Handbuch: Formulare mit Minimodulen ändern

 
PS

@dereine, kleiner Angriff:

Ein Hinweis in Richtung hook_form_alter hätte von Dir eigentlich kommen können. ;-)

 
======================== Tags ========================

Formalter alter, Formular erweitern,

-------------
quiptime

Nur tote Fische schwimmen mit dem Strom.

XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

muss das wirklich so

Eingetragen von Mystify (232)
am 28.11.2008 - 13:42 Uhr

muss das wirklich so kompliziert sein?

bei den einfachen seiten geht es ja auch immer indem man einfach eine theme-datei erstellt, warum also nicht auch bei den bearbeiten seiten?

  • Anmelden oder Registrieren um Kommentare zu schreiben

es ist halt nunmal so,

Eingetragen von dawehner (2639)
am 29.11.2008 - 14:52 Uhr

es ist halt nunmal so, akzeptier es.

Vom Prinzip ist das ja kein Unterschied, finde ich ^^

mi hook_theme könntest du eigentlich theoretisch das ganze auch erreichen, weiß aber gerade nicht wie hook_theme genau funktioniert

@Quiptime
Dann aber bitte ein Verweis auf

<?php
function hook_form_node_form_alter($&$form, $form_state) {
}
?>

^^
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING

  • 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 5 Stunden
  • Update: jetzt gibt's ein
    vor 2 Wochen 23 Stunden
  • 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 2 Tagen
  • In der entsprechenden View
    vor 3 Wochen 2 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 2 Tagen
  • gelöst
    vor 5 Wochen 6 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 5 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 21 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