Erfahrungsbericht

Projektstart (9. März 2008)

Gruppenbildung und Spezifikation

Nachdem wir beschlossen hatten, die Arbeit als Gruppe (A. Fischer und G.Dymorz) durchzuführen, begannen wir zu bestimmen, was unser Extranet alles können soll. Dazu starteten wir eine Spezifikation, was wir uns als Extranet vorstellen. Da wir die zur Verfügung stehenden Tools nicht kannten, wurde die Spezifikation ohne Rücksichtnahme auf das Tool geschrieben. Wir wussten somit nicht, ob unser gewähltes CMS alles umsetzen kann, was wir spezifiziert haben. Eventuell müssen für eine Vervollständigung des Extranets einige Teile ausprogrammiert werden.

CMS Ermittlung an Hand der groben Definition unseres Extranets

Die drei zur Auswahl stehenden CMS Drupal, Nuxeo ECM und TWiki kannten wir allesamt nicht, daher mussten wir zuerst eines für diese Arbeit auswählen. Nachdem wir uns informiert hatten, entschieden wir uns für Drupal.

Folgende Gründe sprachen für Drupal:

  • Wir denken, dass Drupal unsere Anforderungen am besten abdecken kann.
  • Da Drupal auf PHP Basis läuft, haben wir eine Möglichkeit dieses Projekt einfach zu hosten.
  • Davon haben wir schon gehört und es interessiert uns.

Start des Prototypen

Für den Prototypen werden wir uns auf die bestehenden Möglichkeiten von Drupal beschränken (ohne zusätzliche Programmierung), um den Aufwand für dieses Projekt nicht unrealistisch gross werden zu lassen. Wir haben uns entschieden selbst einmal ein Drupal aufzusetzen und zu pflegen um auch diesen Schritt kennen zu lernen.

Installation

Download
Download der Version 6.1 von drupal.org

Upload auf den Server
Entpacken und Heraufladen der Dateien auf den Server

Erstellen der Datenbank
DB erstellt und Benutzer mit allen Rechten auf dieser DB angelegt

Einrichten cron-Job
Shell-Script mit folgendem Inhalt angelegt:
curl --silent --compressed test.hardwired.ch/drupal/cron.php

Aufruf jeden Tag um 1:37 per cron

Ausführen des Installation-Scripts
DB Config durchgeführt

Site Config
Site name: test.hardwired.ch Site e-mail address: drupal@adrian-fischer.ch

Clean URLs: Enabled
Update notifications: Yes

Manuelle Korrektur
drupal/sites/default/settings.php: $base_url = 'http://test.hardwired.ch/drupal'; // NO trailing slash!

Benutzer einrichten
  • Rolle (role) "site admin" angelegt
  • Alle Berechtigungen (permissions) für diese Rolle gesetzt
  • Zwei Benutzer erfasst
  • Diesen Benutzern die Rolle "site admin" zugewiesen

Drupal Update (20. April 2008)

Update auf Drupal Version 6.2

Spezifikationserweiterung (05. Mai 2008)

Vor dem Unterricht haben wir die Spezifikation vervollständigt und unter DevTeam09 hoch geladen. Während dem Unterricht haben wir einige Informationen zur Benutzerverwaltung erhalten. Weiter haben wir uns versucht schlau zu machen, wie wir unsere Benutzerverwaltung mit Drupal umsetzen können. Eine wirkliche Lösung haben wir noch nicht gefunden.

Prototypstart (18. Mai 2008)

Die Drupal-Installation unter test.hardwired.ch basiert auf Drupal Version 6.2. Viele Module sind für diese Version (noch) nicht verfügbar. Wir haben uns deshalb entschieden, auf dem Schulserver zu arbeiten. Dazu verwenden wir zwei verschiedene Systeme:
  1. afische2 als Test
  2. gdymorz als Prototypen, den wir zeigen wollen

Für diese Aufteilung haben wir uns entschieden, um Veränderungen zuerst am Testsystem zu probieren, ohne die Stabilität des Prototypen zu gefährden.

