17
1 Drupal Einführung Drupal ist ein in PHP geschriebenes Opensource Content Management System, aufgrund seiner Flexibilität wird es auch gerne als Framework bezeichnet. Drupal ist so entworfen wurden, dass es anpassbar ist. Wichtig und absolut zu beachten ist hierbei allerdings, das man keine Änderungen am Core vornimmt sondern durch Überschreiben und Hinzufügen von Modulen. Um Drupal installieren zu können muss PHP vorhanden sein. Auf ganz billigen Serverangeboten wird es evtl. nicht laufen aber all zu hohe Ansprüche stellt es auch nicht. Es sollte folgendes Vorhanden sein: .htaccess mod_rewrite Datenbank - MySQL oder PostgreSQL Drupal Core Der Drupal Core stellt die Grundfunktionen bereit z.B. Benutzerverwaltung, Taxonomie, Temp- late - Erstellung, Blogsystem usw. Hier ein Überblick der Verwaltungsoberfläche:

drupal - waldbeek.com · Der Drupal Core stellt die Grundfunktionen bereit z.B. Benutzerverwaltung, Taxonomie, Temp-late - Erstellung, Blogsystem usw. Hier ein Überblick der Verwaltungsoberfläche:

  • Upload
    vokien

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

1

Drupal EinführungDrupal ist ein in PHP geschriebenes Opensource Content Management System, aufgrund seiner Flexibilität wird es auch gerne als Framework bezeichnet. Drupal ist so entworfen wurden, dass es anpassbar ist. Wichtig und absolut zu beachten ist hierbei allerdings, das man keine Änderungen am Core vornimmt sondern durch Überschreiben und Hinzufügen von Modulen.

Um Drupal installieren zu können muss PHP vorhanden sein. Auf ganz billigen Serverangeboten wird es evtl. nicht laufen aber all zu hohe Ansprüche stellt es auch nicht.

Es sollte folgendes Vorhanden sein:• .htaccess• mod_rewrite• Datenbank - MySQL oder PostgreSQL

Drupal Core

Der Drupal Core stellt die Grundfunktionen bereit z.B. Benutzerverwaltung, Taxonomie, Temp-late - Erstellung, Blogsystem usw.

Hier ein Überblick der Verwaltungsoberfläche:

2

Hier sieht man die Core Funtkionen. Was schon ausreichend ist um eine simple Webseite zu erstellen. Für mehr Funktionen installiert man Module. Dank der lebendigen Community gibt es diese für unzählige Anwendungsgebiete.

Der „User_1“ also derjenige der die Seite erstellt und sich als erster anmeldet hat, ist der Pow-eruser mit allen Rechten und hat die volle Kontrolle. Der „User_1“ muss auch angemeldet sein um Updates am Drupal Core vorzunehmen.

Erklärung einiger Begriffe die immer wieder auftauchen:

Module:Module erweitern die Funktionalität und können bei Bedarf „ein- und ausgeschaltet“ werden. (sinnvoll für Module zur Entwicklung). Module werden von Drupal dann aufgerufen wenn sie gebraucht werden. (Inversion of Control).

Hooks:Hooks sind Ereignisse innerhalb von Drupal. Module können sich damit in Ereignisse „einha-cken“. Durch die Implementierung von Hooks können Module die Core Funktionen von Drupal nutzen. z. B. ein Benutzer schreibt einen Blogeintrag und ein „Twitter-Modul“ postet das nach dem Speichern auf Twitter.

Themes:Mit Themes kann das Erscheinugnsbild der Webseite verändert werden. Es gibt verschiedene vorinstallierte, man kann eigene erstellen und sogar bestimmten Benutzern eigene zuweisen.

Nodes:Node ist der Basistyp von dem sich alle anderen Inhaltstypen ableiten. Was bedeutet man kann die allgemeinen Funtionen überall verwenden. z.B. erstellt man eine Produktseite und möchte das diese eine Kommentarfuntion erhält - ist mit wenigen Mausklicks möglich.

