Ein Haufen Anfängerfragen

am 28.06.2012 - 13:21 Uhr in
Hallo!
Ich setze gerade eine Website mit Drupal 7 um, arbeite das erste mal mit Drupal. Habe einiges an Programmier- und CMS-Erfahrung (Typo3, Wordpress).
Einige Fragen tauchen auf, und bis jetzt habe ich noch keine befriedigende Antwort oder hilfreiche Ressourcen dazu gefunden:
- Wie ist das Konzept der Seiten/Artikel in Drupal gelöst?
Ich habe einige Seiten, die mit verschiedenen Artikel befüllt werden müssen. Wie lege ich eine statische Seite mit Content an? Wie lege ich eine Seite mit Artikel an? Wie weiße ich dem neu erstellten Artikel einer Seite zu? Wie kann ich seiten-spezifische aktionen setzen, zum beispiel bei jeder seite ein eigenes titelbild anzeigen? - Auch das Theming ist mir noch nicht so ganz klar. Ich habe Bartik hergenommen und mit meinem HTML und Css template überschrieben, das läuft soweit. Die Artikel werden allgemein mit node.tpl.php beschrieben, das habe ich soweit. Wie siehts jetzt aus wenn ich andere Inhaltstypen anlege? Welche methoden habe ich in der node.tpl.php zur verfügung? Wie stellt die datei den unterschied zwischen teaser-ansicht und vollem artikel fest? welche eigenschaften kann ich auslesen (user, datum, kategorie, unter welcher seite gespeichert etc)?
- Ein wichtiger Teil, die Blöcke. Wie kann ich eigene Blöcke definieren und programmieren? (zB würde ich gerne eine eigene anmelde/abmelde/userdaten-box programmieren).
gibt es irgendwo referenzen zu funktionen u methoden die ich verwenden kann? zb um einen link oder ein bild zu generieren?
gibt es kein online-handbuch (am besten deutsch) wo solche offensichtlich grundlegenden dinge über drupal erklärt werden, und das auch für fortgeschrittene programmierer vielleicht?
ich weiß, für jemanden für den das alles klar ist, sind diese fragen kinderkram, wenn man sich aber das erste mal mit einem cms beschäftigt stellen solche sachen meist eine hürde dar.
vielen dank für eure hilfe!!
lg
- Anmelden oder Registrieren um Kommentare zu schreiben
einfaches
am 28.06.2012 - 13:40 Uhr
einfaches anwendungsbeispiel:
ich möchte für meine standard-artikel einen vorschau-teaser mit "mehr..."-link über den man dann auf den vollen artikel auf einer eigenen seite kommt. auf der startseite sollen immer die letzten 3 artikel (später auch andere inhaltstypen, wie zb buchbesprechungen, interviews..) plus pagination angezeigt werden. in einem menüpunkt "aktuell/news" sollen die artikel gelistet werden.
bei dem teaser möchte ich immer ein hinzugefügtes bild in klein anzeigen. wie bekomme ich das zb nun. es müsste bei mir ja unter $content['field_image'] verfügbar sein. ich nehme an, die methode render() rendert mir mit drupal_render dann die geweilige eigenschaft in html hinaus. funkt aber nicht so richtig, und ich versteh es auch nicht.
und woher weiß ich, was in $content alles drinnen steht, auf welche eigenschaften ich da zugreifen kann? gibts referenzen? debugfunktionen?
ich würde gerne wissen, was ich da tue, und welche möglichkeiten ich habe. und ich will die konzepte dahinter verstehen.
humpdi schrieb Hallo! Ich
am 28.06.2012 - 14:26 Uhr
Hallo!
Ich setze gerade eine Website mit Drupal 7 um, arbeite das erste mal mit Drupal. Habe einiges an Programmier- und CMS-Erfahrung (Typo3, Wordpress).
Herzlich Willkommen. Ein Tipp: Vergiss alles was du an Struktur und so von WP und T3 kennst. ;)
Wie ist das Konzept der Seiten/Artikel in Drupal gelöst?
Ich habe einige Seiten, die mit verschiedenen Artikel befüllt werden müssen. Wie lege ich eine statische Seite mit Content an? Wie lege ich eine Seite mit Artikel an? Wie weiße ich dem neu erstellten Artikel einer Seite zu? Wie kann ich seiten-spezifische aktionen setzen, zum beispiel bei jeder seite ein eigenes titelbild anzeigen?
Statsiche Seiten (z.B. Impressum): Der vorgefertigte Inhaltstyp "Page" (Seite) eignet sich sher gut dafür.
Um Artikel auf versch. Seiten anzuzeigen, ist das Views Modul empfehlenswert. Damit legst du dir eine Seite an und filterst die Inhalte, die du angezeigt bekommen möchtest. Zur Kategorisierung solltest du dir das mitgelieferte Modul "Taxonomy" ansehen.
Auch das Theming ist mir noch nicht so ganz klar. Ich habe Bartik hergenommen und mit meinem HTML und Css template überschrieben, das läuft soweit. Die Artikel werden allgemein mit node.tpl.php beschrieben, das habe ich soweit. Wie siehts jetzt aus wenn ich andere Inhaltstypen anlege? Welche methoden habe ich in der node.tpl.php zur verfügung? Wie stellt die datei den unterschied zwischen teaser-ansicht und vollem artikel fest? welche eigenschaften kann ich auslesen (user, datum, kategorie, unter welcher seite gespeichert etc)?
http://drupal.org/node/1089656 (Übersicht über die versch Möglichkeiten für template-files)
http://api.drupal.org/api/drupal/modules!node!node.tpl.php/7 (API: node.tpl.php beschreibung mit Standardvariablen)
Ein wichtiger Teil, die Blöcke. Wie kann ich eigene Blöcke definieren und programmieren? (zB würde ich gerne eine eigene anmelde/abmelde/userdaten-box programmieren).
Das machst du am besten in einem eigenen Modul (nachdem die Frage geklärt ist: Warum eigenes programmieren und nicht das vorhanden anpassen?).
http://drupal.org/node/1074360 (Doku eigenes Modul schreiben)
gibt es irgendwo referenzen zu funktionen u methoden die ich verwenden kann?
http://api.drupal.org/api/drupal
zb um einen link oder ein bild zu generieren?
Wo zu generieren? Was ist der Use Case? Und: Gibt es dafür schon ein Modul das es löst?
gibt es kein online-handbuch (am besten deutsch) wo solche offensichtlich grundlegenden dinge über drupal erklärt werden, und das auch für fortgeschrittene programmierer vielleicht?
http://www.drupalcenter.de/handbuch Hier darf gerne bei der Erweiterung geholfen werden :)
Gruß
JThan
_____
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.
humpdi schriebeinfaches
am 28.06.2012 - 14:38 Uhr
einfaches anwendungsbeispiel:
ich möchte für meine standard-artikel einen vorschau-teaser mit "mehr..."-link über den man dann auf den vollen artikel auf einer eigenen seite kommt. auf der startseite sollen immer die letzten 3 artikel (später auch andere inhaltstypen, wie zb buchbesprechungen, interviews..) plus pagination angezeigt werden. in einem menüpunkt "aktuell/news" sollen die artikel gelistet werden.
Das oben genannte Views Modul plus taxonomy bzw. eigene Inhaltstypen löst dies (imho einfach).
bei dem teaser möchte ich immer ein hinzugefügtes bild in klein anzeigen. wie bekomme ich das zb nun. es müsste bei mir ja unter $content['field_image'] verfügbar sein. ich nehme an, die methode render() rendert mir mit drupal_render dann die geweilige eigenschaft in html hinaus. funkt aber nicht so richtig, und ich versteh es auch nicht.
Das sind alles Dinge, für die keinen Code anfassen musst. ImageCache ist seit D7 im Core, damit kannst du das einstellen. Beim Inhaltstypen unter Ansichtseinstellungen (display Settings) kannst du einstellen, welche Größe angezeigt werden soll.
und woher weiß ich, was in $content alles drinnen steht, auf welche eigenschaften ich da zugreifen kann? gibts referenzen? debugfunktionen?
Wenn man es wirklich wissen muss (und es gibt wenige Fälle wo das notwendig wird, gerade am Anfang) dann gibt es versch. Möglichkeiten: devel-Modul, Firebug, eigene Ausgaben generieren (print_r) usw.
ich würde gerne wissen, was ich da tue, und welche möglichkeiten ich habe. und ich will die konzepte dahinter verstehen.
Konzepte:
- Ändere niemals Core Code, sonst sterben kleine Kätzchen.
- Ändere keinen Modulcode, sonst kannst du nichtmehr updaten.
- Lerne die Möglichkeiten der Core Module plus Views.
- Lies viel!
- Lerne folgende Begriffe zu erklären: Node, Inhaltstyp, View (Ansicht), Entity, Feld.
- Suche immer nach einem Modul dass schon lösen kann was du brauchst. Verbessere das vorhandene Modul, bevor du ein eigenes schreibst.
- Lies die README Dateien, und die INSTALL Dateien und die [Modulname].api.php Dateien.
- Wenn du codest: Schau dir dies hier genau an: http://drupal.org/coding-standards
- Der wichtigste Satz: Da gibt es ein Modul für.
- Community is key, geh auf Treffen und sprich mit anderen Drupalern.
Viel Erfolg :)
Gruß
JThan
_____
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.
ein guter Einstieg
am 28.06.2012 - 15:39 Uhr
sind die Tutorials von thoor.de
Wenn du etwas in die Tiefe gehen willst, gehe zu nodeone.se
Wenn du das alles durch hast (auch verstanden), kennst du dich schon recht gut aus.
Grüße
Ronald
Vielen Dank für die
am 29.06.2012 - 09:16 Uhr
Vielen Dank für die Antworten!
Da fühlt man sich schon gut in die Drupal-Community aufgenommen :)
Werde mich euren Vorschlägen einmal widmen, wenn wieder Fragen auftauchen komme ich zurück ;)
Vielen lieben Dank!
LG, humpdi
kurze zwischenfrage
am 26.07.2012 - 11:12 Uhr
www.drupalcenter.de/handbuch/4285
gibts dazu eine aktuelle referenz?
$links ist nicht verfügbar, $node ist ein object (wie kann ich das betrachten?), $taxonomy gibt ab und zu fehler ab nie die zugewiesenen begriffe aus...
und was zum teufel macht
am 26.07.2012 - 11:43 Uhr
und was zum teufel macht eigentlich render($content)???
dort passiert offensichtlich die ganze "magic", hier kann auf einmal mein taxonomy-begriff und mein bild ausgegeben werden. ich finde das nur ein bisschen SEHR umständlich und überhauptnicht anpassungsfreundlich wenn man das alles in einer einzigen methode abarbeitet... also drupal machts einem wirklich nicht leicht. :(
Due bearbeitest doch nicht
am 26.07.2012 - 12:19 Uhr
die Darstellung über die Methoden?
In Drupal ist der Code vom content getrennt.
Darstellungsfragen werden im Template geregelt.
An den Scripten sollte man nicht arbeiten.
Grüße
Ronald
ja, ich erstelle aber ein
am 26.07.2012 - 12:34 Uhr
ja, ich erstelle aber ein eigenes template. auf der grundlage von bartik.
in der node.tpl.php dort wird der inhalt mit print render($content); ausgegeben, und das wars. ich habe noch keine möglichkeit gefunden, auf die einzelnen eigenschaften einer node (hinzugefügtes bild, taxonomy-begriffe etc) zuzugreifen.
ich habe zwar die referenz www.drupalcenter.de/handbuch/4285 gefunden, die ist aber ungenügend bzw nicht mehr uptodate.
also, wie kann ich die darstellung meines inhalts im template regeln? (drupal7)
Wer lesen kann ist klar im
am 26.07.2012 - 13:04 Uhr
Wer lesen kann ist klar im Vorteil. Hier ein Auszug aus der node.tpl.php von Bartik:
* Node status variables:
* - $view_mode: View mode, e.g. 'full', 'teaser'...
* - $teaser: Flag for the teaser state (shortcut for $view_mode == 'teaser').
* - $page: Flag for the full page state.
* - $promote: Flag for front page promotion state.
* - $sticky: Flags for sticky post setting.
* - $status: Flag for published status.
* - $comment: State of comment settings for the node.
* - $readmore: Flags true if the teaser content of the node cannot hold the
* main body content.
* - $is_front: Flags true when presented in the front page.
* - $logged_in: Flags true when the current user is a logged-in member.
* - $is_admin: Flags true when the current user is an administrator.
*
* Field variables: for each field instance attached to the node a corresponding
* variable is defined, e.g. $node->body becomes $body. When needing to access
* a field's raw values, developers/themers are strongly encouraged to use these
* variables. Otherwise they will have to explicitly specify the desired field
* language, e.g. $node->body['en'], thus overriding any language negotiation
* rule that was previously applied.
*
* @see template_preprocess()
* @see template_preprocess_node()
* @see template_process()
Also zunächst hast Du im node.tpl.php diverse Variablen zur Verfügung. Wenn das nicht reicht, kannst Du über die Funktion [name des themes]_preprocess_node in der Datei template.php im eigenen Theme weitere Variablen aufsetzen.
Noch mal der Hinweis von oben: Wenn Du mit Drupal arbeitest, vergiß all Deine Kenntnisse von WP oder Typo, die hindern beim Verständnis von Drupal.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
In der API findet man die
am 26.07.2012 - 13:06 Uhr
In der API findet man die benötigten Infos dazu:
http://api.drupal.org/api/drupal/modules%21node%21node.tpl.php/7
Gruß
JThan
_____
Alle Angaben in meinen Beiträgen sind stets ohne Gewähr und auf eigenes Risiko für bare Münze zu nehmen.