Um mit unseren Tests zu beginnen, ermittelten wir zuerst einige Erweiterungen, welche Teile von unseren Wünschen abdecken. Um dies praktisch auszuprobieren haben wir folgende Module auf dem Testsystem installiert.

Access Control / Zugriffe auf Testsystem

Zuerst müssen wir ein Modul finden, welches es ermöglicht die Benutzerverwaltung so umzusetzen wie wir uns dies vorstellen. Nach einiger Zeit im Internet entschliessen wir uns Taxonomy-Modul zu verwenden.

Installation und Aktivierung
  1. Download der Version 5.x-1.1 von drupal.org/project/tac_lite
  2. Upload
  3. Aktivierung über Administer > Site building > Modules

Konfiguration
Das Taxonomy-Modul basiert auf der Erfassung einer Kategorie: Administer > Content Management > Categories

  • Name: Kunde
  • Types: Page
  • Hierarchy: Multiple
  • Related terms: no
  • Free taging: no
  • Multiple select: yes
  • Required: yes

Mit dieser Categorie stellen wir sicher, dass die Kunden nur auf ihre eigenen Projekte zugreifen können. Dazu müssen wir Begriffe (Term), in unserem Fall die Kunden, erfassen: Administer > Content Management > Categories > Link: Add Terms

  • intern
  • Muster GmbH

Erfassung der Rollen
Zu Testzwecken legten wir Rollen an: Administer > User management > Roles
  • Kunde Muster GmbH
  • Projekleiter
  • Projektmitarbeiter
  • Virtuelles Unternehmen

Der Administrator wird nicht als Rolle erfasst, sondern ist der siteadmin.

Jeder Benutzer kann verschiedenen Rollen zugeteilt bekommen. Diese Rollen kombiniert ergeben die richtigen Ansichten auf die Projekte. Die Erfassung dieser Rollen und der folgenden Benutzer ist provisorisch. Sobald wir mehr über das Modul wissen und es weiter ausprobiert haben, werden sich diese noch ändern, bis es stimmt.

Erfassung der Taxonomiebasierten Berechtigungen
Damit der Zugriff auf die Einträge an Hand der Taxonomiebegriffe eingeschränkt werden kann, müssen den Rollen diese Taxonomiebegriffe zugeordnet werden (Role based priviliges): Administer > User management > Access control > Access control by taxonomy Dazu muss zuerst festgelegt werden, welche Categorie für diese Einschränkung verwendet wird.

Erfassung der Benutzer
Damit wir unsere Einstellungen testen können, legen wir Benutzer an: Administer > User management > Users
  • Gisela Dymorz (Rollen: Mitarbeiter Virtuelles Unternehmen, Projektleiter Virtuelles Unternehmen)
  • Adrian Fischer (Rollen: Mitarbeiter Virtuelles Unternehmen, Projektleiter Virtuelles Unternehmen)

Erstellung einer Seite (Page)
Erstellung der Seite mit Menüeintrag und anschliessend testen ob das mit dem Zugriff wirklich funktioniert.

FCK Editor

Installation und Aktivierung
  1. Download der Version 5.x-2.1 von drupal.org/project/fckeditor
  2. Upload
  3. Aktivierung über Administer > Site building > Modules
  4. Download der FCK Komponenten www.fckeditor.net/download

CCK (Content Construction Kit)

Installation und Aktivierung
  1. Download der Version 5.x-1.7 von drupal.org/project/cck
  2. Upload
  3. Aktivierung aller Module über Administer > Site building > Modules

Views

Installation und Aktivierung
  1. Download der Version 5.x-1.6 von drupal.org/project/views
  2. Upload
  3. Aktivierung über Administer > Site building > Modules

Während dem Unterricht (19. Mai 2008)

News