Blöcke:Ein Block enthält definierbare Informationen die an verschiedenen Stellen der Webseite unter bestimmten Bedingungen angezeigt werden können. (z.B. Die neusten Blogeinträge - nur auf der Startseite.) siehe: admin/build/blockDurch Drag und Drop kann man so die Blöcke an die gewünschte Stelle verschieben. Unter Edit befinden sich verschiedene Einstellungsmöglichkeiten.

3

Installation von Drupal 6 Download von Drupal unter: http://drupal.org/project/drupal (hier findet man immer die neuste Version) Für die deutsche Version: http://www.drupal.de/drupal-6-download

Wer den Terminal benutzen möchte:curl „http://ftp.drupal.org/files/projects/drupal-6.14.tar.gz“ | tar -zxpv

bzw. die deutsche Version:curl „http://www.drupalcenter.de/files/drupal-6.14-DE.tar.gz“ | tar -zxpv Das ganze entpacken (FTP oder Lokal). Im Verzeichnis befindet sich dann folgendes. (Wichtig ist, das die .htaccess Datei vorhanden ist – wird gerne vergessen da sie versteckt ist.)

4

Interessant hier ist eigentlich nur der Ordner „sites“. Von den restlichen Dateien und Ordner sollte man die Finger lassen da sonst Probleme bei einem Drupal Update auftauchen können.

Im Ordner „sites“ befinden sich die Ordner: „all“ und „default“.

1. all: hier legt man 3 Ordner an:

• modules - hier werden die eigenen Module installiert. (Der Ordner modules auf root Ebene ist für die Core Module)

• themes - hier werden die eigenen Themes installiert • libraries - hier installiert man die WYSIWYG Editoren

nur wenn man das Modul „wysiwyg“ installiert hat - was allerdings unbedingt zu empfehlen ist. http://drupal.org/project/wysiwyg

2. default:hier legt man (sollte er nicht schon vorhanden sein) einen Ordner „files“ an. Dieser muss CHMOD 777 sein.In diesem Ordner werden alle Dateien abgelegt bzw. generiert die der Benutzer während seiner Arbeit mit Drupal hochlädt oder erstellt. (z.B. ImageMagic)Es ist aber auch mögloich die Verzeichnissstrucktur individuell einzustellen.(admin/settings/file-system)

Als nächsten Schritt die Datei „default.setting.php“ (im Ordner sites/all/default) duplizieren und in „settings.php“ umbenennen und auch hier CHMOD 777.

Zum Schluss eine Datenbank anlegen und man kann Drupal installieren.

Den Rest werde ich hier nicht weiter erläutern - einfach den Anweisungen folgen.

5

Die wichtigsten Module installieren

Zunächst werden die wesentlichen Module installiert um vernünftig arbeiten zu können.Einige dieser Module sind so umfangreich in den Funktionen das diese ein eigenes Kapitel erfor-dern. Ich gehe hier nicht im Detail auf diese ein.

WICHTIG! Die Module nicht nach modules installieren sondern nach:sites/all/modules

Nach der Installation müssen diese noch unter „admin/build/modules“ aktiviert werden.

Content Construction Kit (CCK)http://drupal.org/project/cck

Viewshttp://drupal.org/project/views

Diese beiden Module sind überhaupt die wichtigsten, Teile davon werden bei Drupal7 im core vorhanden sein. „CCK“ dient zum erstellen von eigenen Inhaltstypen und „Views“ wird gerne als das Schweizer Taschenmesser von Drupal beschrieben. Im wesentlichen kann man damit Daten-bank Querrys erstellen. Also man steuert damit u.a. welche Inhalte wie ausgegeben werden.

Wysiwyghttp://drupal.org/project/wysiwyg

Dies ist kein Editor sondern ein Schnittstelle um wysiwyg Editoren wie FCK Editor oder TinyMCE vernünftig einzubinden.

Develhttp://drupal.org/project/devel

Wichtiges Tool um die Entwicklung zu unterstützen

Backup and Migratehttp://drupal.org/project/backup_migrate

Was dieses Modul macht sagt der Name bereits. Man kann zeitgesteuerte Backups einstellen. Und es ist sehr unkompliziert die Datenbank von Lokal auf die Liveseite zu migrieren.

ImageAPIcurl „http://ftp.drupal.org/files/projects/imageapi-6.x-1.6.tar.gz“ | tar -zxvp

