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

[gelöst] eigene CSS für eigenen Inhaltstyp

Eingetragen von dstar (19)
am 02.10.2014 - 16:23 Uhr in
  • Themes & Theming
  • Drupal 7.x

Hallo Zusammen,

ich hab einen Inhaltstyp mitarbeiter mit node--mitarbeiter.tpl.php erstellt. Alle Inhalte vom Typ mitarbeiter lasse ich in einem View anzeigen. Soweit funktioniert es wie gewünscht.
Jetzt würde ich gerne das Layout der node--mitarbeiter.tpl.php mit einer eigenen CSS-Datei gestalten.
Ich hab den Hinweis gefunden CSS-Dateien mit drupal_add_css einzufügen.

<?php

drupal_add_css
('/sites/all/themes/test/css/mitarbeiter.css',
array(
'group' => CSS_THEME, 'type' => 'external'));

?>

Aber wo soll ich den Code reinschreiben, das hab ich leider nicht verstanden. Ich hab es am Anfang der node--mitarbeiter.tpl.php probiert, ohne Erfolg.
Wo finde ich einen Anleitung wie man das macht? Momentan stehe ich auf dem Schlauch und bin für jeden Hinweis dankbar.

Auf welche Art und Weise gestaltet Ihr das Layout der Inhaltstypen und Views?

‹ [gelöst] Titel-Feld - einzeilig - zweizeilig - Theming Problem [gelöst] eigene CSS für eigenen Inhaltstyp ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Den Code bzw. die CSS Styles

Eingetragen von Jenna (1883)
am 02.10.2014 - 22:53 Uhr

Den Code bzw. die CSS Styles schreibst du in deine neu angelegte mitarbeiter.css, die muß dann in dem Ordner test/css liegen, die Einbindung erfolgt dann über drupal_add_css, wird also nur geladen wenn deine node--mitarbeiter.tpl.php aufgerufen wird.

Vielleicht ist das auch eine Lösung für dich, ich habe das Modul grad gefunden und noch nicht selbst getestet, aber es steht bei das es pro Node oder Contenttype angewendet werden kann.
https://www.drupal.org/project/cpn

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Jenna, danke für deine

Eingetragen von dstar (19)
am 02.10.2014 - 23:06 Uhr

Hallo Jenna,
danke für deine Antwort. Mir fehlt nur die Info in welche Datei ich den drupal_add_css Aufruf reinschreiben soll und ob er so richtig ist wie ich ihn oben habe.
Viele dstar

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du brauchst kein eigenes

Eingetragen von Goekmen (1013)
am 02.10.2014 - 23:21 Uhr

Du brauchst kein eigenes Template, wenn du nur CSS Code des Content Type ändern willst.
Drupal gibt im Body Tag CSS Klassen aus. Beispiel:

<body class="html not-front not-logged-in one-sidebar sidebar-first page-node page-node- page-node-1301 node-type-event i18n-de" >

Bei dir steht dann vermutlich irgendwo...

<body class="node-type-mitarbeiter" >

Damit kannst du dein Content Type direkt ansprechen:

.node-type-mitarbeiter {
dein Code
}

Den Code kannst du in dein aktuell, verwendetes Theme packen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Du brauchst kein

Eingetragen von Jenna (1883)
am 02.10.2014 - 23:41 Uhr
Zitat:

Du brauchst kein eigenes Template, wenn du nur CSS Code des Content Type ändern willst.

Ich glaube ihm geht es darum diese css nur zu laden wenn der entsprechende Content Type aufgerufen wird?

Sieh dir doch mal dieses Tutorial an, da ist ein passendes Beispiel bei:
http://www.kotori.de/wissen/drupal-7-stylesheets-javascript-einbinden.html

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für eure Antworten.

Eingetragen von dstar (19)
am 03.10.2014 - 10:07 Uhr

Danke für eure Antworten. Mein Problem ist, das ich noch das richtige Konzept im Umgang mit Drupal finden muss.

Die Lösung von Goekmen ist eigentlich genau richtig. Über die css-Klassen view-mitarbeiter und node-mitarbeiter kann ich ja auch schon die Elemente formatieren. Damit ist mein Problem gelöst.
Danke!

Allerdings war meine ursprüngliche Idee so wie es Jenna verstanden hat, die css-Datei nur zu laden wenn der Content Type aufgerufen wird.
Ich würde jetzt trotzdem gerne noch wissen wie das mit dem drupal_add_css Aufruf funktioniert.

Den Aufruf drupal_add_css hab ich in die node--mitarbeiter.tpl.php geschrieben:

<?php

drupal_add_css
('/sites/all/themes/test/css/mitarbeiter.css',
array(
'group' => CSS_THEME, 'type' => 'external'));

?>

<article class="node-<?php print $node->nid; ?> <?php print $classes; ?> clearfix"<?php print $attributes; ?>>

  <?php if ($title_prefix || $title_suffix || $display_submitted || $unpublished || !$page && $title): ?>
//weiterer Code ...

Allerdings wird die css-Datei nicht geladen. Cash hab ich schon gelöscht.
Ist das die falsche Stelle an der ich versuche die css-Datei zu laden oder hab ich grundsätzlich einen Denkfehler beim einbinden der css-Datei?

vielen Dank

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das laden der CSS Datei über

Eingetragen von wla (9461)
am 03.10.2014 - 10:11 Uhr

Das laden der CSS Datei über drupal_add_css gehört in die preprocess_node-Funktion in der template.php im eigenen Theme. Im Zen-Theme, in der template.php, kann man nachsehen, wie man diese auf eine Funktion pro Node-Typ aufbohrt (gut dokumentiert). Dann kannst Du Deinen Code dort einstellen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

[gelöst]

Eingetragen von dstar (19)
am 03.10.2014 - 12:24 Uhr

Super, dass war noch der fehlende Hinweis.
Danke an euch drei.
Viele grüße

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Das laden der CSS

Eingetragen von Jenna (1883)
am 03.10.2014 - 12:29 Uhr
Zitat:

Das laden der CSS Datei über drupal_add_css gehört in die preprocess_node-Funktion in der template.php im eigenen Theme

Der Meinung war ich eigentlich auch, in dem obigen Link Beispiel wird es so beschrieben:

Zitat:

Drupal stellt hierzu drei Funktionen zur Verfügung (je eine für CSS, JavaScript und RSS-XML), die in die Templatedatei des jeweiligen Inhaltstyps direkt hinter die Renderfunktion des Headers gesetzt werden; wenn wir z. B. einen Inhaltstyp wissensartikel im Theme meintheme definiert haben, so bearbeiten wir im Theme-Directory (/sites/all/themes/meintheme/) das Template page--wissensartikel.tpl.php.

@wla
Ist es gleichgültig welchen Weg man wählt, ist mir jetzt auch nicht mehr so ganz klar?

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das allgemeine Einbinden von

Eingetragen von wla (9461)
am 03.10.2014 - 18:09 Uhr

Das allgemeine Einbinden von CSS geschieht im Header und der wird in Drupal 7 über die html.tpl.php gesteuert. Da kann man also auch ansetzen. Wenn eine CSS-Datei aber allgemein eingebunden werden soll, mache ich das über die .info-Datei im Theme. Wird es dann speziell, wie im vorliegenden Fall, packe ich das in eine Nodetyp-spezifische preprocess-Funktion in der template.php im Theme.

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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