Auf unserem Testsystem versuchten wir eine Ansicht der News zu bekommen, welche nur einen Teil der Informationen anzeigt und den Rest nicht. Dazu haben wir relativ lange das Internet durchsucht und wurden auf http://dornbush.net fündig. Schlussendlich gelang es uns eine eingeschränkte Ansicht zu erhalten und wir verstanden wie das mit den Blocks und Pages und sämtlichen weiteren Views Einstellungen funktionierte.

Dazu mussten wir einen Content Type, eine View und Content erstellen.

Content Type
Administer > Content management > Content Types Felder erstellen mit den entsprechenden Anzeigearten:
  • Titel --> nichts machen, ist schon ok
  • ShortText --> Teaser und Full (Label hidden)
  • Message --> nur Full (Label hidden)

Views
Administer > Site buildings > Views Neue View erstellen:
  • Unter Page
    • Provide Page View
    • View Type: Teaser
    • Title: News
    • Use Pager
    • Nodes per Page: 10
    • Menu: Provide Menu
  • Filters
    • Node Type: is one of News
  • Sort Criteria
    • Comment Create Time

Spezifikationsanpassungen

Wir haben versucht unsere Wunschstruktur mit Entitäten (Nodes) und dann Sichten (Views) abzubilden.
Beim Erstellten der Views zeigten sich aber mehr und mehr Einschränkungen. So lassen sich zum Beispiel in der Detailansicht einer View keine Nodes, welche Verknüpfungen zu diesem gezeigten Node haben, als Liste ausgeben. Auf Grund der gewonnenen Erkenntnisse haben wir unsere Spezifikation komplett anpassen müssen. Unsere Vision ist unter DevTeam09Vision zu finden. Die neue Spezifikation unter DevTeam09.

Letzte Tests auf Testsystem (25. Mai 2008)

Wir installierten noch ein letztes Modul und probierten aus, wie sich durch dieses Modul Einschränkungen in den Views realisieren lassen.

Installation Date-Modul

  1. Download der Version 5.x-1.8 von drupal.org/project/date
  2. Upload
  3. Aktivierung über Administer > Site building > Modules

Erstellung des eigentlichen Prototypes (25. Mai 2008)

Module installieren

Da wir sämtliche Module bis jetzt nur auf dem Testsystem verwendet haben, müssen wir die Installation von den Tool, welche wir brauchen auch auf dem eigentlichen Prototyp-System ebenfalls noch machen. Folgende Module wurden installiert:
  • Date-Module
  • Views
  • Taxonomy
  • FCK-Editor
  • CCK

Anschliessend schalten wir die Teile der Module auf enabled, welche wir verwenden werden. Schlussendlich sind folgende Module aktiviert:
CCK:

  • Content
  • Date
  • Fieldgroup
  • Node Reference
  • Text
  • User Reference

Core (optional):

  • Color
  • Comment
  • Help
  • Menu
  • Taxonomy
  • Upload

Core (required):

  • Block
  • Filter
  • Node
  • System
  • User
  • Watchdog

Other:

  • Date API
  • Taxonomy Access Control Lite
  • Update Status

Views:

  • Views
  • Views UI

Drush:

  • Drush
  • drush Package Manager
  • drush Package Manager wget Support

Kategorien erstellen

Kategorien erstellen unter: Administer > Content Management > Categories

Für die Zugriffskontrolle:

  • Name: Customers
  • Description: Defines page access
  • Types: News, Project, Task --> wurde nach der Content-Types Erfassung nachgeholt
  • Hierarchy: Disabled
  • Related terms: no
  • Free taging: no
  • Multiple select: yes
  • Required: yes
  • Weight: -1
  • Terms:
    • Avireal
    • Intern
    • Migros
    • Siemens VDO

Für den Task-Status:

  • Name: TaskState
  • Description: Actual state
  • Types: Task --> wurde nach der Content-Types Erfassung nachgeholt
  • Hierarchy: Disabled
  • Related terms: no
  • Free taging: no
  • Multiple select: no
  • Required: yes
  • Weight: 0
  • Terms:
    • Finished
    • New
    • Suspended
    • Working

Erstellung aller Content Types

Content-Types erstellen unter: Administer > Content management > Content Types