ImageCachecurl „http://ftp.drupal.org/files/projects/imagecache-6.x-2.0-beta10.tar.gz“ | tar -zxvp

ImageAPI und ImageCache gehöhren zusammen. Mit ImageCache kann man Bilder serverseitig bearbeiten. (kleiner rechnen usw.)

ImageFieldcurl „http://ftp.drupal.org/files/projects/imagefield-6.x-3.2.tar.gz“ | tar -zxvp

Imagefield erzeugt ein CCK Feld zum Bilder hochladen, dazu wird aber auch Filefield benötigt

FileFieldcurl „http://ftp.drupal.org/files/projects/filefield-6.x-3.2.tar.gz“ | tar -zxvp

6

Insertcurl „http://ftp.drupal.org/files/projects/insert-6.x-1.0-beta2.tar.gz“ | tar -zxvp

Mit Insert kann man BIlder mittels wysiwyg in Texte einfügen.

Pathautocurl „http://ftp.drupal.org/files/projects/pathauto-6.x-1.2.tar.gz“ | tar -zxvp

Dieses Modul erzeugt automatisch einen Pfad in das URL aus dem Titel. Zudem bietet es viel-seitige Einstellmöglichkeiten. Meiner Meinung nach absolut unverzichtbar.

Flashnodecurl „http://ftp.drupal.org/files/projects/flashnode-6.x-3.1.tar.gz“ | tar -zxvp

Flashnode erzeugt eine Inhaltstyp mit der Möglichkeit Flash einzubinden. Leider ist es zur Zeit noch nicht möglich einfach mit CCK ein Flashfield zu erzeugen.

SWF Toolscurl „http://ftp.drupal.org/files/projects/swftools-6.x-2.5.tar.gz“ | tar -zxvp

Stellt diverse swf Funktionen zur Verfügung. Man kann damit FLV - und MP3 Player einbinden, Flashgallerien sind auch möglich. Es funktionieren nicht alle. Welche kompatibel sind sieht man in den Einstellungen.

Nodewordscurl „http://ftp.drupal.org/files/projects/nodewords-6.x-1.3-beta5.tar.gz“ | tar -zxvp

Dient zum Bearbeiten und einrichten von Metatags.

Weitere sinnvolle Module (die ich jetzt nicht weiter Erläutere)• Admin• Token• Webform

Für social Networking:• OG• Notifications• Flag + Flag Friend

Spam:

Automated: • Mollom• Spam• Akismet (NO - Funzt nicht richtig mit Drupal)• Captcha + ReCaptcha

Manual/community: (selbst noch nicht ausprobiert)

• Flag + Flag Actions• VotingAPI + A slice of custom code • [either of those] + VBOwn your face with easy sauce!

Adminmenü: (sehr hilfreich)curl „http://ftp.drupal.org/files/projects/admin_menu-6.x-1.5.tar.gz“ | tar -zxvp

7

Wie erkennt man gute Module?http://drupal.org/project/usage

Hier sieht man die Module mit der Anzahl der Benutzer.

http://groups.drupal.org/similar-module-review

Hier kann man recherchieren ob es ähnliche Module gibt. Oder wenn man ein Modul entwickeln möchte lohnt es sich hier reinzuschauen. Evtl. ist es besser eins zu forken. http://drupaldashboard.com/node/43

Bekannte Fragen - #drupal-colorado #drupal-yourregion Firmen fragen - http://groups.drupal.org/libraries Code style - http://drupal.org/project/coder

Bei den Downloadseiten der Module die Linke Seite beachten

Maintainer - darauf achten ob diese schon lange dabei sind.

Maintainers - mehr ist besser

Issue queue - aktive aber nicht zu aktive

8

Eine kurze Einführung in CCK

Wie man ein Modul installiert habe ich bereits erklärt. Aktivieren muss man diese unter „admin/build/modules“

Einen eigenen Inhaltstyp erstellen:

Der Standard Inhaltstyp besteht immer aus einem Titel und einem Textbereich. Man kann mit CCK beliebig viele Felder hinzufügen. Am besten ist es am Anfang eine kleine Skizze zu haben was man überhaupt benötigt.

Als Beispiel nehmen wir ein Buch. Dafür benötigen wir folgende Felder:• Buchtitel• Beschreibung• Autor• Erscheinungsdatum

Wir navigieren zu: „admin/content/types/add“

Name: ist die Bezeichnung des InhaltstypsType: ist die maschinen lesbare Bezeichnung und wird so in die Datenbank eingetragen. Also am besten eine eindeutige Bezeichnung verwenden. Description: Ist der erklärende Bescheibungstext.

Unter „Submission form settings“ tragen wir bei „Default comment setting:“ Buchtitel ein und bei „Body field label:“ Beschreibungstext.

Die Workflow settings (Published, Promoted to front page, Sticky at top of lists, Create new re-vision) Und die Comment settings sollte man auch einstellen. Wir wollen hier keine Kommentare also werden die „Default comment setting:“ auf „disabled“ gestellt.

Dann das ganze speichern.

9

Felder hinzufügen

Auf „manage fields“ klicken un folgendes Eintragen:

Speichen und die darauffolgende Seite auch einfach speichern. Das gleiche wiederholen wir für das Datum. Per Drag und Drop kann man nun die Reihenfolge der Felder verändern.

Es gibt auch die Modul DateAPI und Date. Mit diesem kann man dann auch Datestamps einstel-len oder einen Jquery Kalender hinzufügen.

10

Eine Kurze Einführung in Views

Auch steht zuerst die Überlegung was will ich eigentlich. Man kann mit views Seiten oder Blö-cke erstellen. Wir möchten einen Block erzeugen der die neusten 5 Bücher auf der Startseite anzeigt mit dem Namen des Autors, dem Titel und die ersten 100 Zeichen aus dem Beschreibungstext.

navigieren zu: admin/build/views/add

Folgendes eintragen:

View type so lassen. Auf next Klicken:

1. Hier zuerst links oben beim Pulldown „Block“ eintellen und auch „Add display“ klicken.2. Bei Field auf das kleine „+“ klicken.

11

Hier das Pulldown Groups anklicken und „Node“ auswählen. (Das ist eine Filterfunktion die das auffinden des Gewünschten Inhalts leichter macht) Dann „Node: Title“ anklicken. Auf „Add“ und dannach „update Default Display“. Nochmal das gleiche nur wählen wir nun „Node: Body“ aus. Wieder auf „Add“ klicken. Im nächsten Bereich „Trim this field to a maximum length“ und bei „Maximum length:“ 100 eintragen.

Nun noch Auto und Datum nach dem gleichen System erzeugen. Hier allerdings bei dem Group Pulldown auf „Content“ stellen. Dies Zeigt uns alle Felder an die mit CCK erstellt wurden.

3. Etwas runterscrollen und die „live preview“ ansehen. (Pulldown auf unseren Block stellen) Man sieht nun das alle Inhalte angezeigt werden. Wir müssen also noch einen Filter hinzufü-gen

4. Bei Filter auf das Plus klicken. Nach „Node: Type“ suchen und folgendes Einstellen:

12

5. Als letztes bei „sort criteria“ nach dem gleichen System die Gewünschte sortierung einstel-len (Display Content - Datum - aufsteigend oder absteigend)

6. Der wichtigste Punkt speichern! Vergisst man leicht wenn viel eingestellt wurde.7. Nach „admin/build/block“ navigieren dort finden wir nun unsern Block. Dieser wird nun

noch an die gewünscht Stelle geschoben - speichern - dann auf „configure“ klicken und ganz untern folgendes einstellen:

13

Front-End / Redaktionsarbeit

Über „Inhalt erstellen (create Content)“ erreicht man den Bereich mit den Inhaltstypen. Erstellt man mit CCK weitere Inhaltstypen dann sind diese auch hier auszufinden. Auch hier sind fast keine Grenzen vorhanden - man kann beliebige Inhaltstypen mit beliebiger Komplexität erstel-len.

14

Standardfuntkionen:

Title:NotwendigPlichtfeldumeinenBeitragspeichernzukönnen.AusdemTitelwirdauchderlesbareURLgeneriert.

Menü settings: hierstelltmandenMenülink-TiteleinundzuwelchemNavigationstypderLinkgehörensoll.(Primary/Secondary/Navigation)-NavigationistdieAdminNavigation.

Input Format:welcheHTMLBefehleerlaubtsind.Eskönnenbe-liebigeInputFormateerstelltwerdenunddiesedannauchbestiummtenBenutzernzugeortnetwerden.StandartistFullHTMLundfilteredHTML.

Revison information:selbstnochniebenutzt

Comment settings:Kommentareerlaubtodernichtreadonlyoderread/write

Authoring Information:werhatsgeschrieben...

Publish options:PublishedPromotedtofrontpageStickyattopoflists

Interessant wäre noch: admin/build/menu

hier kann man die reihenfolge der Menüpunkte einstellen und Seiten deaktivieren.

Ein workflow wäre z.B.Seite A erstellen mit dem Menüpunkt „Seite1“Seite B erstellen mit dem Menüpunkt „Seite2“

Dann erscheinen die Links genau in dieser Reihenfolge. Man möchte nun, das Seite2 der erste Menüpunkt ist. Dies kann man bei „admin/build/menu“ einstellen. Oder Seite2 soll ein Subme-nü von Seite1 sein ...

15

Templates:Die Templates werden erstellt in sites/all/templates/templatename

Der Ordner enthält:template.php - enthält die Funktionenpage.tpl.php - Basis für alle Seiten, HTML und PHPtemplatename.info - enthält Name des Templates und Pfade zu CSS und JSimages/screenshot.png - der Screenshot der im Drupal Frontend unter Templates ausge-wählt wirdfoo.css - eigene bzw. Framework CSS Dateien

Templates zu erstellen ist ein eigenes Buch. Es gibt verschiedene Ansätze ein Template zu er-stellen.

• man sucht sich eins das einigermassen passt und moduifiziert das http://drupal.org/project/Themes

• man benutzt ein Framework • oder selber eins schreiben

Frameworks gibt es folgende:• YAML - http://www.yaml-fuer-drupal.de• ZEN - http://drupal.org/project/zen• 960Grid - http://drupal.org/project/ninesixty• mothership - http://drupal.org/project/mothership

Ich selber benutze am liebsten das 960grid. Direkt ein Template von Null zu erstellen habe ich noch nicht gemacht.

Rechte / BenutzerverwaltungDie Benutzerverwaltung besteht aus folgenden Bereichen:

Access rulesHier kann man eine Liste erstellen um User/Host auszuschliessen

PermissionsHier stellt man ein welcher Benutzer welche Rechte bekommt. Dieser Breich ist recht komplex da man sehrdetailiert einstellen kann.

RolesIch verstehe die Rollen ein wenig wie Benutzergruppen. Standard sind „anonymos user“ und „authenticated user“ Also angemeldet und nicht angemeldet. Man kann Rollen hinzufügen z.B.:

• Redakteur - dieser könnte dann Artikel schreiben aber nicht online stellen • Lektor kann Artikel korrigieren aber nicht schreiben (erstellen)• Publisher - dieser bestimmt dann ob ein Artikel online geht oder nicht

User settings (Diese teilen sich auf in):

User registration settingsWie kann man sich anmelden - direkt oder freischaltung durch admin notwendig

User e-mail settings

16

Hier die Text für die generierten eMails.

Signaturesja / nein

Picturesja /nein

Der Administrator BereichNach erfolgreicher Installation rufen wir den Administrator Bereich auf:deinVerzeichniss/admin

Ein Workflow für die Erstellung eines Benutzers:

Zuerst unter „admin/user/roles“ eine neue Rolle anlegen. Nehmen wir hier als Beispiel „Redak-teur“

Nun Navigiert man zu „admin/user/permissions“ - hier ist nun neben den Standard Rollen auch unser Redakteur zu sehen. Durch einfaches Anklicken der Checkboxen verteil man nun die Rechte.

17

Resourcen:

http://mustardseedmedia.com/podcast

http://delicious.com/waldbeek

http://waldbeek.com/content/drupal-6-updaten-sicherheitsupdate-durchführen-automatisches-backup