Als Beispiel wurde hier die Einstellungen dieses Types noch detailiert aufgelistet: DevTeam09ContentTypes. Ist ein Property nicht erwähnt ist es leer oder falls etwas drin stehen muss (z.B. bei Auswahlboxen) der Standardwert.

Project
Der Typ besteht aus folgenden Feldern:
  • From-To Date
  • Title
  • Short Description
  • Taxonomy
  • Description

News
Der Typ besteht aus folgenden Feldern:
  • From-To Date
  • Title
  • Taxonomy
  • Short Text
  • Long Text

Task
Der Typ besteht aus folgenden Feldern:
  • Title
  • Taxonomy
  • Body
  • Due on
  • Zuständige Person
  • Project

Erstellung aller Views

Was nicht erwähnt ist, wurde nicht angepasst.

Einstellungen unter: Administer > Site buildings > Views

View HomeOverview
  • Name: HomeOverview
  • Description: Home Site for Drupal
  • Page
    • Provide Page View: yes
    • URL: home
    • View Type: Teaser List
    • Title: Projects
    • Use Pager: yes
    • Breadcrumb trail should not include "Home": no
    • Nodes per Page: 10
    • Empty Text: No projects published.
    • Menu
      • Provide Menu: yes
      • Menu Title: Home
  • Filters
    • Node: Type - is one of - Project
    • Date: From-To Date - Date (field_fromtodate) - less than - now
    • Date: From-To Date - To Date (field_fromtodate) - greater than - now
  • Sort Criteria
    • Date: From-To Date (field_fromtodate) - Descending
    • Node: Title - Ascending

Damit diese Seite wie geplant als Start-Seite verwendet wird, wurde unter Administer > Site configuration > Site Information die Default front page auf home gesetzt. An derselben Stelle haben wir auch den Namen unseres Extranets angepasst.

Views NewsOverview und NewsArchiveOverview
NewsOverview
  • Name: NewsOverview
  • Description: News-overview for news in the timerange from-to
  • Page
    • Provide Page View: yes
    • URL: news
    • View Type: Teaser List
    • Title: News
    • Use Pager: yes
    • Nodes per Page: 10
    • Empty Text: No news published.
    • Menu
      • Provide Menu: yes
      • Menu Title: News
  • Block
    • Provide Block: yes
    • View Type: Teaser List
    • Title: News
    • Nodes per Page: 3
    • More Link: yes
    • Empty Text: No news published.
  • Filters
    • Node: Type - is one of - News
    • Date: From-To Date - Date (field_fromtodate) - less than - now
    • Date: From-To Date - To Date (field_fromtodate) - greater than - now
  • Sort Criteria
    • Date: From-To Date (field_fromtodate) - Descending
    • Node: Title - Ascending

Die NewsArchivOverview unterscheidet sich nur in folgenden Bereichen:

  • Texte wurden mit archive erweitert, bzw. auf etwas angepasst
  • Block wurde entfernt
  • Filters
    • Node: Type - is one of - News
    • Date: From-To Date - To Date (field_fromtodate) - less than - now

Views ProjectsOverview und ProjectsArchiveOverview
ProjectOverview
  • Name: ProjectOverview
  • Description: Project-overview for projects in the timerange from-to
  • Page
    • Provide Page View: yes
    • URL: projects
    • View Type: Teaser List
    • Title: Projects
    • Use Pager: yes
    • Nodes per Page: 10
    • Empty Text: No projects published.
    • Menu
      • Provide Menu: yes
      • Menu Title: Projects
  • Filters
    • Node: Type - is one of - Project
    • Date: From-To Date - Date (field_fromtodate) - less than - now
    • Date: From-To Date - To Date (field_fromtodate) - greater than - now
  • Sort Criteria
    • Date: From-To Date (field_fromtodate) - Descending
    • Node: Title - Ascending

Die ProjectArchivOverview unterscheidet sich nur in folgenden Bereichen:

  • Texte wurden mit archive erweitert
  • Filters
    • Node: Type - is one of - Project
    • Date: From-To Date - To Date (field_fromtodate) - less than - now

Views TaskOverview und TaskArchiveOverview
TaskOverview
  • Name: TaskOverview
  • Description: Tasks-overview for tasks with state New or Working
  • Page
    • Provide Page View: yes
    • URL: task
    • View Type: Table View
    • Title: Tasks
    • Use Pager: yes
    • Nodes per Page: 30
    • Empty Text: No tasks published.
    • Menu
      • Provide Menu: yes
      • Menu Title: News
  • Block
    • Provide Block: yes
    • View Type: Table View
    • Title: Tasks
    • Nodes per Page: 15
    • More Link: yes
    • Empty Text: No tasks published.
  • Fields
    • Node: Title - Title - Normal - As Link - sortable yes - None
    • User Reference: Zuständige Person (field_responsible) - Responsible - Group multiple values - Default
    • Node Reference: Project (field_project) - Project- Group multiple values - Title (link)
    • Taxonomy: Terms for TaskState - State - Without links
    • Date: Due on (field_due_on) - Due on - Do not group multiple values - Short - sortable yes - Ascending
  • Filters
    • Node: Type - is one of - Task
    • Taxonomy: Terms for TaskState - is one of - New / Working
  • Exposes Filters
    • Node Reference: Project (field_project) - Project - optional - Force single - Lock operator
    • User Reference: Zuständige Person (field_responsible) - Responsible - optional - Force single - Lock operator

Die TaskArchivOverview unterscheidet sich nur in folgenden Bereichen:

  • Texte wurden mit archive erweitert, bzw. auf etwas angepasst
  • Block wurde entfernt
  • Filters
    • Node: Type - is one of - Task
    • Taxonomy: Terms for TaskState - is one of - Finished / Suspended

Menü und Blocks

Menü
Damit das Menü noch eine Struktur erhält, haben wir unter Administer > Site building > Menü die Archive unter die Liste der aktuellen Einträge. Dazu wurde das Parent-Item der Archiv-Menü-Punkte verändert.

Blocks
Damit die Blocks am richtigen Ort erscheinen mussten nun noch einige Einstellungen unter Administer > Site building > Blocks.

TaskOverview:

  • Region: content
  • Custom visibility settings: Users cannot control whether or not they see this block.
  • Show block on specific pages: Show on only the listed pages - home

Navigation und User Login:

  • Region: left sidebar

NewsOverview:

  • Region: right sidebar
  • Custom visibility settings: Users cannot control whether or not they see this block.
  • Show block on specific pages: Show on every page except the listed pages.

Zugriffskontrolle

Roles
Werden gemäss Spezifikation (DevTeam09) erstellt und die Permissions vergeben.

  • siteadmin (gibt es schon, muss nicht mehr festgelegt werden)
  • authenticated user
  • project member
  • project manager
  • news administrator
  • all companies
  • pro Firma eine Rolle
    • Fiktives Unternehmen
    • Avireal employee
    • Migros employee
    • Siemens VDO employee

Taxonomy Access
Zuweisung der Rollen zu den Taxonomiebegriffen vornehmen über Administer > User management > Access control > Access und Role based priviliges.

Content

Zuletzt füllen wir noch einigen Content ab und testen ob das mit den Zugriffsrechten stimmt.
Nach einigen letzten Korrekturen schliessen wir den Prototypen ab.

Projektende (31. Mai 2008 und 1. Juni 2008)

Wir verfolständigen die Dokumentation auf diesen Seiten und erstellen unsere Präsentation. Nach nochmaligem Test des Prototypes und Festlegung was wir zeigen wollen beenden wir das Projekt Drupal.

Unser kurzes Fazit ist auf der Seite DevTeam09 ganz unten angemerkt.

This topic: Webeng > WebHome > WebengFS08 > GruppenFS08 > DevTeam09 > DevTeam09Erfahrungsbericht
History: r12 - 02 Jun 2008 - 18:36:52 - GiselaDymorz
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback