odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die...

487
Seite 1 Entwickler- Dokumentation

Transcript of odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die...

Page 1: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 1

Entwickler- Dokumentation

Page 2: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 2

Aufbau der Abschlussdokumentation

Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile.

• Projektdokumentation

Der Ablauf des Projekts wird in diesem Dokument beschrieben. Neben einem ausführlichen SOLL/IST Vergleich werden auch alle organisatorischen Instrumente beschrieben. Auch die kritische Würdigung aller Beteiligten ist hier zu finden.

• Benutzerdokumentation

Die Benutzerdokumentation enthält alles, was der Benutzer zur Verwendung von ODIE wissen muss. Von der Installation bis hin zur Gestaltung eigener Interfaces.

• Entwicklerdokumentation

In diesem Manual sind alle Informationen zu finden, die gebraucht werden um ODIE weiterentwickeln und warten zu können. Auch eine Funktionsreferenz aller zur Verfügung stehenden Funktionen des ODIE ist hier zu finden.

• Online-Hilfe

Die Benutzer- sowie die Entwicklerdokumentation ist auch als Online-Hilfe direkt aus dem ODIE abrufbar. Alle Dokumentations-Snips sind in einem eigenen Projekt zusammengefasst, dem ODIE Documentation Project, ODP.

Page 3: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 3

Hinweise zu diesem Dokument

Um die Lesbarkeit des Textes zu erhöhen, wurde auf die explizite Nennung der weiblichen grammatikalischen Form verzichtet. Das Copyright und die Nutzungsrechte liegen bei den Erstellern, den Mitgliedern des Projektteams ODIE.

Wortbeschreibungen

Folgende Konventionen gelten in diesem Dokument.

- werden, sind, und ist implizieren Tatsachen - sollen und müssen zeigen eine Verpflichtung - sollte beschreibt einen Wunsch - könnte stellt eine Option dar

Kürzelbeschreibung

Die Texte in diesem Dokument wurden gemeinschaftlich vom Projektteam ODIE verfasst. Die Verantwortlichkeiten zu den einzelnen Abschnitten sind den entsprechenden Namenskürzeln bei den Überschriften zu entnehmen.

Kol Matthias Kolm (ODIE) Mac Lukas Maczejka (ODIE) Pav Viktor Pavlu (ODIE) Sey Raphael Seywerth (ODIE) Gez Gerhard Zlabinger (ODIE)

Voi Georg Voigt (IMS) Md Martin Domig (IMS)

Page 4: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 4

Inhaltsverzeichnis

1 DANKSAGUNG DER AUTOREN ....................................................................................................................7

1.1 KOLM MATTHIAS............................................................................................................................................7 1.2 MACZEJKA LUKAS ..........................................................................................................................................7 1.3 PAVLU VIKTOR ...............................................................................................................................................7 1.4 SEYWERTH RAPHAEL......................................................................................................................................7 1.5 ZLABINGER GERHARD ....................................................................................................................................7

2 VORSTELLUNG DES PRODUKTS.................................................................................................................8

2.1 EINLEITUNG (PAV) ..........................................................................................................................................8 2.2 KURZFASSUNG (KOL)......................................................................................................................................9 2.3 HINTERGRUND (KOL, PAV)............................................................................................................................10 2.4 PRODUCT BRIEF (MAC)..................................................................................................................................11

3 DAS SYSTEM (PAV) ........................................................................................................................................12

3.1 GRUNDLAGEN (GEZ) .....................................................................................................................................12 3.2 ARCHITEKTUR (GEZ) .....................................................................................................................................12

3.2.1 Schicht 1: Systemfunktionalität ............................................................................................................12 3.2.2 Schicht 2: Applikationen ......................................................................................................................12 3.2.3 Schicht 3: Renderer ..............................................................................................................................12 3.2.4 Schicht 4: Interface/Ausgabe................................................................................................................13

3.3 DATENFLUSSDIAGRAMM (GEZ) .....................................................................................................................13 3.4 ENTITY RELATIONSHIP DIAGRAMM (GEZ) ....................................................................................................14 3.5 ODIE.PHP (PAV, GEZ) .....................................................................................................................................15 3.6 BESCHREIBUNG DER DATENSTRUKTUREN (PAV) ..........................................................................................18

3.6.1 $SESSION.............................................................................................................................................18 3.6.2 $ODIE_ENV.........................................................................................................................................20 3.6.3 Snip.......................................................................................................................................................22 3.6.4 User_Data ............................................................................................................................................23

3.7 INTERFACING (PAV) ......................................................................................................................................24 3.7.1 Was ist ein ODIE Interface? ................................................................................................................24 3.7.2 Elemente eines Interfaces.....................................................................................................................24 3.7.3 Weitere Einflüsse auf das Aussehen .....................................................................................................26 3.7.4 Leitfaden zur Erstellung eines Interfaces .............................................................................................27

4 MODULDOKUMENTATION .........................................................................................................................29

4.1 LINKER (GEZ)................................................................................................................................................29 4.1.1 Symbole ................................................................................................................................................29 4.1.2 Escaping von Symbolen........................................................................................................................32 4.1.3 Verwendung..........................................................................................................................................32

4.2 RENDERER (MAC)..........................................................................................................................................32 4.3 STRUCTURED TEXT (PAV) .............................................................................................................................34 4.4 XML-PARSER (MAC) ....................................................................................................................................35

5 APPLIKATIONSDOKUMENTATION ..........................................................................................................37

5.1 APPLICATION NOT FOUND.............................................................................................................................37 5.2 APPLICATIONS ..............................................................................................................................................38 5.3 BACKLINKS...................................................................................................................................................39 5.4 CAL-ALL........................................................................................................................................................40 5.5 CAL-EVENT....................................................................................................................................................42 5.6 CAL-MONTH ..................................................................................................................................................44 5.7 CALENDAR ....................................................................................................................................................46 5.8 COMMENTS ...................................................................................................................................................48 5.9 COMMENTS INFO...........................................................................................................................................49 5.10 CREATE-SNIP...............................................................................................................................................50 5.11 CREATE-USER .............................................................................................................................................51 5.12 DAY-SUMMARY ..........................................................................................................................................52 5.13 DELETED.....................................................................................................................................................54 5.14 DICTGEN .....................................................................................................................................................55

Page 5: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 5

5.15 EDIT ............................................................................................................................................................56 5.16 EDIT-PROJECT .............................................................................................................................................57 5.17 EMAIL .........................................................................................................................................................58 5.18 ERROR.........................................................................................................................................................59 5.19 EXTERN.......................................................................................................................................................60 5.20 EXTERN-INDEX ...........................................................................................................................................62 5.21 HELP............................................................................................................................................................64 5.22 IMPORTER ...................................................................................................................................................66 5.23 INDEX..........................................................................................................................................................68 5.24 KEEPALIVE..................................................................................................................................................70 5.25 KILL-PROJECT .............................................................................................................................................71 5.26 LINK............................................................................................................................................................72 5.27 LINKALL .....................................................................................................................................................73 5.28 LOGIN .........................................................................................................................................................74 5.29 LOGOUT ......................................................................................................................................................75 5.30 MEETING.....................................................................................................................................................76 5.31 MEMBERS ...................................................................................................................................................78 5.32 MENU-APP..................................................................................................................................................79 5.33 MENU-EDIT.................................................................................................................................................80 5.34 MENU-OVERVIEW.......................................................................................................................................81 5.35 MENU-PROJECT ..........................................................................................................................................82 5.36 MENU-SEP ..................................................................................................................................................83 5.37 MENU-USER................................................................................................................................................84 5.38 MENUBAR ...................................................................................................................................................85 5.39 MINI CALENDAR .........................................................................................................................................86 5.40 MINI INDEX.................................................................................................................................................87 5.41 MINI PROJECTS ...........................................................................................................................................88 5.42 PLAIN ..........................................................................................................................................................89 5.43 PREFERENCES .............................................................................................................................................90 5.44 PROJECT-NOT-FOUND..................................................................................................................................91 5.45 QUICK-SEARCH ...........................................................................................................................................92 5.46 RAW INDEX.................................................................................................................................................93 5.47 RAW READ..................................................................................................................................................94 5.48 RIGHTS ........................................................................................................................................................95 5.49 SEARCH.......................................................................................................................................................96 5.50 SEARCH-RESULTS .......................................................................................................................................97 5.51 SENDPASS....................................................................................................................................................99 5.52 SNIP-INFO ..................................................................................................................................................100 5.53 SNIP-LIST ..................................................................................................................................................101 5.54 SNIP-NOT-FOUND.......................................................................................................................................103 5.55 SNIP-LIST ..................................................................................................................................................104 5.56 START .......................................................................................................................................................105 5.57 STX ..........................................................................................................................................................106 5.58 TODAY ......................................................................................................................................................107 5.59 TODAY-LIST .............................................................................................................................................108 5.60 TODO ........................................................................................................................................................109 5.61 TREE .........................................................................................................................................................111 5.62 UNKNOWN.................................................................................................................................................112 5.63 USERS........................................................................................................................................................113

6 FUNKTIONSÜBERBLICK (KOL) ...............................................................................................................114

6.1 AUFGABENVERWALTUNG ...........................................................................................................................114 6.2 AUSGABE ....................................................................................................................................................114 6.3 BESPRECHUNGSPROTOKOLL .......................................................................................................................114 6.4 DATUMS- & KALENDERFUNKTIONEN.........................................................................................................115 6.5 HIERARCHIEDARSTELLER ...........................................................................................................................115 6.6 INTERFACING ..............................................................................................................................................115 6.7 INTERNATIONALISIERUNG...........................................................................................................................116 6.8 KOMMENTARVERWALTUNG........................................................................................................................116 6.9 LINKER........................................................................................................................................................117 6.10 PROJEKTVERWALTUNG .............................................................................................................................117 6.11 RECHTEVERWALTUNG ..............................................................................................................................118

Page 6: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 6

6.12 RENDERER ................................................................................................................................................118 6.13 SIMPLE DB................................................................................................................................................119 6.14 SESSIONMANAGEMENT .............................................................................................................................120 6.15 SNIPLISTEN ...............................................................................................................................................120 6.16 SNIPVERWALTUNG....................................................................................................................................121 6.17 STRUCTURED TEXT...................................................................................................................................121 6.18 USERMANAGEMENT..................................................................................................................................122 6.19 UTILS ........................................................................................................................................................122 6.20 VERWALTUNG EXTERNER DATEIEN..........................................................................................................123 6.21 XML – PARSER ........................................................................................................................................123 6.22 SONSTIGES ................................................................................................................................................123

7 FUNKTIONSREFERENZ ..............................................................................................................................124

8 ANHANG..........................................................................................................................................................483

8.1 ODIE WIKI-LINKER SYNTAX (GEZ)............................................................................................................483 8.2 STRUCTURED TEXT CRASH-KURS (GEZ).....................................................................................................484

8.2.1 Textgliederung....................................................................................................................................484 8.2.2 Listen ..................................................................................................................................................484 8.2.3 Textformatierung ................................................................................................................................484 8.2.4 Preformatted Text...............................................................................................................................484 8.2.5 URL-Erkennung..................................................................................................................................484 8.2.6 Trennlinie ...........................................................................................................................................484

9 GLOSSAR ........................................................................................................................................................485

Page 7: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 7

1 Danksagung der Autoren

1.1 Kolm Matthias

Mein Dank richtet sich zunächst an alle Projektmitglieder, die die Durchführung dieses umfangreichen Projekts erst möglich gemacht haben, sowie an all jene Mitmenschen die uns unterstützten. Speziell möchte ich mich jedoch für ihre mentale Unterstützung bei Miriam Pirker, Stephan Schratzberger, Michaela Liepold, Stefanie Mittermayer und Arrvid Staub bedanken.

1.2 Maczejka Lukas

Zuerst will ich allen Projektmitgliedern danken, sowie allen die an diesem Projekt in irgendeiner Weise mitgewirkt haben. Darunter fallen unter anderen unser Betreuungslehrer Dr. Michael Fiegl, sowie unsere Partnerfirma IMS, natürlich aber auch alle, die nicht direkt daran beteiligt waren und Kritik und Unterstützung geliefert haben. Und dann noch Danke an alle, die mich kennen, damit ich hier niemanden vergesse.

1.3 Pavlu Viktor

Ich möchte mich bei allen bedanken, die dieses Projekt ermöglicht haben. Bei unseren Partnern bei IMS dafür, dass sie uns in unserer Kreativität nicht eingeschränkt haben. Bei unserem Betreuer Dr. Michael Fiegl, der vor allem am Anfang mit Trost und Rat zur Seite gestanden ist. Bei meinem Projektteam, das die anstrengende Arbeit immer wieder interessant gemacht hat. Ein herzliches Danke schön auch allen Anderen, too many to name, ohne deren Unterstützung ODIE nicht zu dem geworden wäre, was es heute ist.

1.4 Seywerth Raphael

Als erstes bedanke ich mich beim gesamten Projektteam für die Zusammenarbeit, die im Grossen und Ganzen funktioniert hat, und für all die Jahre die wir uns nun schon kennen. Weiters möchte ich den Personen danken, die an der Fertigstellung unseres Projekts noch beteiligt waren, unserer Partnerfirma IMS, meinen Freunden und meinen Eltern. Und zum Abschluss möchte ich noch all denen danken, die sich die Zeit genommen haben, dies durchzulesen.

1.5 Zlabinger Gerhard

Ich möchte mich bei allen bedanken, die an diesem Projekt in irgendeiner Weise beteiligt waren oder uns unterstützten. Neben der Firma IMS und unserem Betreuungslehrer Dr. Michael Fiegl sind dies Arvid Staub und Stephan Schratzberger. Weiters möchte ich mich bei allen bedanken, die in irgendeiner Beziehung zu mir stehen. Wer diese Menschen sind wissen sie eigentlich selbst am besten.

Page 8: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 8

2 Vorstellung des Produkts

2.1 Einleitung (pav)

Das von uns im Rahmen der Diplomarbeit, in Zusammenarbeit mit InfoMedia Systems erstellte Produkt soll dem Benutzer ermöglichen auf einfache und schnelle Weise Inhalte im Internet zu erstellen, zu verwalten, zu aktualisieren und miteinander zu kombinieren. Die Lösung ist mit wenig Aufwand an individuelle Bedürfnisse eines Kunden anpassbar und erweiterbar. Die Daten sind von überall aus verfügbar, unabhängig vom Standort, der verwendeten Internetanbindung und der eingesetzten Hardwareplattform. Weiters ist das System nicht auf ein spezielles Betriebssystem angewiesen, da außer einem Internet-Browser keine client-seitige Software benötigt wird.

Immer mehr Unternehmen erkennen im Internet ein Kommunikationsmedium, das nicht allein hochgradig effizient, sondern auch kostengünstig ist. Vorbei die Zeiten, in welchen es ausreichte, eine Firmenbroschüre ins Netz zu stellen und das Thema „Internet" damit für erledigt zu halten. Professionell betrachtet wird das Internet heute u.a. als Service und Kundenbindungsinstrument verstanden, das homogen in das gesamte Marketingkonzept einzubetten ist. Viele Unternehmen nutzen hierfür modernste Software, wie etwa Content Management Systeme, eCRM-Systeme, Dokumentenmanagement-, Portal- oder Community Software.

Lammenett, Erwin: Das adäquate CMS-System – nur die systematische Bedarfsanalyse schützt vor fatalen Fehlern bei der Auswahl. In: Bundesverband Deutscher Unternehmensberater: Fachaufsätze von Unternehmensberatern, (2001) http://www.bdu.de/beraterauswahl/fach/fach/el110.htm

Page 9: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 9

2.2 Kurzfassung (kol)

Das Online Data and Internet Exchange (ODIE) ist ein in PHP realisiertes Content Management System (CMS) zur Unterstützung bei der Organisation und Kontrolle in Projekten. Die Daten werden in einem Flatfile Datenbanksystem abgelegt und über einem zur Laufzeit generierten Index angesprochen. Das Grundsystem - das eigentliche CMS - beschäftigt sich mit dem Verwalten und Aufbereiten von Inhalten. Die Inhalte können ohne weitere client-seitige Applikationen erstellt, betrachtet und manipuliert werden. Als Frontend kann jeder Browser verwendet werden.

Die Aufbereitung der Daten kann auf vielseitige Art und Weise geschehen. Eines der Highlights ist das Strucutered TeXt Format (STX), welches aus intuitiv eingegebenem Text ansprechende Formatierungen erzeugt. Die Inhalte können nach der Aufbereitung durch den STX-Parsers in eine Vielzahl von Ausgabeformaten transformiert werden. Derzeit sind dies Plain-Text, HTML und das Rich Text Format (RTF). Neben der Speicherung und Aufbereitung von STX-Dokumenten bietet ODIE auch die Möglichkeit Termine, Aufgaben, Besprechungsprotokolle und Markupdateien sowie externe Dateien aller Formate zu verwalten. Man kann jede Art von Dokument im ODIE ablegen, mit anderen Dokumenten verknüpfen oder vereinigen. Dies wird durch den Wiki-Linker möglich, der es mit seiner einfachen Syntax jedem Benutzer ermöglicht beliebige Dateien aus einem Dokument zu referenzieren, beziehungsweise auf sie zu verweisen. Fehlendes Wissen kann so auf einfache Weise ergänzt werden - es entsteht nach und nach ein lückenloses Abbild des oftmals verteilten Wissens. Die projektunterstützenden Tools des ODIE sind unter anderem eine Aufgabenverwaltung, eine Eventverwaltung (Kalender) und die Generierung von Besprechungsprotokollen. Die Planung und Dokumentation während der Durchführung eines Projekts wird dadurch unterstützt und das Wissen aller Mitarbeiter kann dabei direkt in das Projekt einfließen.

Page 10: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 10

2.3 Hintergrund (kol, pav)

Ein WikiWikiWeb - oder kurz "Wiki" - ist eine gemeinschaftlich bearbeitete Website, die oft aus hunderten oder tausenden Einzelseiten besteht. Ein Wiki ist ein offenes Autorensystem für Webseiten, eine Kommunikationstechnologie, ein System für Wissensmanagement. Ein Wiki kann zur Abwicklung von Projekten, zur Dokumentation und Unterstützung von Produkten, zur gemeinschaftlichen Produktion von Konzepten oder Büchern etc. verwendet werden. Ein Wiki ist eine Technologie zum Aufbau von Online-Communities.

Unser Produkt, welches wir in Zusammenarbeit mit InfoMedia Systems realisiert haben, ist ein an die Bedürfnisse des Partners angepasstes Wiki. Es gliedert sich grob in zwei Teile:

Das zugrunde liegende Content Management System, dessen Aufgabe es ist, den Benutzer bei der Erstellung, Bearbeitung und vor allem Verwaltung von Inhalten zu unterstützen. Neben einigen essentiellen Features, wie zum Beispiel User- und Gruppenrechte, sowie Sessionverwaltung und einem Mechanismus zur vollständigen Trennung von Daten und Repräsentation, bietet dieses Web-Application Framework einfache Erweiterbarkeit des Systems unter Verwendung der bestehenden, getesteten Module.

Der zweite Teil ist eine Beispiel-Implementierung in Form eines Groupwaretools zur internen Verwendung bei IMS, basierend auf dem erstellten Web-Application Framework. Zu diesem Zwecke wurden im einzelnen Anwendungen wie Terminverwaltung, Aufgabenverteilung, Protokollierung und dergleichen realisiert.

Eine besondere Eigenschaft von Wikis ist, dass die Seiten von allen Benutzern bearbeitet werden können. Dabei hat der Benutzer die Freiheit, den vorhandenen Inhalt zu korrigieren, zu ändern oder sogar zu löschen. Bei der Entwicklung von ODIE wurden von uns zusätzlich zu einem klassischen Wiki noch Möglichkeiten zur Projektverwaltung und ein Zugriffskontrollsystem implementiert. Besonderes Augenmerk wird aber auf die einfache Installation und Handhabbarkeit gelegt. Die Bedienung soll für alle Benutzer gleichermaßen möglich sein.

Page 11: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 11

2.4 Product brief (mac)

Our final year project, which was developed in cooperation with InfoMedia Systems, gives the user the possibility of creating, managing, updating and linking internet content in an easy and fast manner. Without great effort ODIE can be adapted to the customers individual preferences. Enhancing ODIE is because of its strict modular design extremely easy. Data managed with ODIE can be accessed, no matter which internet connection or which platform is used, from everywhere, at any time. Apart from a common internet browser no client software is required.

Nowadays no company can afford not being present in the internet, but creating professional internet appearences is expensive, and not every small company can afford paying highly trained professionals for creating their webpages. Using odie, only the basic appearance requires detailed knowledge. The content is managed by the company itself, even by its employees. It is no problem for untrained staff to manage web content with odie.

Based on the idea of a Wiki, ODIE provides a joint managed Website, often consisting of up to thousands of entries, giving access to a new dimension of communication. The powerful built-in ODIE linker allows single documents to be linked together, providing greater overview and allowing the user to connect as many documents as liked. For expamle, it is easy to attach hundres of project reports to one document with ODIE. Apart from its basic functionality as a Content Management System (CMS), which is to help the user to create, manage, update or link content, as well as basic features like access rights or session management, ODIE provides a fully developed web application framework. Based on this framework groupwaretools, such as a calendar, to-do lists or an application for creating meeting protocols, were developed for IMS, giving ODIE the power of a complete project management tool. Another developed application allows the management of non-web content, such as Microsoft Word documents, giving the user the possibility to save his or her documents on ODIE.

Special attention was given to usablility and simple handling of ODIE. Installation is possible without specialised knowledge. ODIE provides basic interfaces for visualising the content, all of which are designed for best usability, providing the user with detailed help if needed.

Another feature of ODIE, making it even more simple to use, is the structured text system (STX). The user writes his or her texts just as he or she would have done on paper. ODIE automatically recognises text properties, such as headers or lists, and formats the text for the user, who no longer has to care about visualisation of his or her text.

ODIEs basic output is HTML (Hypertext Markup Language), the standard markup langugage of the internet. But ODIE also provides other output formats, such as printable text, plain text or RTF (Rich Text Format).

Microsoft Word is a registered trademark of the Microsoft Corporation.

Page 12: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 12

3 Das System (pav)

3.1 Grundlagen (gez)

Wie im Anforderungskatalog beschrieben basiert ODIE zum Teil auf der Idee eines Wiki Systems. (siehe Projektdokumentation). Wissen soll gesammelt und intelligent aufbewahrt werden, um es für zukünftige Abfragen zur schnell und effizient Verfügung zu stellen. Das Wissen wird in nicht einfach nur in Form von Textdateien im Dateisystem abgelegt sondern die Speicherung der Inhalte erfolgt in so genannten Snips. Diese sind nicht nur auf ihren Inhalt beschränkt, sondern können auch nahezu beliebig untereinander verknüpft werden. Somit ist es möglich eine umfassende Wissensbasis zu erstellen, Wissen das noch nicht vorhanden ist kann einfach hinzugefügt werden.

3.2 Architektur (gez)

Das eigentliche ODIE-System besteht aus einem Vier-Schichten-Modell. Um möglichst einfache Erweiterbarkeit und Flexibilität zu erreichen, sind darin die Bereitstellung der Daten und die graphische Aufbereitung für den Benutzer streng voneinander getrennt.

3.2.1 Schicht 1: Systemfunktionalität

Auf dieser Schicht wird die Funktionalität von ODIE zur Verfügung gestellt, d.h.: hier passiert der logische Ablauf was Datenzugriffe und Datenbereitstellung betrifft. Diese Funktionen befinden sich im Verzeichnis /core.

3.2.2 Schicht 2: Applikationen

Die Aufgabe von Applikationen ist es die Daten, die durch die Schicht 1 ermittelt wurden für den Benutzer aufzubereiten und in HTML auszugeben. Dabei handelt es sich jedoch noch nicht um die endgültige Ausgabe!

Mit ODIE werden standardmäßig mehrere Applikationen (Kalender, To-Do Listen, ...) mitgeliefert. Diese Applikationen ermöglichen das Bearbeiten von Snips und sind das eigentliche Kernstück des Systems.

3.2.3 Schicht 3: Renderer

Auf den tiefer liegenden Schichten wurden bis jetzt Daten ermittelt und ausgegeben. ODIE verwendet den Output-Buffering Mechanismus von PHP um diese Informationen in der gewünschten Form auszugeben. Dazu werden wird das Ergebnis an den Renderer weitergeleitet, der die Daten von HTML in das Zielformat überführt.

Page 13: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 13

3.2.4 Schicht 4: Interface/Ausgabe

Die eigentliche Ausgabe des Inhalts erfolgt auf dieser Schicht durch ein Interface. Dabei handelt es sich um ein beliebiges Template, das lediglich den auf den unteren drei Schichten errechneten Inhalt inkludiert. Das Interface stellt die Schnittstelle zwischen Benutzer und ODIE da.

3.3 Datenflussdiagramm (gez)

Das in der Vorstudie entworfene Datenflussdiagramm wurde nicht verändert.

Eine ausführliche Erläuterung des Datenflussdiagramms kann der Voruntersuchung entnommen werden.

Page 14: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 14

3.4 Entity Relationship Diagramm (gez)

Da bei der Entwicklung von ODIE aus mehreren Gründen auf die Verwendung einer relationalen Datenbank verzichtet wurde, fällt die Erstellung eines Entity-Relationship-Diagrams nicht leicht. Die Entitäten die sich mit den Mitteln des ERDs beschreiben lassen hängen wie folgt zusammen:

Benutzer

PK username

namefirstnameemailreminder_questionreminder_answerpasswordinterfacelanguage

Session

PK id

FK1 usernamelanguageinterfaceproject

snip

PK title

FK1 creatorFK2 editor

creation_timestampedit_timestampkeywordslinksbacklinkscontent-typewrite_listread_listsizedescriptionread_countusername

Diese Daten werden im Verzeichnis /db im jeweiligen Unterverzeichnis abgelegt.

Page 15: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 15

3.5 odie.php (pav, gez)

Die Datei odie.php ist das Grundgerüst des ganzen ODIE Systems. Es verteilt die Anfragen auf die zuständigen Applikationen und bewerkstelligt das Session Management.

Die wichtigsten Programmpunkte sind nachfolgend kommentiert. Die Zahlen zwischen den Klammern geben die angesprochene Code-Zeilen an.

• Laden der Einstellungen (4) • Betriebssystemprüfung (8)

Betriebssystemabhängige Funktionen myfopen(), myfclose(), makeIndexName() werden geladen

• Inkludieren aller benötigten Bibliotheken (21) • ServerVars Test – ist nicht bei allen Webservern verfügbar (37) • Prüfung Eingabedaten (81)

$format enthält das Ausgabeformat, in welches der erzeugte Inhalt vom Renderer überführt werden soll. Kommt dieser Parameter nicht über die URL-Zeile, wird none angenommen. Das Format für den Renderer wird in ODIE_ENV eingetragen. $editing kann ebenfalls über die URL-Zeile gesetzt werden und gibt an, ob der aktuelle Programmdurchlauf von odie.php Daten in Snips überschreiben kann. Diese Variable wird für das Verwalten gleichzeitiger Bearbeitungsversuche benötigt. $app (die auszuführende Applikation) und $snip (das darzustellende Snip) können ebenfalls über die URL-Zeile oder aus Formulen komen

Die Parameter $odie_username und $odie_password werden für den Anmeldevorgang benötigt und kommen von der Login Maske. Vor dem eigentlichen Sessionmanagement wird noch die eineindeutige $session_id berechnet.

• Sessionmanagement (111)

Wenn $odie_username gesetzt ist, wird davon ausgegangen, dass sich der Benutzer anmelden will. Wenn es den Benutzer gibt (141) wird das Passwort geprüft und bei Erfolg eine neue Session erzeugt. (173)

• Zerlegen der URL Zeile (295) • Fertigstellung ODIE_ENV (306) • Anybody Userdaten anlegen, falls nicht vorhanden (317) • Auf Parameter reagieren (333)

Wenn ein absoluter Snipname (ein Snipname mit expliziter Projektangabe) oder der Parameter $project über die URL-Zeile oder ein Formular gesetzt wurden, wird in odie.php versucht einen Projektwechsel durchzuführen. Bevor das Projekt tatsächlich gewechselt wird, wird der Pfad, den der Benutzer eingegeben hat auf einen einstufigen Pfad reduziert(335). Falsch angegebene Projekte werden hier rausgefiltert.

Page 16: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 16

Dann wird geprüft ob das gewünschte Projekt auch existiert (337) und der Benutzer in das Projekt wechseln darf (339). Ist der Benutzer kein Projektmitglied und auch noch nicht angemeldet, wird er nun an die Anmeldemaske weitergeleitet (344), andernfalls wird es ihm mitgeteilt, dass er das Projekt nicht betreten darf und er befindet sich im Defaultprojekt. (350). Wenn der Projektwechsel erfolgreich war und kein Snip angewählt wurde, zeigen wir das Startsnip an. Dies ist nur der Fall, wenn das Projekt über den Projektindex oder manuell via URL-Zeile gewechselt wurde. In beiden Fällen ist es das Beste, das Startsnip anzuzeigen. (359) Gibt es das gewünschte Projekt nicht, bleibt der Benutzer im aktuellen Projekt und bekommt eine entsprechende Meldung angezeigt (365).

• Snipindex laden (370) • Applikation auswählen (374)

Wenn der Benutzer keine Applikation angegeben hat, wird nun die passendste Applikation ausgewählt. Dies geschieht folgendermassen:

Wenn der Snipname zu diesem Zeitpunkt noch ungesetzt ist, zeigen wir das Startsnip an. Dies ist nur der Fall, wenn weder ein Snip noch eine Applikation angegeben wurden – der Benutzer also ODIE ohne Parameter aufgerufen hat. Er kommt zur Startseite von ODIE. (378) Andernfalls versuchen wir über den Content-type des geforderten Snips auf die richtige Applikation zu kommen (384).

Wenn es das geforderte Snip nicht gibt, wird der Benutzer zur Applikation Create-Snip weitergeleitet, mit der Snips erstellt werden können – vorausgesetzt es handelt sich nicht um ein Kalendersnip. Kalendersnips werden vom Kalender selbständig und ohne Rückfrage an den Benutzer erstellt, da der Snipname zur Identifizierung von Kalendersnips herangezogen wird. (391)

• Validierung der Applikation (401)

Wenn im Applikationsverzeichnis kein Eintrag unter dem Applikationsnamen existiert, beziehungsweise wenn es sich bei dem Eintrag um eine Datei handelt, muss ODIE eingreifen und eine ander Applikation aufrufen. Dieser Fall kann von drei Ereignissen herrühren:

Der Inhaltstyp des angewählten Snips ist deleted-<ursprünglicher Content-type>. Der ursprüngliche Content-type gelöschter Snips wird im Content-type weiterhin festgehalten und lediglich mit deleted- präfixiert, damit sie nach dem Wiederherstellen wieder der richtigen Applikation zugeordnet sind. Für die präfixierten Content-types gibt es aber keine eigene Applikationen, also leiten wir den Benutzer zur deleted Applikation weiter (405)

Wenn der Content-type des Snips unknown ist, wird der Benutzer zu Create-Snip weitergeleitet um dort den richtigen Content-type anzugeben. (411)

Page 17: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 17

Andernfalls wurde entweder über die URL-Zeile oder eine fehlerhafte Applikation versucht auf eine nicht vorhandene Applikation zuzugreifen und wir teilen dies dem Benutzer mit. (416)

• Eintragen der gewonnenen Informationen in ODIE_ENV (421) • Ausführen der Applikation (432)

Zu diesem Zeitpunkt steht der Name einer gültigen Applikation in ODIE_ENV[app]. Mit der Prozedur TO_TARGET wird das Skript in der Variable $source_filename interpretiert und der gesamte erzeugte Output in die Variable $require_string gestellt. Dies ist für den nun folgenden Renderer nötig – würden wir den Output nämlich nicht puffern, sondern gleich ausgeben (wie in PHP üblich), könnte der Renderer die Ausgabe nicht mehr beeinflussen.

• Rendern der Ausgabe (442) • Darstellen der Interface (444)

Wenn das Interface angezeigt werden soll – bei Bildern oder anderen externen Dateien ist dies nicht der Fall – führen wir das Interface mit TO_TARGET aus (um auch PHP Code im Interface zuzulassen). Anschließend führt der Wiki-Linker alle Wiki Ersetzungen im Interface durch (459) und die Header werden zum Client geschickt (470). (näheres zu Wiki Ersetzungen im Kapitel Linker).

Wird das Interface nicht dargestellt, müssen wird trotzdem die HTTP Header schicken.(482)

• Ausgeben aller gepufferten Ausgaben (498) • Speichern der Sessiondaten (500) • Speichern des Snipindex (502)

Page 18: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 18

3.6 Beschreibung der Datenstrukturen (pav)

Das System stellt seinen Applikationen zwei spezielle Hashes zur Verfügung. Das Session-Objekt und das ODIE-Environment. Diese zwei Datenstrukturen werden von den Applikationen hauptsächlich als Datenquelle genutzt, die Eigenschaften können aber auch überschrieben werden. In jedem Fall muss man über den Aufbau bescheid wissen, um einerseits die zur Verfügung gestellten Daten richtig zu interpretieren und andererseits nichts falsches einzutragen. Zusätzlich zu diesen Variablen gibt es noch die spezielle Variable $snip_title, in welcher der Titel des aktuell angeforderten Snips steht. Ruft der Benutzer eine Applikation ohne explizitem Snipnamen auf, beinhaltet diese Variable zunächst einen Leerstring. Es ist dann die Aufgabe jeder Applikation selbst auf diesen Spezialfall zu reagieren und nötigenfalls die Variable $snip_title zu füllen.

3.6.1 $SESSION Array ( [username] [interface] [language] [lastaction] [id] [project] [date] )

Das Session-Objekt enthält alle Daten, die eine Session beschreiben. Es wird über Requests hinweg persistent gespeichert, verliert jedoch seine Gültigkeit, wenn lastaction um mehr als den in SESSION_TIMEOUT vereinbarten Zeitraum zurückliegt. (Diese und andere Konstanten sind in der Datei settings vereinbart und können vom Betreiber der ODIE Installation nach belieben geändert werden.) Username ist der Name des aktuell angemeldeten Benutzers. Der Name, mit dem sich der Benutzer am System angemeldet hat bzw. der spezielle User anybody. Dieser Name wird zur eindeutigen Identifizierung der Benutzer einer ODIE Installation herangezogen. Interface ist der Name des vom Benutzer gewählten Look & Feel in den die gesamte Ausgabe überführt wird. Language ist die gewählte Spracheinstellung – alle internationalisierten Strings werden in diese Sprache übersetzt. Lastaction ist ein UNIX-Timestamp, der angibt wann die letzte Aktion des Benutzers war. Führt ein Benutzer längere Zeit keine Aktionen am System durch, verliert seine Session die Gültigkeit und er muss sich erneut anmelden. Zur eineindeutigen Identifizierung einer Session wird die ID herangezogen. Jeder Rechner, der auf das ODIE zugreift kann gleichzeitig nur eine solche ID inne haben. Project ist das aktuell angewählte Projekt und Date das momentane logische Datum. Das logische Datum einer Session beschreibt auf welchen Tag zuletzt von diesem Benutzer zugegriffen wurde. Normalerweise ist das logische Datum gleich dem realen, wenn der Benutzer jedoch den ODIE-Space nach chronologischen Gesichtspunkten durchsucht (beispielsweise über den mini-calendar), wird das logische Datum auf das damals aktuelle Systemdatum gesetzt. Alle Applikationen, die etwas mit Datumsarithmetik zu tun haben, sollten das aktuelle Datum aus Date des Session-Objekts holen. Die Aufbereitung historisierter Daten wird dadurch erheblich erleichtert.

Page 19: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 19

BNF:

(* SESSION *) <session> ::= <username>, <interface>, <language>, <lastaction>, <id>, <project>, <date>

<username> ::= <token> <interface> ::= <token> <language> ::= <token> <lastaction> ::= <timestamp> <id> ::= <md5string> <project> ::= <token> <date> ::= <datestring>

Page 20: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 20

3.6.2 $ODIE_ENV

Array ( [render_format] [mime_type] [show_interface] [request_url] [remote_addr] [editing] [snip] ( [keywords] [creation_timestamp] [content] [content-type] [edit_timestamp] [editor] [creator] [project] [title] [read_count] [write_list] ( [users] ( [allow] [deny] ) [projects] ) [read_list] ( [users] ( [allow] [deny] ) [projects] ) [backlinks] [links] [size] [description] ) [username] [user_data] ( [username] [name] [firstname] [email] [reminder_question] [reminder_answer] [password] [interface] [language] [projects] ) )

Page 21: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 21

Das ODIE-Environment ist die Schnittstelle des Systems zur den Applikationen und umgekehrt. Alle relevanten Daten eines Programmdurchlaufs werden hier festgehalten. Zu Beginn des Requests werden die Eigenschaften dieses Objekts gesetzt, mit Beendigung des Requests werden diese Daten zerstört.

Render_format definiert das Ausgabeformat. Momentan gibt es im ODIE sechs verschiedene Render Formate. Für jedes dieser Formate wird ein anderer Renderer aufgerufen, der die Datendarstellungssymbole in ausgabeformatabhängige Daten konvertiert. Pdf ist nur ein Platzhalter, es wird kein Pdf-Dokument erstellt. Mime_type gibt den MIME Typ der Ausgabedaten an, damit der Browser weiß, wie die Daten zu interpretieren und darzustellen sind. Ist show_interface auf true gesetzt, wird das aktuelle Interface reingelinkt, andernfalls sieht der Benutzer nur den Seiteninhalt. In Request_Url sind die Url Parameter – also der Teil des Querystrings nach dem ? – gespeichert. Die IP-Adresse des Benutzers steht in Remote_Addr, der Username des Benutzers steht in Username. Der boolsche Wert editing ist true wenn der aktuelle Programmdurchlauf das Snip im ODIE_ENV bearbeitet. Diese Eigenschaft muss immer gesetzt werden, wenn eine Applikation schreibend auf das Snip zugreift, damit Concurrent Edits erkannt und behandelt werden können. Die Felder Snip und User_Data werden weiter unten in diesem Kapitel behandelt.

BNF

(* ODIE_ENV *) <odie_env> ::= <render_format>, <mime_type>, <show_interface>, <request_url>, <remote_addr>, <editing>, <snip>, <username>, <user_data>

<render_format> ::= ascii | binary | html | pdf | printable | rtf | text <mime_type> ::= text/html | text/plain | application/octet-stream <show_interface> ::= <boolean> <request_url> ::= <url> <remote_addr> ::= <tuple> <editing> ::= <boolean> <username> ::= <token>

Page 22: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 22

3.6.3 Snip

Das Feld Snip in ODIE_ENV. Diese Struktur wird auch von allen Snip Verwaltungsfunktionen verwendet. Der Aufbau eines Snip-Objekts sieht folgendermaßen aus.

BNF

(* SNIP *) <snip> ::= <keywords>, (* Schlüsselwörter im Snip*) <creation_timestamp>, (* Erstellungszeitpunkt *) <content>, (* Inhalt des Snips *) <content-type>, (* Inhaltstyp *) <edit_timestamp>, (* Zeitpunkt letzte Bearb.*) <editor>, (* letzter Bearbeiter *) <creator>, (* Ersteller *) <project>, (* in welchem Projekt *) <title>, (* Bezeichnung des Snips *) <read_count>, (* Zugriffszähler *) <write_list>, (* Schreibrechte *) <read_list>, (* Leserechte *) <backlinks>, (* Linken auf das Snip *) <links>, (* Linkt auf diese Snips *) <size>, (* Grösse in Byte *) <description> (* optionale Beschreibung *)

<keywords> ::= <token>+ <creation_timestamp> ::= <timestamp> <content> ::= <string> <content-type> ::= plain | calendar | stx | todo | meeting | <deleted> <edit_timestamp> ::= <timestamp> <editor> ::= <token> <creator> ::= <token> <project> ::= <token> <title> ::= <token> <read_count> ::= <digit>+ <write_list> ::= <access_list> <read_list> ::= <access_list> <backlinks> ::= <token>* <links> ::= <token>* <size> ::= <digit>+ <description> ::= <string>

<deleted> ::= deleted- <content-type> <access_list> ::= <acc_userlist>, <acc_grouplist> <acc_userlist> ::= <allow_list>, <deny_list>

<acc_grouplist> ::= <token>* <allow_list> ::= <token>* <deny_list> ::= <token>*

Page 23: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 23

3.6.4 User_Data

Benutzerdaten in ODIE werden generell in dieser Form gespeichert. Alle Funktionen, die Benutzerdaten manipulieren verwenden dieses Format. Auch des Feld user_data in ODIE_ENV ist so aufgebaut.

BNF

(* USER_DATA *)

<user_data> ::= <username>, <name>, <firstname>, <email>, <reminder_question>, <reminder_answer>, <password>, <interface>, <language>, <projects>

<username> ::= <token> <name> ::= <token>+ <firstname> ::= <token>+ <reminder_question> ::= <string> <reminder_answer> ::= <string> <password> ::= <md5string> <interface> ::= <token> <language> ::= <token> <projects> ::= <token>*

Elementare Typen

<token> ::= <wordchar>+ <timestamp> ::= <digit>+ <md5string> ::= (<lowercase> | <digit>){32} <datestring> ::= (* String laut DATE_FORMAT *) <string> ::= (* Beliebige Zeichenkette *) <email> ::= (* Emailaddresse *)

<wordchar> ::= <lowercase> | <uppercase> | <digit> | _ | - <lowercase> ::= a | .. | z <uppercase> ::= A | .. | Z <digit> ::= 0 | .. | 9

Page 24: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 24

3.7 Interfacing (pav)

Diese Kapitel beschreibt den Interfacing Mechanismus von ODIE. Beginnend bei einer Erklärung was wir unter Inferfaces verstehen bis hin zur Erstellung eigener Interfaces wird hier alles erklärt.

3.7.1 Was ist ein ODIE Interface?

ODIE verfügt über komplette Trennung von Daten und ihrer Darstellung. Dazu haben wir ein mehrschichtiges System aufgebaut, in dem jede Schicht über klare Schnittstellen verfügt. Näheres über das Schichtenmodell finden Sie unter „System“.

Die vorletzte Schicht bildet das Interface. Ein Interface ist das, was der Benutzer zur Navigation durch das System zur Verfügung gestellt bekommt. Alle Schaltflächen, Knöpfe, Eingabefelder und Ausgabeelemente, ihr Aussehen und ihre Position werden vom Interface bestimmt.

Zur Beschreibung eines Interfaces können PHP, (x)HTML, CSS und die Wiki-Link Symbole eingesetzt werden.

3.7.2 Elemente eines Interfaces

Alle Interfaces befinden sich in dem Verzeichnis, das in INTERFACE_DIR in defs.inc definiert ist. Per default ist dieses Verzeichnis im Hauptverzeichnis ihrer ODIE-Installation und heisst templates/. Hier hat jedes Interface seinen eigenen Ordner, der den Namen des Interfaces trägt.

Die Dateien brauchen nur angelegt und richtig benannt werden – ODIE fügt sie dann selbständig in die Seite ein, sofern jemand das Interface wählt. Innerhalb dieses Verzeichnisses gibt es eine Reihe von Dateinamen, die spezielle Bedeutung haben. Diese werden nun erklärt. Darüber hinaus können sie beliebige Namen für weitere Dateien und Unterordner, die sie für ihr Interface brauchen anlegen.

<InterfaceName> Jene Datei, die den Namen des Interfaces im gleichnamigen Verzeichnis trägt, beschreibt den generellen Seitenaufbau. In dieser Datei muss sich ein gültiges (x)HTML Dokument befinden, welches mithilfe der Wiki-Link Symbolen genau festlegt, welche Seitenelement wo eingefügt werden sollen. Diese Datei muss vorhanden sein, alle weiteren Dateien – abgesehen von mini-row – sind optional. Sie können beliebig viele Bilder, Applets, Stylesheets oder sonstige Dateien inkludieren. Der Pfad zum Verzeichnis der Interfaces kann über den Wiki-Linker mit {=INTERFACE_DIR} reingeholt werden. Wie ein solches Dokument aufgebaut sein kann, finden Sie am besten heraus, indem sie sich den „Leitfaden zur Erstellung eines Interfaces“ durchlesen und bestehende Interfaces studieren.

Page 25: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 25

style.css Jedes Interface kann eine beliebige Anzahl eigener Stylesheets definieren. Das Stylesheet style.css ist das spezielle Stylesheet, auf das das ODIE zugreifen kann. Dieses wird auch im Popup-Fenster der Schnellhilfe inkludiert. Nach Möglichkeit sollten alle Style Definitionen in dieser Datei stehen. ODIE verwendet eine Reihe eigener Stylesheet Klassen:

table.list (* Tabellen, die Listen anzeigen *) table.list tr.rowA (* Zeile A für gerade Zeilen *) table.list tr.rowB (* Zeile B für ungerade Zeilen *) .css (* Eingabefelder besitzen diese Klasse *) .cssB (* alternative Farbe für Eingabefelder *) a.denied (* Links, die dem Benutzer verwehrt werden *) .h1 (* alle STX Elemente unter <h1> *) .h2 (* alle STX Elemente unter <h2> *) .h3 (* alle STX Elemente unter <h3> *) .h4 (* alle STX Elemente unter <h4> *) .h5 (* alle STX Elemente unter <h5> *) .h6 (* alle STX Elemente unter <h6> *)

header Die Datei header wird – sofern vorhanden – vor allen ausgegebenen Snips eingefügt. Der Inhalt darf aus PHP und (x)HTML bestehen. Normalerweise befindet sich in dieser Datei eine speziell formatierte Überschrift mit snipbezogenen Links.

footer Analog zu header, wird footer nach der Ausgabe eines Snips eingefügt.

mini-header Die Mini Elemente werden im Gegensatz zu den zwei bereits behandelten Markup-Dateien nicht vor/nach Snips eingefügt, sondern bilden den Rahmen um Control-Panel Elemente. Control-Panel Elemente sind kleine Applikationen, die auf jeder Seite eingefügt werden – normalerweise in einem eigenen Navigationsbalken oder ähnlichem – und dienen der Orientierung und Navigation. (Backlinks, Mini-Calendar und Snip-Info sind Beispiele für Control-Panel Elemente) In der Variable $string kann innerhalb eines PHP Blocks auf den Titel des Control-Panel Elements zugegriffen werden. Die Datei mini-header leitet ein Control-Panel Element ein.

mini-footer Der mini-footer kann genauso wie der mini-header auf $string zugreifen. Der Footer beendet ein Control-Panel Element.

mini-row Wenn ein Control-Panel Element listenartige Ausgabe besitzt – wie beispielsweise die Applikation Backlinks – wird statt dem Listenelement die Datei mini-row ausgegeben. In dieser Datei muss sich neben optionalem Markup ein PHP Block befinden, der die Zeile ausgibt. Im einfachsten Fall sieht die Datei mini-row folgendermaßen aus:

<?php echo $string ?><br />

Page 26: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 26

3.7.3 Weitere Einflüsse auf das Aussehen

Renderer Der Renderer – welcher die letzte Schicht auf dem Weg des Snips zum Benutzer darstellt – kann das Aussehen ihres Interface nicht beeinflussen. Es kann aber dafür sorgen, dass das Interface gar nicht angezeigt wird. Bei den Renderformaten binary, ascii und printable ist dies der Fall.

global.css Im Hauptverzeichnis der Interfaces befindet sich ein Stylesheet Dokument mit dem Namen global.css, welches in alle Interfaces eingebunden werden sollte. Hier werden globale Styledefinitionen vom ODIE vorgenommen, die das Aussehen beeinflussen. Nur erfahrene Benutzer sollten auf die Inkludierung dieses Stylesheets verzichten.

Browser Das Bild, das der Benutzer letztendlich auf seinem Bildschirm sieht, hängt von der eingesetzten Browsersoftware ab.

Page 27: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 27

3.7.4 Leitfaden zur Erstellung eines Interfaces Dieses Kapitel begleitet sie auf dem Weg zum eigenen Interface. Es wird ein minimales Interface mit dem Namen simple erstellt.

Anlegen der Dateien Legen sie im Verzeichnis, in dem sich alle Interfaces befinden einen neuen Ordner namens simple an. Das Verzeichnis heißt normalerweise templates/ und befindet sich im Hauptverzeichnis der ODIE-Installation. (In defs.inc steht der Name des Verzeichnisses) Erstellen sie im neu erstellten Verzeichnis zwei Dateien: simple und style.css. Achten sie beim Bearbeiten der Dateien darauf, dass der Text ohne Formatierungsinformationen abgespeichert wird. Verwenden sie einen einfachen Texteditor.

Bearbeiten von simple Simple ist die Datei, in der sich die Formatierungsbefehle für die Benutzeroberfläche befinden. Hier eine minimalistische Ausführung eines einfachen Interfaces – fügen sie folgende Zeilen in die Datei simple ein:

<html> <head> <title>{=snip/title}</title> <link rel="stylesheet" href="{=INTERFACE_DIR}global.css" /> <link rel="stylesheet" href="{=INTERFACE_DIR}simple/style.css" /> </head> <body> <div>{!menubar}</div> <div>{=snip/content}</div>

</body> </html>

Erläuterungen In Zeile drei wird die Variablensubstitution des Linkers verwendet um im Titel der Seite immer den aktuellen Titel des Snips auszugeben. Die Zeilen vier und fünf fügen das globale und das lokale Stylesheet in die Seite ein. Der Wiki-Linker ersetzt zur Laufzeit die Variable INTERFACE_DIR mit dem Pfad zum Interface, sodass der Browser die zwei Stylesheets finden kann. {!menubar} führt die Applikation menubar (eine Liste von Links auf die gängigsten Applikationen) aus und fügt den erzeugten Output an der angegebenen Stelle ein. Mit {=snip/content} wird schließlich der vom Programmdurchlauf erzeugte Inhalt in das Interface reingeholt. Um ein besseres Verständnis der Wiki-Link Symbole zu erlangen, lesen sie die Linker-Dokumentation, weiter unten in diesem Manual oder online im ODIE Documentation Project. Außerdem sollten sie HTML verstehen. Im Internet gibt es eine hervorragende Quelle, um HTML zu erlernen: SelfHTML unter http://selfhtml.teamone.de/.

Page 28: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 28

style.css In das Stylesheet des Interfaces können sie beliebige CSS Formatierungen eintragen. Eine minimalistische Ausführung könnte beispielsweise so aussehen:

body { font-family: Arial; } table.list { background-color: #C0C0C0; } table.list tr.rowA { background-color: #E0E0E0; } table.list tr.rowB { background-color: #F0F0F0; }

Erläuterungen table.list, tr.rowA und tr.rowB sind von ODIE definierte Styleklassen, die das Aussehen von Tabellen bestimmen. RowA und RowB werden alternieren an die Zeilen vergeben. Unterschiedliche Hintergrundfarben vereinfachen es, die Zeile zu halten. Eine ausführliche Einführung in CSS finden sie unter http://selfhtml.teamone.de/.

Das neu erstellte Interface ist nun fertig und kann – wie alle anderen Interfaces auch – über Benutzereinstellungen direkt im ODIE ausgewählt werden.

Page 29: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 29

4 Moduldokumentation

4.1 Linker (gez)

Der sogenannte Linker bietet eine einfache und effiziente Methode, Inhalte in Texte einzufügen und untereinander zu verlinken. Bewerkstelligt wird dies durch WikiLink-Symbole, die in den Text eingefügt werden. Diese werden vom Linker durch die tatsächlichen Inhalte ersetzt. Durch die Linker-Symbole können den verlinkten Snips sogar Parameter übergeben werden!

4.1.1 Symbole

Parametriesierbare Symbole

4.1.1.1.1 Linken auf andere Snips

{snipname}

Dieser Text wird durch einen link auf das snip ersetzt. Wenn das Zielsnip nicht existiert wird die Möglichkeit geboten, es zu erstellen.

Beispiel Lesen sie mehr zum Thema {Linker} im ODP.

wird zu einem Link auf das Snip „Linker“ Lesen sie mehr zum Thema Linker im ODP.

{[snipname]*app}

Auf diese Weise kann entweder auf eine Applikation gelinkt werden oder ein Snip mit einer bestimmten Applikation als Ziel des Links definiert werden.

Beispiel Aktuelle Informationen sind in der Applikation {*today} zu finden.

Wird zu ienem Link auf die today-Applikation Aktuelle Informationen sind in der Applikation today zu finden.

{snipname|[snipname]*app}"beschriftung"

So kann einem Link eine Beschriftung zugewiesen werden.

Beispiel Lesen sie mehr zum Thema {Linker}“Der Wiki-Linker“ im ODP.

wird zu einem beschrifteten Link Lesen sie mehr zum Thema Der Wiki-Linker im ODP

Page 30: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 30

4.1.1.1.2 Inkludieren von Snips

{:snipname}

Durch dieses Symbol kann der Inhalt von anderen Snips in das aktuelle eingefügt werden. Dafür sind natürlich Zugriffsrechte auf das Zielsnip von Nöten. Um die Gefahr von Endlosschleifen zu bannen, kann ein snip nicht von einem snip inkludiert werden, dass dieses snip bereits inkludiert hat. Einfacher formuliert etwa so: Wenn man sich die Verkettung der Snips baumartig vorstellt, dürfen keine Schleifen entstehen, bzw. vom Weg von der Wurzel bis zu einem beliebigen Ast darf jedes Snip nur einmal vorkommen – auf anderen Ästen kann das Snip auch gleichzeitig vorkommen.

Beispiel ...dies wird im Band 4, Alternative Sprachen genauer behandelt. Hier ein kurzer Ausschnitt: {:band4_kapitel1}

Anstelle des Linker Symbols wird zur Laufzeit der Inhalt des Snips band4_kapitel1 eingefügt.

4.1.1.1.3 Ausführen von Applikationen

{!app:titel}

Auf diese Weisen können Applikationen, die sich im Schichtenmodell auf Schicht 2 befinden, ausgeführt werden. Nach dem Doppelpunkt kann der Name des snips, für den die Applikation ausgeführt wird werden soll, übergeben werden. Wenn auf das '!' ein zweites '!' folgt, wird der Linker angewiesen, das Ergebnis der Ersetzung noch einmal einer WikiLink Übersetzung zu unterziehen.

Beispiel {!stx:band4_kapitel1}

-- {!edit:band4_kapitel1}

würde die Applikationen stx (Aufbereiten von Texten) und edit (Bearbeiten von Texten) jeweils auf das Snip band4_kapitel1 anwenden und anstelle der Linker Symbole einfügen.

4.1.1.1.4 Parameterübergabe

Diesen Symbolen kann man Parameter übergeben. Die Syntax dazu lautet folgendermaßen:

{symbol[name|app][:name=wert:name=wert...]}

Beim Ausführen von Applikationen kann vor dem ersten Parameter zwischen zwei Doppelpunkten der Name des Snips übergeben werden, für das die Applikation aufgerufen werden soll.

Diese Symbole überprüfen natürlich auch die Zugriffsrechte des aktuellen Benutzers, bevor Sie durch Daten ersetzt werden.

Page 31: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 31

Beispiele

{!raw-index} ruft die Applikation raw-index auf. Eine alphabetische Liste aller Snips wird ausgegeben

{!raw-index:type=creator:pattern=koarl} ruft die Applikation raw-index auf, gibt ihr allerdings noch die Parameter type und pattern bekannt. Eine alphabetische Liste von jenen Snips, die von „koarl“ erstellt wurden wird ausgegeben. (Nähere Informationen zu raw-index in der Benutzerdokumentation)

{*raw-index:type=creator:pattern=koarl} Parametrisierung funktioniert auch bei allen anderen Wiki Symbolen. Hier wird – wie vom * erwartet – ein Link auf die Applikation raw-index in der oben beschriebenen Form erstellt.

Standard-Symbole

4.1.1.1.5 Einfügen von System-Werten

{=variable}

So können Informationen wie der Name des aktuellen Benutzers eingefügt werden. Folgende Werte können eingefügt werden:

project das aktuelle projekt username der name des aktiven Benutzers render_format das format, indem die ausgabe erfolgt mime_type der im http-header mitgeschickte mime-code request_url die URL-Zeile des Aufrufs remote_addr die ip-adresse des aktiven Benutzers user_data ein array mit den daten des aktiven users. mit user_data/index können

die verschiedene indizes angewählt werden. snip die daten des gerade angezeigten snips. mit snip/index können die

verschiedenen indizes bearbeitet werden. app der name der ausgeführten applikation content die ausgabe der ausgeführten applikation interface_dir das verzeichnis, in dem sich das aktive interface befindet

4.1.1.1.6 URL-Formulierung

{@snipname}

liefert die URL eines snips zurück

4.1.1.1.7 Internationalisierung

{?text}

liefert 'text' in der eingestellten Sprache zurück (falls vorhanden).

Page 32: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 32

4.1.2 Escaping von Symbolen

Wenn in einem Text geschwungene Klammern vorkommen, die ein gültiges WikiLink Symbol ergeben, aber als Text behandelt werden sollen, kann der öffnenden Klammer ein '\' vorangestellt werden. Dieser weist den Linker an, das Symbol zu ignorieren.

4.1.3 Verwendung

Die Einbindung des Linkers erfolgt durch die Funktion wiki_link(String text). Rückgabewert ist der gelinkte Text. Diese Funktion befindet sich in der Datei linker.inc im LIB_DIR. Darin befindet sich ein Regular Expression, welche Linker Symbole findet und an die Funktion wiki_replace weiterreicht, die die eigentliche Ersetzung vornimmt.

4.2 Renderer (mac)

Die Renderer sind die Module in odie, die für die Ausgabe in verschiedenen Formaten verantwortlich sind. Der Modulablauf gliedert sich wie folgt:

Verteiler (render)

XML-Parser

HTML (render_html)

PLAIN (render_plain)

RTF (render_rtf)

Snipcontent

Snipcontent, neues Format

trimall

getLengths

to_blocktext

Ausgabe

sonstige

Page 33: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 33

Aufgerufen wird die Funktion render(), die zuerst mit Hilfe des XML Parsers das übergebene Dokument in seine Bestandteile zerlegt und anschließend den gewünschten Renderer aufruft. Außerdem fängt render() grunlegende Fehler, wie z.B. eine leeren Snipinhalt, ab. Als zweiten Parameter muss man der Funktion das gewünschte Ausgabeformat übergeben, folgende Formate sind möglich:

• „binary“: Das Dokument wird als binär erklärt und zum Download freigegeben • „html“: Ruft render_html auf • „text“: Ruft render_plain, zeigt das Interface um den Text herum an • „ascii“: Ruft render_plain, jedoch ohne Interface • „rtf“: ruft rtf_odie_close, render_rtf und rtf_odie_header. Das entstehende RTF-

Dokument wird mit hilfe eines Plugins, falls vorhanden, angezeigt. • „printable“: Rendert garnicht, entfernt nur das Interface

Die einzelnen Renderer (render_plain, render_html und render_rtf) durchkämmen das übergemene XML- Dokument nach bekannten Tags und wandeln diese in das geünschte Format um. Eine genaue Funktionalitätsbeschreibunge der einzelnen Untermodule ist in der Funktionsdokumentation unter render_plain(), render_html() und render_rtf() zu finden.

Page 34: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 34

4.3 Structured Text (pav)

STX steht für Structured TeXt und beschreibt ein Textformat, das es ermöglichen soll, aus intuitiv eingegebenen Texten ansehnliche Formatierungen zu erzeugen. Die Texte werden als reiner Text mit einigen Spezialzeichen eingegeben.

Für den STX-Parser besteht ein Dokument aus mindestens einer logischen Zeile, die wiederum aus mindestens einer physischen Zeile besteht. Logische Zeilen – oder auch Blöcke genannt – beginnen und enden mit Leerzeilen und haben eine bestimmte Einrückung. Physische Zeilen enden mit einem Zeilenwechsel (newline). Alle physischen Zeilen eines Blocks haben die gleiche Anzahl von Leerzeichen am Anfang der Zeile, sie sind gleich weit eingerückt. (Für einen Tabulator werden zwei Spaces angenommen)

Es soll nun ein grober Überblick über den Ablauf beim Formatieren der STX-Dokumente angeführt werden.

Zu Beginn der Textformatierung liest der Parser alle physischen Zeilen ein und gruppiert sie nach unterschiedlichen Einrückungsstufen zu logischen Zeilen. (Zeile 78 in stx.inc)

Dann werden die logischen Zeilen nach vorformatiertem Text durchsucht. Vorformatierter Text wird in Nonproportionalschrift ausgegeben und es werden keine weiteren STX Ersetzungen vorgenommen. Wenn die letzte physische Zeile eines Blocks zwei Doppelpunkte an der letzten Stelle haben, sind folgende Blöcke weiter eingerückt. Dies geschieht in Zeile 112 in stx.inc. Genaueres zum Aufbau der Funktion stx_parse finden sie in der Funktionsdokumentation.

Blöcke, die nicht vorformatiert sind, werden an die Funktion styleBlock() weitergegeben, welche sich um die eigentliche Formatierung kümmert. Bei logischen Zeilen, die nur aus einer physischen Zeile bestehen, muss geprüft werden, ob es sich um eine Überschrift handelt (Zeile 210). Wenn der folgende Block nicht weiter eingerückt ist – es sich also nicht um eine Überschrift handelt – werden in der Zeile mit der Funktion stx_rep() alle einzeilige Ersetzungen vorgenommen (Zeile 241). Näheres zur Funktionsweise von stx_rep() siehe Funktionsdokumentation.

Wenn ein Block aus mehreren physischen Zeilen besteht, müssen Listen entdeckt und bei Bedarf ersetzt werden (ab Zeile 260). Dabei wird untersucht ob das erste Zeichen mehrerer physischer Zeilen ein Bindestrich (für ungeordnete Listen) oder ein 1) (für numerierte Listen) ist.

Zusätzlich zu den bereits erklärten STX Funktionalitäten gibt es noch Optionen, die in der allerersten Zeile des STX-Dokuments aktiviert werden müssen. Steht in der ersten Zeile der String #STX: handelt es sich um eine Optionszeile und es wird geprüft ob die Tokens break, numbered und index gesucht, welche die gleichnamigen Optionen aktivieren. (Zeile 70)

Page 35: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 35

4.4 XML-Parser (mac)

XML ist eine textbasierte Metasprache, die die Beschreibung, den Austausch, die Darstellung und die Manipulation von strukturierten Daten erlaubt, so dass diese - vor allem über das Internet - von einer Vielzahl von Anwendungen genutzt werden können.XML steht für eXtensible Markup Language. Unter anderem basiert XHTML auf XML, wodurch es dem Parser möglich wird, auch HTML- Dokumente zu bearbeiten – für die Renderer ein wichtiges Feature. Grundsätzlich besteht jedes Datenelement in XML aus einem öffnenden Tag (<tag>) und einem zugehörigen schließenden Tag (</tag>), gekennzeichnet durch das /. Sauberes XML folgt einer strengen Hierarchieordnung, es dürfen keine Tags vermischt werden. Hier ein Beispiel:

<content> <text>Inhalt</text> <zitat> <sprecher> Name </sprecher> <text> Zitat </text> </zitat> </content>

Der odie- XML Parser bietet die Möglichkeit, ein solches Dokument in seine Bestandteile aufzugliedern und es dem Programmierer damit leicht zu machen, auf die Datenelemente zuzugreifen. Bei der Entwicklung wurde es zu einem großen Problem, dass HTML so gut wie nie sauberes XML ist, wodurch es zu einer Reihe von Sonderfällen kommt. Daher sind die einzelnen Tags durch einen Nicht- Tag- Inhalt (ntc, non tag content) getrennt, um folgende Konstrukte unterstützen zu können:

<content> <text>Text</text> Das gehört hier nicht her <text>Text</text>

</content>

Dieser Text ist nicht innerhalb eines Tags.

Page 36: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 36

Demnach würde das erste Dokument nach dem parsen so aussehen (Dargestellt in einer PHP- Arraystruktur):

[content] => Array ( [ntc_0] => [text] => Inhalt [ntc_1] => [zitat] => Array ( [ntc_0] => [sprecher] => Name [ntc_1] => [text] => Zitat [ntc_2] => ) [ntc_2] => )

Für den Entwickler ist also, um auf das Zitat zugreifen zu können, nur noch

$xml[‘content’][‘zitat’]

notwendig, er muss sich nicht mühsam den Inhalt heraussuchen.

Mehrere gleichnamige Tags in der selben Ebene der Dokumenthierarchie werden durchnumeriert (zitat, zitat_1, zitat_2, ….).

Detaillierte Informationen über die Parser- Untermodule findet man in deren Funktionsbeschreibung. Diese sind:

• parse() • do_parse() • unparse() • getTag() • findTagEnd() • countOpenTags()

Page 37: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 37

5 Applikationsdokumentation

5.1 Application not Found

Dateiame: system/application-not-found

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Meldung eines Fehlers beim Applikationsaufruf

Verwendet: i18n()

Detailbeschreibung

Ausgabe eine Fehlermeldung, dass die versuchte Applikation nicht gefunden werden konnte. Wenn es die versuchte Applikation gibt, aber trotzdem ein Fehler entstanden ist, wird eine dem entsprechende Meldung abgegeben.

Paramter

keine

Input

$tried_application Applikation, die versucht wurde aufzurufen

Probleme

keine

Verbesserungsvorschläge

keine

Page 38: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 38

5.2 Applications

Dateiame: system/applications

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Auflistung von Applikationen

Verwendet: miniHeader(), miniFooter(), miniRow(), form_href

Detailbeschreibung

Folgende Liste wird am Schnelldrucker internationalisiert durch Beistriche getrennt ausgegeben: 'calendar','meeting','deleted','today','todo'

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 39: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 39

5.3 Backlinks

Dateiame: system/backlinks

Programmierer: Kolm Autor: Maczejka

Kurzbeschreibung: Auflistung von Backlinks

Verwendet: miniHeader(), miniFooter(), miniRow(), i18n(), getBacklinks()

Detailbeschreibung

Auflistung aller Backlinks zum aktuellen Snip, sollten keine vorhanden sein entsprechende Ausgabe.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 40: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 40

5.4 cal-all

Dateiame: system/cal-all

Programmierer: Seywerth Autor: Seywerth

Kurzbeschreibung: Eine Kalenderansicht vom ODIE

Verwendet: getDayInfo(), parseDateTime(), curDate(), restOfTime(), getSnipsByContentType(), form_href(), writeAccess(), i18n(), wiki_link()

Detailbeschreibung

Cal-all ist eine Applikation die es ermöglicht, alle Events bzw. alle Events in einer bestimmten Zeitspanne chronologisch aufzulisten. Cal-all ist eine der 4 Kalender-Applikationen.

Parameter GET:

list ‘all’ – dadurch werden alle Events aufgelistet

POST: event_jump wenn gesetzt wurde der ’jump to’ Button gedrückt jump_dd der Tag zu dem gesprungen wird (bsp.: 21) jump_mmm der Monat zu dem gesprungen wird (bsp.: jan) jump_yyyy das Jahr zu dem gesprungen wird (bsp.: 2002)

event_search wenn gesetzt wurde auf ’find events’ gedrückt event_start_dd der Tag ab dem aufgelistet werden soll event_start_mmm der Monat ab dem aufgelistet werden soll event_start_yyyy das Jahr ab dem aufgelistet werden soll event_end_dd der Tag bis zu dem aufgelistet werden soll event_end_mmm der Monat bis zu dem aufgelistet werden soll event_end_yyyy das Jahr bis zu dem aufgelistet werden soll

Page 41: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 41

Probleme

<nobr> ist nicht XHTML konform – wird aber benötigt damit die Datumsangaben nicht umgebrochen werden.

Verbesserungsvorschläge

Alternative zu <nobr> finden.

Page 42: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 42

5.5 cal-event

Dateiame: system/cal-event

Programmierer: Seywerth Autor: Seywerth

Kurzbeschreibung: Eine Kalenderansicht vom ODIE

Verwendet: getDayInfo(), parseDateTime(), form_href(), writeAccess(), i18n(), wiki_link(), getActiveProject(), getActiveUser()

Detailbeschreibung

Cal-event ist eine Applikation die es ermöglicht, ein Event inklusive Beschreibung zu erstellen, bearbeiten, löschen oder einfach anzuzeigen. Cal-event ist eine der 4 Kalender-Applikationen.

Parameter GET:

event_edi stellt die pos. des zu bearbeitenden Events dar event_ins ist die pos. des neu einzufuegenden Events

POST: event_jump wenn gesetzt wurde der ’jump to’ Button gedrückt jump_dd der Tag zu dem gesprungen wird (bsp.: 21) jump_mmm der Monat zu dem gesprungen wird (bsp.: jan) jump_yyyy das Jahr zu dem gesprungen wird (bsp.: 2002)

event_new ist gesetzt wenn ein neues Event angelegt wird

Page 43: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 43

Probleme

keine

Verbesserungsvorschläge

keine

Page 44: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 44

5.6 cal-month

Dateiame: system/cal-month

Programmierer: Seywerth Autor: Seywerth

Kurzbeschreibung: Eine Kalenderansicht vom ODIE

Verwendet: getDayInfo(), parseDateTime(), curDate(), getSnipsByContentType(), form_href(), i18n(), wiki_link()

Detailbeschreibung

Cal-month ist eine Applikation die es ermöglicht, alle Events eines bestimmten Monats in einer übersichtlichen Form darzustellen. Cal-month ist eine der 4 Kalender-Applikationen.

Parameter POST:

event_jump wenn gesetzt wurde der ’jump to’ Button gedrückt jump_dd der Tag zu dem gesprungen wird (bsp.: 21) jump_mmm der Monat zu dem gesprungen wird (bsp.: jan) jump_yyyy das Jahr zu dem gesprungen wird (bsp.: 2002)

Page 45: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 45

Probleme

keine

Verbesserungsvorschläge

Tagesübergreifende Events irgendwie verwirklichen und brauchbar darstellen.

Page 46: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 46

5.7 calendar

Dateiame: system/calendar

Programmierer: Seywerth Autor: Seywerth

Kurzbeschreibung: Eine Kalenderansicht vom ODIE

Verwendet: getDayInfo(), parseDateTime(), saveEvent(), curDate(), restOfTime(), getSnipsByContentType(), form_href(), writeAccess(), i18n(), wiki_link()

Detailbeschreibung

Calendar ist eine Applikation die es ermöglicht, alle Events eines bestimmten Tages in einem erweiterbarem Raster von 8 – 18 Uhr aufzulisten. Calendar ist eine der 4 Kalender-Applikationen.

Die XML Struktur der Calendar Applikation hat folgenden Aufbau:

<!DEFINE calendar (event*)> <!DEFINE event (title, description, start, end, editor)> <!DEFINE title (#PCDATA)> <!DEFINE description (#PCDATA)> <!DEFINE start (#PCDATA)> <!DEFINE end (#PCDATA)> <!DEFINE editor (#PCDATA)>

Parameter GET:

event_del entspricht der Nummer des zu löschenden Events crc eine Prüfsumme fürs Löschen

Page 47: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 47

POST: event_jump wenn gesetzt wurde der ’jump to’ Button gedrückt jump_dd der Tag zu dem gesprungen wird (bsp.: 21) jump_mmm der Monat zu dem gesprungen wird (bsp.: jan) jump_yyyy das Jahr zu dem gesprungen wird (bsp.: 2002)

event_save ist gesetzt wenn das event gespeichert werden soll event_start_hh die Start-Stunde des zu speich. Events (bsp.: 14) event_start_ii die Start-Minute des zu speich. Events (bsp.: 55) event_end_hh die End-Stunde des zu speich. Events (bsp.: 15) event_end_ii die End-Minute des zu speich. Events (bsp.: 20) event_title der Titel des zu speichernden Events event_desc die Beschreibung des zu speichernden Events

event_del entspricht der Nummer des zu löschenden Events crc eine Prüfsumme fürs Löschen

Probleme

keine

Verbesserungsvorschläge

Tagesübergreifende Events irgendwie verwirklichen (zb.: mit einem eigenen Snip dafür).

Page 48: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 48

5.8 Comments

Dateiame: system/comments

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe von Kommentaren

Verwendet: i18n(), getCommentSnips(), getHeader(), wiki_link()

Detailbeschreibung

Wenn der aktuelle Snip nich existiert, passiert nichts. Ansonsten werden alle Kommentarsnips mit getCommentSnips() geholt und mit Hilfe von wiki_link() am Schirm ausgegeben. Am Ende wird ein Link ausgegeben, mit dem man ein neues Kommentar erzeugen kann.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 49: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 49

5.9 Comments Info

Dateiame: system/comments-info

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe der Anzahl von Kommentaren + Ersteller

Verwendet: i18n(), getCommentSnips(), getHeader(), form_href()

Detailbeschreibung

Die Anzahl der Kommentare zu aktuellen Snip wird ausgegeben, sowie deren Ersteller. Die gesamte Ausgabe ist ein Link auf die comments- Appliaktion.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 50: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 50

5.10 Create-snip

Applikationsname create-snip

Dateiname system/create-snip

Kurzbeschreibung Erstellt ein neues snip

Erfordert isProjectMember(), isBadName(), i18n(), writeSnip(), wiki_link(), getHeader(), getEditHandler(), writeAccess(), getActiveUser(), getContentTypes()

Verantwortliche zlabinger, pavlu, maczejka

Autor zlabinger

Beschreibung

Diese Applikation erstellt nach Überprüfung der Berechtigungen ein neues Snip und leitet an die zuständige edit-applikation weiter. Wenn die Applikation ohne Parameter aufgerufen wird, wird eine Maske zur Eingabe des Snipnamens und des content-types angezeigt.

Diese Applikation wird auch aufgerufen, wenn ein Snip mit dem content-type unknown angezeigt werden soll. In diesem Fall wird nur der content-type gesetzt, das snip aber nicht überschrieben.

Wenn das Snip erstellt worden ist, wird die durch getEditHandler() ermittelte Bearbeitungsapplikation aufgerufen.

Parameter

create_title der name des zu erstellenden snips create_content_type der content-type des zu erstellenden snips create_submit ‚true’, wenn das snip erstellt werden soll (auf submit gedrückt wurde)

Page 51: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 51

5.11 Create-user

Applikationsname create-user

Dateiname system/create-user

Kurzbeschreibung Legt einen neuen Benutzer an

Erfordert createUser(), i18n(), form_href()

Verantwortliche zlabinger, pavlu, kolm

Autor zlabinger

Beschreibung

Mit dieser Applikation ist es möglich, neue Benutzer im odie anzulegen. Wenn sie ohne Parameter aufgerufen wird, erscheint eine Eingabemaske, in die der Benutzer seine Daten eingeben kann.

Sollte der gewünschte Benutzername bereits vergeben sein, unterbreitet die Applikation Änderungsvorschläge.

Neben den allgemeinen Daten ist auch die Eingabe einer Erinnerungsfrage und –antwort möglich. Diese wird einem gestellt, wen man sein Passwort vergessen hat. Wenn diese Frage und Antwort nicht gesetzt werden, kann jeder Benutzer das Passwort ändern.

Wenn der neue Benutzer angelegt ist, wird ihm automatisch ein zufälliges Kennwort zugewiesen und an die angegebene e-mail adresse geschickt.

Parameter

create_submit wenn dieser parameter gesetzt ist, wird die erstellung des benutzers vorgenommen

username der benutzername, den der user gerne hätte name Familienname firstname Vorname reminder_question Passwort Erinnerungsfrage reminder_answer Passwort Erinnerungsantwort

Page 52: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 52

5.12 Day-summary

Dateiame: system/day-summary

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: zeigt eine Zusammenfassung zum Tage, sowie den Kalender an

Verwendet: parseDate(), wiki_link()

Detailbeschreibung

Diese Applikation zeigt eine Übersicht über alle Aktivitäten im ODIE an einem bestimmten Datum.

Für die zwei Sniplisten wird jeweils die Applikation snip-list mit den Parametern crit=modified bzw. crit=created inkludiert. Das Kalenderblatt ist ein inkludierter calendar. Näheres zu den einzelnen inkludierten Elementen finden Sie in der entsprechenden Dokumentation.

Input

• param (optional) • day (optional)

Mt day kann ein einzelner Tag direkt angesprungen werden. Das Format des Wertes in day entspricht dem DATE_FORMAT, welches in defs.inc definiert ist. (normalerweise dd-mon-yyyy)

Mögliche Werte für param sind today und eine Monatsangabe der Form yyyymm. Dieser Parameter dient nicht dem direkten Zugriff auf einzelne Tage, sondern der Navigation im mini-calendar. Je nach param wird die aktuelle Monatsansicht auf den angegebenen Monat oder das aktuelle Monat zurückgesetzt und der zuvor aktive Tag im neuen Monat angezeigt.

Page 53: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 53

Probleme

keine

Verbesserungsvorschläge

keine

Page 54: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 54

5.13 Deleted

Applikationsname deleted

Dateiname system/deleted

Kurzbeschreibung Diese Applikation verwaltet die Snips im Papierkorb

Erfordert snipExists(), getHeader(), writeHeader(), i18n(), deleteSnip(), getSnipList(), form_href(), writeAccess()

Verantwortliche zlabinger, pavlu, kolm

Autor zlabinger

Beschreibung

Wenn Snips gelöscht werden, werden Sie nicht physisch gelöscht sondern in den Papierkorb verschoben. Praktisch geschieht dies, indem deleted- vorne an den content-type angefügt wird. Die Applikation deleted ermöglicht die Verwaltung der Snips, die sich in diesem Zustand befinden. Sie können entweder endgültig gelöscht werden oder wiederhergestellt werden.

Wenn die Funktion ohne Parameter aufgerufen wird, wird nur eine Liste der gelöschten Snips angezeigt.

Parameter

resurrect wenn dieser Parameter true ist, wird das aktuelle snip wiederhergestellt kill wenn dieser Parameter true ist, wird das aktuelle snip endgültig gelöscht sort_key der schlüssel nachdem die anzeige sortiert werden soll (name, creator,

edit_timestamp) sort_dir die richtung (entweder az oder za)

Page 55: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 55

5.14 Dictgen

Dateiame: system/dictgen

Programmierer: Maczejka Autor: Maczejka

Kurzbeschreibung: Oberfläche zum Bearbeiten eines Wörterbuchs

Verwendet: i18n(), form_href(), newLanguageForm(), deleteLanguage(), createNewLanguage(), loadDictionary(), loadLangs(), updateDictionary(), writeDictionary(), showWordList()

Detailbeschreibung

Zuerst wird überprüft, ober der Benutzer odie_admin ist, sonst hat er keinen Zugriff auf den Dictgen. Danach wird $action in einer case- Struktur abgearbeitet:

• „new_language“ ruft newLanguageForm() • „del_language“ ruft deleteLanguage und übergibt den Sprachnamen • „create_language“ ruft createNewLanguage und übergibt den Sprachnamen • „update“ aktualisiert das Wörterbuch mithilfe der showWordList- Formulardaten und

ruft updateDictionary sowie writeDictionary • „delete“ wie update, nur wird der Eintrag gelöscht • default: showWordList wird aufgerufen

Paramter

Action Formulardaten

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 56: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 56

5.15 Edit

Applikationsname edit

Dateiname system/edit

Kurzbeschreibung Ermöglicht die Bearbeitung von Text-Snips

Erfordert writeAccess(), read, edit, wiki_link(), getActiveUser, writeSnip(), lockSnip(), unlockSnip()

Verantwortliche zlabinger, pavlu

Autor zlabinger

Beschreibung

Diese Applikation ermöglicht die Bearbeitung von Text-Snips, das sind solche mit den content-types stx oder plain. Es wird ein Eingabefeld angezeigt, in dem der Benutzer den Text ändern kann. Zuvor wird natürlich das Snip für diesen Benutzer gelocked. Diese Applikation setzt $odie_env[editing] auf true, um die Mitsendung des keepAliveScripts zu veranlassen. Dies bedeutet, dass regelmässig Requests an den Server geschickt werden, um das Snip weiter für den Benutzer gesperrt zu haben.

Das betätigen des submit-Knopfs führt zum erneuten Aufruf der edit-Applikation, diesmal mit dem Parameter edit_submit auf save gesetzt. Dies veranlasst die Speicherung der post-mässig mitgeschickten Daten.

Parameter

String edit_submit wenn auf save gesetzt, versucht die Applikation die Daten in edit_content zu speichern

String edit_content Der Inhalt des Snips, wenn auf submit gedrückt wurde

Page 57: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 57

5.16 Edit-project

Applikationsname edit-project

Dateiname system/edit-project

Kurzbeschreibung Ermöglicht die Erstellung/Administration von Projekten

Erfordert controlPanel(), getActiveUser(), i18n(), wiki_link(), isProjectAdmin(), isProjectMember(), getActiveProject(), isProjectCreator()

Verantwortliche zlabinger, pavlu, kolm

Autor zlabinger

Beschreibung

Diese Applikation ermöglicht das Erstellen und Administrieren von Projekten. Sie zeigt eine Liste von Benutzern links an. Benutzer können aus dem Projekt entfernt und in das Projekt hinzugefügt werden.

Weiters werden Links zu anderen administrativen Applikationen angezeigt (importer, kill_project wenn Benutzer Projektersteller ist)

Um diese Aktion auszuführen muss man natürlich Administrator im Projekt sein.

Parameter

create_project wenn auf new_project gesetzt, wird ein neues Projekt erstellt project_name der name des neu zu erstellenden projekts project_member_add auf add gesetzt, wenn ein neues mitglied hinzugefügt werden soll project_member_del der name des benutzers, der gelöscht werden soll

Page 58: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 58

5.17 Email

Dateiame: system/email

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: Versendet die aktuelle Seite als Email

Verwendet: check_email(), form_href(), getActiveUser(), getUserData(), i18n()

Detailbeschreibung

Setzt eine absolute URL zur vorher aktuellen Seite zusammen.

Paramter

keine

Input

$email Empfängeradresse $message Zu sendende Nachricht $url Hyperlink zum betrachteten Snip

Probleme

Seiteninhalt kann nur in unzufrieden stellendem Format als Teil der Nachricht mitgeschickt werden. Zum versenden von Emails werden keine speziellen Rechte benötigt – Email Applikation könnte als Spam-Gateway missbraucht werden. Es werden auch keine Wartezeiten verordnet

Verbesserungsvorschläge

Über einen Apache Sub-Request ohne separater Zugriffsprüfung (da dieser Request vom ODIE selbst käme und weder über eine Session noch ein gültiges Passwort verfügt) den gerenderten Inhalt der aktuellen Seite in einen String holen und als Teil der Nachricht verschicken. Nur in sicheren Netzwerken einsetzen, sonst deaktivieren oder löschen.

Page 59: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 59

5.18 Error

Dateiame: system/error

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Fehlerausgabe

Verwendet: -

Detailbeschreibung

Ausgabe einer Überschrift „error“ und des snipcontents.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 60: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 60

5.19 Extern

Dateiame: system/extern

Programmierer: Kolm Autor: Kolm

Kurzbeschreibung: Gibt das gegebene Snip bzw. Icon / Thumbnail aus; bei Bildern kann die Größe als Parameter übergeben werden

Verwendet: getSizeString(), getHeader(), readAccess(), i18n(), form_href(), getProjectPath(), strSplit()

Detailbeschreibung

Die extern Applikation soll es ermöglichen Bilder in beliebiger Größe (soweit sie vom Typ jpg oder png sind) bzw. Icons für beliebige externe Dateien in einen Text einzubinden.

Zunächst wird der benötigte Filename ermittelt – Thumbnail, Snip oder Icon. Falls es sich bei dem Snip um ein Bild handelt und der size Parameter gesetzt ist, werden mittels GD Funktionen die benötigten Änderungen vorgenommen und der Name der somit erzeugten temporären Datei weitergegeben. Falls nun die Datei mit dem weitergegebenen Dateinamen nicht existiert, wird ein passendes Icon weitergegeben.

Nach diesem Schritt wird die benötigte mime_type festgelegt und im odie_env show_interface auf FALSE gesetzt, damit fpassthru zum Zug kommen kann. Falls alles fehlerfrei funktioniert hat, kommt fpassthru zum Zug und gibt die Datei im Browser aus (sprich es wird ein Download gestartet, falls der Browser mit dieser mime_type nicht umgehen kann).

Paramter get text: textueller Link inkl. Filesize

view: Thumbnail / Icon download: fpassthru des Files

size thumb: Icon bzw. Thumbnail für alle möglichen Kombination bitte die Benutzerdokumentation konsultieren

Page 61: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 61

Probleme

fpassthru ist nicht immer erfolgreich – nicht klar ob der Fehler beim PHP liegt oder bei dem Entwickler.

Die extern-Applikation bedient sich für die Bildbearbeitung der GD library. Da diese ab Version 1.6 keine GIFs mehr unterstützt, können keine GIFs manipuliert werden.

Verbesserungsvorschläge

fpassthru verbessern falls möglich.

Mehr Icons für die mime_types finden – derzeit nur einige wenige im ODIE vorhanden.

Falls beim content-type ändern einer externen Datei über die edit-Applikation gegangen wird, ist der Download wegen falscher Filelänge nicht mehr möglich. Dies sollte dadurch verhindert werden, dass binäre Dateien nicht mit der edit-Applikation bearbeitet werden können.

Page 62: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 62

5.20 Extern-index

Dateiame: system/extern-index

Programmierer: Kolm Autor: Kolm

Kurzbeschreibung: Darstellung externer Dateien

Verwendet: saveExtern(), cmpString(), getHeaderExtern(), deleteSnip(), i18n(), wiki_link(), getActiveUser(), getActiveProject(), form_href(), readAccess(), writeAccess(), getProjectPath(), isProjectMember(), getContentTypes()

Detailbeschreibung

Der extern-index ist ähnlich dem Snipindex ein Index der alle Snips anzeigt, die den content-type "extern" besitzen. Der Nutzen dieser speziellen Version ist das Anzeigen von Vorschaubilder bzw. Icons für die externen Snips. Außerdem können NUR über den extern-index Dateien raufgeladen werden.

Der Upload wird über saveExtern verarbeitet und die raufgeladene Datei wird somit ins ODIE aufgenommen. Falls die Datei nicht den content-type extern hat, wird der so entstandene Snip direkt dargestellt.

Die Daten die für die Anzeige benötigt werden, werden von getHeaderExtern geliefert und danach in der gewünschten Ansicht dem User präsentiert.

Paramter extern_display symbol, detail, /[0-9]+/

betrifft die Ansicht – Symbol, kompakte Liste oder Datei – Detail

extern_del Snipname der zu löschenden Datei

sort_key Sortierkriterium sort_dir Sortierreihenfolge (az, za)

Input POST:

extern Submit des Formulars HTTP_POST_FILESbeinhaltet Informationen zum raufgeladenen File

Page 63: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 63

Probleme

fpassthru ist nicht immer erfolgreich – nicht klar ob der Fehler beim PHP liegt oder bei dem Entwickler.

Die extern-index-Applikation bedient sich für die Bildbearbeitung der GD library. Da diese ab Version 1.6 keine GIFs mehr unterstützt, können keine GIFs manipuliert werden.

Verbesserungsvorschläge

fpassthru verbessern falls möglich.

Mehr Icons für die mime_types finden – derzeit nur einige wenige im ODIE vorhanden. Darstellung der Bilder in Originalgröße in eigenem Fenster (Neuaufbau des Index wird dadurch nicht mehr nötig)

Falls beim content-type ändern einer externen Datei über die edit-Applikation gegangen wird, ist der Download wegen falscher Filelänge nicht mehr möglich. Dies sollte dadurch verhindert werden, dass binäre Dateien nicht mit der edit-Applikation bearbeitet werden können.

Page 64: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 64

5.21 help

Dateiame: system/help

Programmierer: Pavlu, Seywerth Autor: Seywerth

Kurzbeschreibung: Die ODIE-Hilfe Application

Verwendet: read(), snipExists(), wiki_link(), setActiveProject(), getActiveProject()

Detailbeschreibung

Help ist eine Applikation die ein Hilfe-Fenster öffnet und eine gekürzte ODIE-Hilfe zu dem jeweiligen Thema darstellt. Steht für die aufgerufene Hilfe kein Hilfe-File zur Verfügung, wird ein Index der Hilfe-Files aufgelistet.

Parameter

keine

Page 65: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 65

Probleme

Da die Hilfe in einem eigenen Projekt angelegt ist, kann es zu Schwierigkeiten beim Wecheln in der Hilfe-Applikation kommen. Das kann einen Wechsel des aktiven Projekts zur Folge haben.

Verbesserungsvorschläge

Den Projekt-Wechsel verbessern.

Page 66: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 66

5.22 Importer

Dateiame: system/importer

Programmierer: Kolm Autor: Kolm

Kurzbeschreibung: Importiert alle Snips, die im Filesystem vorhanden sind – aber im Index nicht erfasst sind;

Verwendet: isProjectAdmin(), parseDate(), getExternSnips(), getSnipsByContentType(), getProjectMembers(), getActiveUser(), getActiveUser(), i18n(), wiki_link(), getHeader(), writeHeader(), getSnip(), setBacklinks(), form_href(), getContentTypes()

Detailbeschreibung

Mit dem Importer können alle Snips die im Filesystem vorhanden sind, aber im Index nicht, in den Index aufgenommen werden. Bei dieser "Aufnahme" in den Index kann auch gleich der content-type gesetzt werden.

Des weiteren kann man mit dem Importer den content-type von bereits importierten Snips setzen, falls dieser noch "unknown" ist.

Paramter importer_mode extern oder unknown

Input

POST: import Submit-Variable (name des submit-buttons) do_import Array mit den aus dem Form gewonnen

Informationen invert_checkboxes für die Umkehrung der Checkboxstati

Die Namen der Snips, die nicht im Index festgehalten sind bekommt man über getExternSnips() – die Snips mit content-type unknown über getSnipsByContentType().

Page 67: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 67

Probleme

keine

Verbesserungsvorschläge

Durch klicken auf die Überschriften (content-types) sollten alle Snips dieser Untergruppe (sprich bis zur nächsten Überschrift) auf diese gesetzt werden.

Page 68: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 68

5.23 Index

Dateiname: system/index

Programmierer: Kolm, Pavlu Autor: Kolm

Kurzbeschreibung: Liefert alle Projecte bzw. alle Snips im aktuellen Projekt

Verwendet: getSnipList(), deleteSnip(), getProjectList(), getProjectMemberCount(), getSnipCount(), getProjectCreator(), cmpString(), cmpDate(), parseDateTime(), getActiveProject(), i18n, deleteSnip(), form_href(), writeAccess(), getActiveUser(), readAccess()

Detailbeschreibung

Die Index-Applikation hat zwei Aufgaben. Einerseits die Anzeige aller Snips im aktuellen Projekt mit wichtigen Informationen, andererseits die Auflistung aller vorhandenen Projekte.

Paramter index_type ob projects oder snips angezeigt werden sollen delete für das Löschen von Snips – es wird der Snipname

über GET mitgeschickt sort_key Sortierkriterium sort_dir Sortierreihenfolge

Input

Projektindex: Es wird ein Array generiert dessen keys die Projektnamen sind. Pro Projekt wird ein weiteres Array mit folgenden keys generiert. • snip_count • member_count • creator

foreach(getProjectList() as $project_name) {

$list[$project_name] = Array( 'snip_count' => getSnipCount($project_name), 'member_count' => getProjectMemberCount($project_name) * 1, 'creator' => getProjectCreator($project_name) );

}

Page 69: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 69

Snipindex: Die Snipobjekte (ohne content) werden mittels getSnipList reingeholt. Bei der Auflistung sollen Calendar- und Commentsnips nicht aufscheinen.

$list = getSnipList('ignore-calendar','ignore-comment');

Probleme

keine

Verbesserungsvorschläge

keine

Page 70: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 70

5.24 keepAlive

Applikationsname keepAlive

Dateiname system/keepAlive

Kurzbeschreibung Erhält einen Snip-Lock am Leben

Erfordert lockSnip()

Verantwortliche zlabinger

Autor zlabinger

Beschreibung

Diese Applikation wird durch Einfügen des keepAliveScripts in einer Applikation periodisch aufgerufen. Technisch wurde dies durch einen javaScript gestützten Bildrequest gelöst.

Die Applikation versucht den lock auf das aktuelle Snip zu verlängern, um Concurrent Edit Probleme zu eliminieren. Sie wird vom edit-button eingebunden, wenn $odie_env[editing] auf true gesetzt ist.

Page 71: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 71

5.25 Kill-project

Applikationsname kill-project

Dateiname system/kill-project

Kurzbeschreibung Ermöglicht das Löschen von Projekten

Erfordert destroy_form(), isProjectCreator(), isProjectAdmin(), getActiveUser(), getActiveProject(), deleteDir(), setActiveProject(), prepareIndex(), i18n(), form_href()

Verantwortliche zlabinger, kolm

Autor zlabinger

Beschreibung

Diese Applikation ermöglicht das endgültige Löschen von ganzen Projekten. Alle Snips im Projekt gehen dabei verloren! Projekte können nur von ihrem Ersteller gelöscht werden.

Wenn diese Applikation ohne Parameter aufgerufen wird, wird der Benutzer zur Eingabe des Sicherheitscodes aufgefordert. Dabei handelt es sich um den MD5-String des Projektnamens. Diese Kontrolle soll das unbeabsichtigte Löschen von Projekten verhindern.

Nach der Eingabe und Betätigung des submit-Buttons wird das Projekt endgültig gelöscht.

Parameter

destroy_project auf ‚destroy_project’ gesetzt, wenn das aktuelle Projekt gelöscht werden soll

destruct_code der vom benutzer eingegeben Zerstörugnscode. Er muss mit dem MD5- String des Projektnamens übereinstimmen

Page 72: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 72

5.26 Link

Dateiame: system/link

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: Zum einfachen Wiki-Linken von zusammengesetzten Links

Verwendet: form_href(), getActiveProject(), getActiveUser(), getIcon(), i18n(), isProjectAdmin(), writeAccess()

Detailbeschreibung

Links auf Applikationen wie „projects“, die es physisch gar nicht gibt sondern nur eine weitere Parametrisierung von bestehenden Applikationen darstellen werden dem Benutzer über diese Applikation zum Wiki-Link Repertoire hinzugefügt. Auch Links, die dynamisches Verhalten zeigen müssen, werden mit dieser Applikation erstellt. Mögliche Werte für to sind help, projects, login, edit und new. Help, weil mehrere Zeilen JavaScript Code eingefügt werden müssen, um das Popup Fenster zu öffnen; Projects, weil es diese Applikation nicht gibt, stattdessen Index mit index_type=projects ausgeführt wird; Login, weil der Login Button nach der Anmeldung zum Logout wird und die beiden letzten, weil diese Links nur erscheinen, wenn der Benutzer über die nötigen Berechtigungen verfügt.

Paramter

$to Ziel des Linkens $pre Präfix, der nur eingefügt wird, wenn der Link

angezeigt wird $post Postfix, wie Präfix

Input

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 73: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 73

5.27 Linkall

Dateiame: system/linkall

Programmierer: Kolm Autor: Pavlu

Kurzbeschreibung: Erneuert die Link/Backlink Daten eines ganzen Projekts

Verwendet: form_href(),getActiveProject(), getActiveUser(), getBacklinks(), getSnipNames(), getProjectMembers(), getSnip(), i18n(), isProjectAdmin(), is_empty(), wiki_link(),writeHeader()

Detailbeschreibung

Nach erfolgreicher Prüfung ob der ausführende Benutzer ein Administrator des aktuellen Projekts ist, werden alle Snips aus dem Projektindex gelesen und jeweils setBacklinks() und writeHeader() aufgerufen. Die Projektindex ist soweit optimiert, dass die Daten erst nach dem kompletten Durchlauf auf die Platte geschrieben werden.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 74: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 74

5.28 Login

Applikationsname login

Dateiname system/login

Kurzbeschreibung Zeigt die Anmeldemaske an

Erfordert wiki_link(), form_href(), i18n(),

Verantwortliche zlabinger, kolm, pavlu

Autor zlabinger

Beschreibung

Diese Applikation zeigt die Anmeldemaske an, in der Benutzer ihren Benutzernamen und ihr Passswort eingeben, um sich am System zu identifizieren. Außerdem werden Links zum Registrieren, zum anonymen arbeiten und zur sendpass-Applikation angezeigt. Die eigentliche Abarbeitungslogik des Anmeldevorgangs befindet sich in odie.php.

Parameter

String target_mode Das Argument, dass der Funktion form_href() weitergereicht wird. Es bestimmt, zu welcher Applikation der Benutzer nach einer erfolgreichen Anmeldung gelangen soll.

Page 75: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 75

5.29 Logout

Applikationsname logout

Dateiname system/logout

Kurzbeschreibung Meldet einen Benutzer vom System ab

Erfordert setSessionData(), i18n(), setActiveProject(), wiki_link()

Verantwortliche zlabinger

Autor zlabinger

Beschreibung

Diese Applikation meldet einen Benutzer vom System ab. Es werden folgende Tätigkeiten ausgeführt:

• $session[username] und $odie_env[username] werden auf anybody gesetzt • das default-projekt wird als aktuelles projekt gesetzt

Nach Durchführung dieser Schritte ist der Benutzer nicht mehr am System angemeldet sondern arbeitet mit dem anybody account weiter.

Page 76: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 76

5.30 Meeting

Dateiame: system/meeting

Programmierer: Maczejka Autor: Maczejka

Kurzbeschreibung: Besprechungsprotokolle

Verwendet: writeMeeting(), showMeeting(), editMeetingForm(), showAllMeetings(), getSnip(), getActiveUser(), loackSnip(), writeAccess(), i18n()

Detailbeschreibung

Anzeigen einer Meetingübersicht, Detailansicht oder Bearbeitungsformular, je nach Inhalt von $what:

• „showall“ (default) Anzeige der Übersicht mit showAllMeetings() • „edit“ Schreibrechte sowie auf locked überprüfen. Wenn alles ok, dann

editMeetingForm(), sonst Fehlermeldung und showMeeting() • „write“ writeMeeting(), speichern des Eintrags • „snipreaderror“ Ausgabe einer Fehlermeldung, Fehler beim lesen des Snips • sonst: showMeeting()

Die Meeting-Daten besitzen folgenden Aufbau:

<!DEFINE meeting (present, master, begin, end, protocol)> <!DEFINE present (#PCDATA)> <!DEFINE master (#PCDATA)> <!DEFINE begin (#PCDATA)> <!DEFINE end (#PCDATA)> <!DEFINE protocol (#PCDATA)>

Paramter

$what Aktion

Input

keiner

Page 77: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 77

Probleme

keine

Verbesserungsvorschläge

keine

Page 78: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 78

5.31 Members

Dateiame: system/members

Programmierer: Kolm, Pavlu, Zlabinger Autor: Maczejka

Kurzbeschreibung: Ausgabe der Projektmitglieder

Verwendet: i18n(), getProjectMembers(),

Detailbeschreibung

Projektmitglieder werden mit getProjectMembers geholt und anschliessend formatiert und geordnet nach Ersteller, Administrator und Benutzer in einer HTML- Tabelle ausgegeben.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 79: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 79

5.32 Menu-App

Dateiame: system/menu-app

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe des Applikationsmenüs

Verwendet: form_href(), getIcon

Detailbeschreibung

Ausgegeben werden Links auf die folgenden Applikation samt icon: • Today • Todo • Calendar • Meeting • Deleted

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 80: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 80

5.33 Menu-Edit

Dateiame: system/menu-edit

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe des Bearbeiten- Menüs

Verwendet: form_href(), getIcon(), editable(), isProjectMember(), getActiveUser()

Detailbeschreibung

Ausgegeben werden Links und Icons für Bearbeiten, read-only, undo und new, je nach dem in welcher Ansicht sich der Benutzer befindet. Zusätzlich wird hier das keepAliveScript aufgerufen.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 81: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 81

5.34 Menu-Overview

Dateiame: system/menu-overview

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe des Standardmenüs

Verwendet: form_href(), getIcon()

Detailbeschreibung

Ausgegeben werden Links auf die folgenden Applikation samt icon: • index • extern-index • start • search

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 82: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 82

5.35 Menu-Project

Dateiame: system/menu-project

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe des Projektmenüs

Verwendet: form_href(), getIcon()

Detailbeschreibung

Ausgegeben werden Links auf die folgenden Applikation samt icon: • Index type=projects

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 83: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 83

5.36 Menu-Sep

Dateiame: system/menu-sep

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe des Menüseperators

Verwendet: getIcon()

Detailbeschreibung

Der Menüseperator wird ausgegeben

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 84: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 84

5.37 Menu-User

Dateiame: system/menu-user

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe des Benutzermenüs

Verwendet: form_href(), getIcon()

Detailbeschreibung

Ausgegeben wird ein Link auf „preferences“ sowie auf die Applikation „link“ mit den Parametern „to=login“ und „to=admin“.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 85: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 85

5.38 Menubar

Dateiame: system/menu-bar

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe aller Menüs

Verwendet: wiki_link()

Detailbeschreibung

Folgende Menü- Applikationen werden mit wiki_link hineingelinkt: • menu-overview • menu-project • menu-app • menu-user • menu-edit

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 86: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 86

5.39 Mini Calendar

Dateiame: system/mini-calendar

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe eines kleinen Kalenders

Verwendet: i18n(), form_href(), getSnipDates(), miniHeader(), miniFooter(), getActiveDate(), getMonthList(), getDayList()

Detailbeschreibung

Es werden alle Snipdaten geholt. Ein kleiner Kalender in HTML- Tabellen wird ausgegeben. Jeder Tag ist ein Link auf day-summary dieses Tages. Wenn es Snips zu diesem Tag bereits gibt, wird der Eintrag fett ausgegeben.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 87: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 87

5.40 Mini Index

Dateiame: system/mini-index

Programmierer: Pavlu, Kolm Autor: Maczejka

Kurzbeschreibung: Ausgabe einer unformatierten Liste aller Snips

Verwendet: i18n(), form_href(), getSnipNames(), miniHeader(), miniFooter()

Detailbeschreibung

Mit getSnipNames werden alle Snips im aktuellen Projekt geholt. Diese werden anschliessend ungeordnet durch Beistriche getrennt als Links auf den entsprechenden Snip ausgegeben.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 88: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 88

5.41 Mini Projects

Dateiame: system/mini-projects

Programmierer: Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe einer unformatierten Liste aller Projekte

Verwendet: i18n(), form_href(), getProjectlist(), miniHeader(), miniFooter()

Detailbeschreibung

Mit getProjectList werden alle Projekte geholt. Diese werden anschliessend ungeordnet durch Beistriche getrennt als Links auf das entsprechende Projekt ausgegeben.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 89: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 89

5.42 plain

Dateiame: system/plain

Programmierer: Pavlu, Zlabinger Autor: Seywerth

Kurzbeschreibung: Applikation zur Eingabe von normalem Text

Verwendet: read(), wiki_link()

Detailbeschreibung

Plain ist eine Applikation die es ermöglicht, normalen Text der ohne besondere Formatierung dargestellt werden soll, einzugeben.

Parameter

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 90: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 90

5.43 Preferences

Dateiame: system/preferences

Programmierer: Kolm, Zlabinger Autor: Maczejka

Kurzbeschreibung: Ausgabe eines Eigenschaftsformulars/ Speichern von Eigenschaften

Verwendet: i18n(), getInterfaces(), saveInterfaces(), saveLanguage(), form_input(), loadDictionary(), loadLangs()

Detailbeschreibung

Ausgabe eines Formulars zur Eingabe aller Benutzereigenschaften (Name, Interface, Sprache, ... ). Wenn die Formulardaten gesetzt sind, werden diese im Userfile gespeichert, nachdem ein Sanity- check durchgeführt wurde.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 91: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 91

5.44 project-not-found

Dateiame: system/project-not-found

Programmierer: Pavlu Autor: Seywerth

Kurzbeschreibung: Das Ausgewähltes Projekt wurde nicht gefunden

Verwendet: i18n(), wiki_link()

Detailbeschreibung

Liefert eine Ausgabe, da das ausgewählte Projekt nicht gefunden wurde.

Parameter

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 92: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 92

5.45 Quick-search

Dateiame: system/quick-search

Programmierer: Pavlu Autor: Kolm

Kurzbeschreibung: gibt das Formular für die Schnellsuche aus

Verwendet: -

Detailbeschreibung

Diese Applikation ist mit der Ausgabe des quick-search Formulars beauftragt. Dieses Formular kann mit Hilfe des Linkers in jedes Interface an einer beliebigen Stelle eingefügt werden.

Input

Es wird keinerlei Input benötigt, da sich die Applikation auf die Ausgabe eines Formulars beschränkt.

Zusätzlich muss die Variable app auf search-results gesetzt werden, denn diese Applikation führt die eigentliche Suche erst durch und zeigt die Ergebnisse an.

Probleme

keine

Verbesserungsvorschläge

keine

Page 93: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 93

5.46 Raw Index

Dateiame: system/raw-index

Programmierer: Kolm, Pavlu Autor: Maczejka

Kurzbeschreibung: Ausgabe einer unformatierten Liste aller Snips

Verwendet: i18n(), form_href(), getSnipNames(), miniHeader(), miniFooter()

Detailbeschreibung

Mit getSnipNames werden alle Snips im aktuellen Projekt geholt. Diese werden anschliessend ungeordnet durch Beistriche getrennt als Links auf den entsprechenden Snip ausgegeben.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 94: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 94

5.47 Raw Read

Dateiame: system/raw-read

Programmierer: Kolm Autor: Maczejka

Kurzbeschreibung: Unformatierte Ausgabe eines Snips

Verwendet: read()

Detailbeschreibung

Der Snip wird mit read() gelesen und einfach so wie er ist ausgegeben.

Paramter

keine

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 95: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 95

5.48 rights

Dateiame: system/rights

Programmierer: Pavlu Autor: Seywerth

Kurzbeschreibung: Die Rechte-Vergabe-Appikation vom ODIE

Verwendet: getProjectList(), getUserList(), joinUsersAndGroups(), printSelect(), addList(), remList(), form_href(), writeAccess(), i18n(), readAccess(), setRights(), checkReadAccess()

Detailbeschreibung

Rights ist die Applikation mit der man im ODIE jedem User Rechte an bestimmten Snips geben kann. Weiters können auch ganzen Gruppen Rechte gegeben oder genommen werden. Es gibt Schreib- und Leserechte.

Parameter POST:

submit_write entspricht ‘-->’ falls rechte entzogen werden und.. submit_read ‘<--‘ falls rechte hinzugefügt werden

Probleme

keine

Verbesserungsvorschläge

keine

Page 96: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 96

5.49 Search

Dateiame: system/search

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: erzeugt ein Formular zum Suchen in verschiedenen Modi

Verwendet: i18n()

Detailbeschreibung

Die Applikation Search dient der Suche nach Snips im aktuellen Projekt. Es wird ein Formular ausgegeben, welches das Suchen in verschiedenen Modi ermöglicht.

Input search_keywords die Schüsselwörter nach denen gesucht wird. search_method wie/wo gesucht werden soll

(title, keywords oder fulltext sind möglich)

Zusätzlich muss die Variable app auf search-results gesetzt werden, denn diese Applikation führt die eigentliche Suche erst durch und zeigt die Ergebnisse an.

Probleme

keine

Verbesserungsvorschläge

keine

Page 97: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 97

5.50 Search-results

Dateiame: system/search-results

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: zeigt Suchergebnisse an

Verwendet: getSnipsByTitle(), getSnipsByFullText(), getSnipsByKeywords(), read(), getEditHandler(), wiki_link(), i18n(), form_href()

Detailbeschreibung

Search-Results führt eine Suche nach Snips im aktuellen Projekt durch und zeigt die Ergebnisse an.

Input

search_method gibt an wo gesucht werden soll. Mögliche Werte sind title , keywords und fulltext. Ein weiterer möglicher Wert ist quicksearch, der logisch keywords entspricht jedoch wird bei quicksearch zusätzlich die genaueste Entsprechung gleich geöffnet und dargestellt. Fehlt dieser Parameter, wird title angenommen.

search_keywords vom Benutzer eingegebener String, der angibt wonach gesucht werden soll.

Funktionsweise

Im ersten Teil der Applikation werden die Eingabedaten geprüft und die Sniplisten erzeugt. Je nach Suchmethode wird dazu die Funktion getsnipsbytitle, getsnipsbykeywords oder getsnipsbyfulltext verwendet.

Anschließend wird - wenn wir mit quicksearch suchen - der genaueste Treffer gesucht, gelesen und dargestellt.

Dann werden alle anderen Snips als Linkliste dargestellt und schließlich die Suchmaske inkludiert, um dem Benutzer eine neue Suche zu ermöglichen.

Page 98: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 98

Weitere Filter

Um ODIE mit weiteren Suchmechanismen auszustatten, muss man in search und search-results den Wertebereich für search-method um die zusätzlich gewünschten Filter erweitern. Und im core Verzeichnis einen zusätzlichen snip-list Generator implementieren.

Probleme

keine

Verbesserungsvorschläge

keine

Page 99: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 99

5.51 sendpass

Applikationsname sendpass

Dateiname system/sendpass

Kurzbeschreibung Schickt ein neues Passwort

Erfordert question(), formname(), getActiveUser(), getUserData(), sendPass(), setUserData(), i18n()

Verantwortliche kolm, pavlu, zlabinger

Autor zlabinger

Beschreibung

Diese Applikation hilft Benutzern weiter, die Ihr Passwort vergessen haben. Wenn sie ohne Parameter aufgerufen wird, erscheint eine Eingabemaske für de Benutzernamen.

Nach dem Aufruf mit sendpass_username gesetzt, wird dem Benutzer die Passwort Erinnerungsfrage gestellt. Wurde keine eingegeben, wird sogleich das Passwort an die e-mail Adresse des Benutzernamens übermittelt. Jeder Benutzer sollte immer eine Frage angeben, da sonst jeder das Passwort ändern kann.

Wenn die sendpass_answer richtig angegeben wurde, wird das Passwort zugesendet.

Parameter

sendpass_username identifiziert den Benutzer sendpass_answer die antwort auf die reminder_question

Page 100: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 100

5.52 snip-info

Dateiame: system/snip-info

Programmierer: Kolm Autor: Seywerth

Kurzbeschreibung: Ausgabe eines Infos zu einem Snip

Verwendet: miniHeader(), miniFooter(), form_href(), i18n()

Detailbeschreibung

Snip-info ist eine Applikation die den Namen des Erstellers und das Erstelldatum zu einem Snip ausgibt. Weiters wird der content-type und der Lesezähler des Snips ausgegeben.

Parameter

keine

Probleme

<nobr> ist schlecht.

Verbesserungsvorschläge

keine

Page 101: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 101

5.53 Snip-list

Dateiame: system/snip-list

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: gibt eine Liste von Snips aus

Verwendet: getSnipsByPopularity(), getSnipsByModificationDate(), getSnipsByCreationDate(), getMissingSnips(), getUnlinkedSnips(), getSnipNames(), getSnipsByTitle(), i18n(), form_href(), snipExists()

Detailbeschreibung

Sämtliche Listen von Snips im ODIE werden mit dieser Applikation dargestellt. Die Inhalte der einzelnen Listen variieren nur durch die Unterschiedlichen snip-list Generatoren im core Verzeichnis (beispielsweise getsnipsbycontenttype, getsnipsbytitle,...)

Input crit Suchkriterium, welcher Snip-list Generator zu

Erstellung der Liste verwendet werden soll. Default ist name.

sort Sortierrichtung. Entweder 'az' oder 'za'. Ergänzt crit. format Ob die Liste compact oder full angezeigt werden soll. In der compact Ausführung werden nur die ersten 10 Snips angezeigt, alle weiteren sind über den more Link erreichbar.

Funktionsweise

Als erstes wird crit untersucht. Welcher Snip-list Generator eingesetzt werden soll und welche Überschrift die Liste bekommt wird herausgefunden. Je nachdem, ob format compact ist oder nicht, bekommt der Sniplist Generator ein Limit, hier 10.

Mögliche Werte für crit sind: • title (Default) • unlinked • missing • most-popular • modified • created

Vom Sniplist Generator kommt entweder ein Array oder ein Hash zurück.

Page 102: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 102

Array Jeder Wert wird ein Link auf den angegebenen Snip

Hash Die Schüssel des Hashes stellen die Snipnamen dar und werden zu links. Zusätzlich wird vom Sniplist Generator noch ein Wert geliefert. Dieser wird anschließend an den Link ausgegeben. (zb. getmissingsnips liefert eine Liste der Snips, in denen die Missing Snips verlinkt werden)

Erweiterungen an der Sniplist Im switch($crit) weitere case Einträge vornehmen - der Rest kann unverändert bleiben. Alle Weiteren Sniplisten werden genauso dargestellt und automatisch verlinkt.

Probleme

keine

Verbesserungsvorschläge

keine

Page 103: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 103

5.54 snip-not-found

Dateiame: system/snip-not-found

Programmierer: Pavlu Autor: Seywerth

Kurzbeschreibung: Das Ausgewähltes Snip wurde nicht gefunden

Verwendet: i18n()

Detailbeschreibung

Liefert eine Ausgabe, da das ausgewählte Snip nicht gefunden wurde.

Parameter

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 104: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 104

5.55 Snip-list

Dateiame: system/snip-toolbar

Programmierer: Pavlu, Kolm Autor: Kolm

Kurzbeschreibung: erzeugt eine Liste grundlegender Snipoperationen

Verwendet: editable(), getHeader(), writeAccess(), form_href(), i18n()

Detailbeschreibung

Diese Applikation erzeugt je nach Zugriffsrechte Links für diverse Operationen die den angezeigten Snip betreffen. Dies betrifft das Ändern der Zugriffsrechte, das Löschen des Snips und die Auswahl der Ausgabeformate (Renderer).

Input Es wird lediglich die globale Variable snip_title benötigt.

Funktionsweise

Zunächst wird der Header des angezeigten Snips geholt um die Prüfung der Zugriffsrechte vorzunehmen. Bei einigen Applikationen gibt es ebenfalls eine Einschränkung der Funktionalitäten, die das Aussehn der Ausgabe bei der snip-toolbar beeinflussen.

Probleme

keine

Verbesserungsvorschläge

keine

Page 105: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 105

5.56 Start

Dateiname: system/start

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: Zeigt die Startseite des aktuellen oder Default-Projekts

Verwendet: getActiveProject(), getActiveUser(), i18n(), wiki_link()

Detailbeschreibung

Wird start im Projekt default ausgeführt – die Startseite des ODIE – werden nicht Informationen über die unmittelbaren Änderungen in diesem Projekt gezeigt (wie es bei allen anderen Projektstartseiten der Fall ist), sondern eine Übersicht über alle Projekte und die aktuell angemeldeten Benutzer, sowie einige allgemeine Informationen über das ODIE. Die Applikation entscheidet je nach der Rückgabe von getActiveProject() und führt dann unterschiedliche wiki_link() Aufrufe durch.

Paramter

keine

Input

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 106: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 106

5.57 STX

Dateiame: system/stx

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: Stellt ein STX Dokument ard

Verwendet: stx_parse(), pageElement(), wiki_link(), read()

Detailbeschreibung

Liest das angegebene STX-Snip, schickt es durch den STX-Parser und anschließend durch den Wiki-Linker. Das entstandene Markup-Dokument wird wenn draw_box auf TRUE gesetzt ist mit, andernfalls ohne den Seitenrahmen des aktuellen Interfaces ausgegeben.

Paramter

boolean $draw_box ob die Pageelemente ausgegeben werden sollen boolean $display_comments ob die Kommentare anschlissend an das

Dokument ausgegeben werden sollen string $snip_title der Name des Snips

Input

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 107: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 107

5.58 Today

Dateiame: system/today

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: Applikation zur Verwaltung von Weblog-Einträgen

Verwendet: form_href(), getSnipsByModificationDate(), i18n(), makeIndexName(),snipExists(), wiki_link(), writeAccess()

Detailbeschreibung

Vom aktuellen Datum wird 28 Tage zurückgegangen und geprüft, ob das Snip das den Namen dieses Tages (in der Form DATE_FORMAT) trägt existiert. Die 10 aktuellsten Einträge werden angezeigt. Wird im angegebenen Zeitrahmen von 28 Tagen kein einziger Weblog-Eintrag gefunden, werden auch keine älteren angezeigt.

Paramter

keine

Input

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 108: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 108

5.59 Today-List

Dateiame: system/today-list

Programmierer: Pavlu Autor: Pavlu

Kurzbeschreibung: Listet alle Snips eines angegebenen Tags

Verwendet: i18n(), getSnipsByModificationDate(), wiki_link()

Detailbeschreibung

Es werden alle Snips, die an dem in $snip_title angegebenen Datum bearbeitet wurden, von getSnipsByModificationDate() geholt und als kommaseparierte Liste von Links auf die entsprechenden Snips ausgegeben.

Paramter

keine

Input

$snip_title einziger Input für diese Applikation kommt über $snip_title

Probleme

Lösung ist auf die Anforderungen von der Applikation Today zugeschnitten. Das keine Parametrisierung möglich ist, ist ebenfalls ein großer Nachteil.

Verbesserungsvorschläge

Funktion sollte nicht wiki_link() verwenden um die Links zu den Snips herzustellen – eine form_href() Lösung wäre um deutliches performanter. Abgesehen davon, sollte für die Ausgabe einfacher Sniplisten die fertige Applikation raw-index verwendet werden, die in diesem Fall um einen weiteren Selektionstyp ergänzt werden müsste – das Bearbeitungsdatum.

Page 109: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 109

5.60 Todo

Dateiame: system/todo

Programmierer: Kolm Autor: Kolm

Kurzbeschreibung: Die Aufgabenverwaltung des ODIE

Verwendet: getTodo(), saveTodo(), delTodo(), cmpString(), cmpDate(), parseDate(), getSnipsByContentType(), writeAccess(), getActiveUser(), getActiveProject(), lockSnip(), i18n(), form_href(), snipErrorMsg(), editTodo(), wiki_link(), strSplit()

Detailbeschreibung

Die ODIE Aufgabenverwaltung, oder auch kurz to-do list genannt, ermöglicht es Tasks und wichtige Tätigkeiten zu dokumentieren und zu verwalten. Man hat somit eine Übersicht über alle offenen bzw. erledigten Aufgaben und ihre Fälligkeit.

Die XML Struktur der To-Do Listen Applikation hat folgenden Aufbau:

<!DEFINE todo (task*)> <!DEFINE task (status, priority, name, desc, due, end)> <!DEFINE status ('pending', 'done')> <!DEFINE priority (1,2,3,4,5)> <!DEFINE name (#PCDATA)> <!DEFINE desc (#PCDATA)> <!DEFINE due (#PCDATA)> <!DEFINE end (#PCDATA)>

Paramter todo_display all oder pending

alle Tasks oder nur die nicht erledigten anzeigen todo_del eine checksum aus diversen Taskeigenschaften

zum Löschen eines Tasks sort_key Sortierkriterium sort_dir Sortierreihenfolge (az, za)

Input POST:

todo_save Formular wurde abgeschickt todo_form der Inhalt des Formulars

Bei der Gesamtübersicht werden die Tasks mit Hilfe von getSnipsByContentType & getTodo geholt – bei Einzelansicht mit getTodo (getSnip & parsen).

Page 110: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 110

Probleme

<nobr> ist nicht XHTML konform – wird aber benötigt damit die Datumsangaben nicht umgebrochen werden.

Die Rückgabewerte einiger To-Do Funktionen sind nicht sehr übersichtlich.

Verbesserungsvorschläge

Besseres <nobr> finden. Funktionen überdenken und rewriten.

Page 111: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 111

5.61 Tree

Dateiame: system/tree

Programmierer: Maczejka Autor: Maczejka

Kurzbeschreibung: Ausgabe einer Snip- Baumstruktur

Verwendet: i18n(), getTree(), formatTree(), form_href(), getActiveProject()

Detailbeschreibung

Eine Baumstruktur zum aktuellen Snip wird mit getTree gelesen und mit FormatTree ausgegeben. Sollte der Snip nicht vorhanden sein, wird eine Fehlermeldung ausgegeben. Hat der Snip keine Kinder, wird das bemerkt. Mit $open wird eine List übergeben, die alle offenen Äste repräsentiert. Diese Liste wird an formatTree() übergeben.

Paramter

Open snipbäume, die geöffnet sind

Input

keiner

Probleme

keine

Verbesserungsvorschläge

keine

Page 112: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 112

5.62 unknown

Dateiame: system/unknown

Programmierer: Pavlu Autor: Seywerth

Kurzbeschreibung: Content-type Auswahl

Verwendet: wiki_link()

Detailbeschreibung

Liefert eine Auswahl, um den Content-type auszuwählen da das ausgewählte Snip den Content-type ’unknown’ hatte.

Parameter

keine

Probleme

keine

Verbesserungsvorschläge

keine

Page 113: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 113

5.63 users

Dateiame: system/users

Programmierer: Kolm, Pavlu Autor: Seywerth

Kurzbeschreibung: Ausgabe einer Userliste

Verwendet: getUserList(), cmpString(), isOdieAdmin(), setProjectMembers(), getActiveUser(), getProjectMembers(), setUserData(), i18n(), form_href()

Detailbeschreibung

Gibt eine Userliste aus. Diese kann auf verschiedene Arten Sortiert werden. Weiters können User gelöscht werden.

Parameter GET:

kill Username der gelöscht werden soll display entweder 'active_only' oder ungesetzt sort_key ein Sortierkriterium sort_dir die Sortierreihenfolge (az oder za)

Probleme

keine

Verbesserungsvorschläge

keine

Page 114: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 114

6 Funktionsüberblick (kol)

6.1 Aufgabenverwaltung

delTodo löscht einzelne Tasks

editTodo erzeugt eine Zeile zum Bearbeiten

getTodo liefert ein Array von Tasks aus den XML-Daten

saveTodo Auswertung der Checkboxzustände, hinzufügen & ändern neuer Tasks

6.2 Ausgabe

form_input gibt eine HTML-input-form laut Text, Name und Wert aus

printSelect stellt eine <SELECT> Liste dar

6.3 Besprechungsprotokoll

editMeetingForm zeigt ein Formular zum Bearbeiten eines Besprechungsprotokolls

getMeetingList liefert eine Liste aller Besprechungsprotokolle im aktuellen Projekte

meetingSelectList erzeugt ein <SELECT> für das Besprechungsprotokoll

showAllMeetings zeigt ein Liste aller vorhandenen Besprechungsprotokolle an

showMeeting zeigt ein Besprechungsprotokoll an

writeMeeting speichert ein Besprechungsprotokoll

Page 115: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 115

6.4 Datums- & Kalenderfunktionen

curDate überprüft ob das angegeb. Datum in einem Bereich zum akt. liegt

getActiveDate liefert/überprüft das akt./angegebene Datum als timestamp

getActiveMonth liefert ein Array mit den aktuellen Datumsdaten

getDayInfo liefert das angegebene Snip und kann auch zum löschen von diesem verwendet werden

getDayList liefert ein Array mit den Datumsdaten des akt. Monats

getMonthList liefert ein Array mit den Monatsnamenkürzel laut language

parseDate liefert aus einem Datums-String ein parseDateTime-Array

parseDateTime liefert aus einem Datums-Zeit-String ein parseDateTime-Array

restOfTime gibt einen String mit der Dauer der angegebenen Zeitangaben zurück

saveEvent speichert ein Event (Calendar) in das zugehörige cal-Snip

6.5 Hierarchiedarsteller

formatTree formatiert die Ausgabe einer Baumstruktur

getTree erstellt eine Snip-Baumstruktur

6.6 Interfacing

getIcon liefert ein Icon für das aktuelle Interface

getInterfaces liefert eine Liste aller vorhandenen Interfaces

miniElement liefert ein Controlpanel Element des aktuellen Interfaces

miniFooter liefert den Controlpanel-Footer des aktuellen Interfaces

miniHeader liefert den Controlpanel-Header des aktuellen Interfaces

miniRow liefert eine Zeile im Controlpanel des aktuellen Interfaces

pageElement liefert ein Seitenelement des aktuellen Interfaces

saveInterface setzt das gewünschte Interface

Page 116: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 116

6.7 Internationalisierung

changeDictionary regelt das Ändern bzw. das Hinzufügen eines Spracheintrages

createNewLanguage fügt eine neue Sprache in das Dictionary ein

deleteLanguage löscht eine Sprache aus dem Dictionary

dictToString wandelt eine Dictionary-Struktur in eine Arraydefinition beschreibender Strings um

focusitem gibt dem zu bearbeiteten Element den Fokus (js)

i18n übersetzt ein Wort bzw. einen String

killDictionary löscht einen Spracheintrag aus einem Dictionary

loadDictionary lädt eine Dictionary-Struktur aus einer Datei

loadLangs liefert alle Sprachen in einem Dictionary zurück

newLanguageForm zeigt ein Formular zur Erstellung einer neuen Sprache an

saveLanguage setzt die gewünschte Sprache

showWordList zeigt ein Wörterbuch im HTML Format an

translate Übersetzung eines Wortes

updateDictionary Ändern oder Hinzufügen von Wortdaten in einem Dictionary

writeDictionary schreibt die Dictionary-Struktur in eine Datei

6.8 Kommentarverwaltung

getCommentSnips liefert alle vorhandenen Commentsnips zum angegebenen Snip

isCommentSnip liefert TRUE zurück falls das angegebene Snip ein Commentsnip ist

Page 117: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 117

6.9 Linker

getBacklinks liefert alle Backlinks zum angegebenen Snip

getKeywords liefert Keywords und Links des angegebenen Snips

removeLinkerSymbols entfernt Linkersymbole aus einem String

setBacklinks setzt Links, Keywords und Backlinks des referenzierten Snips

unsetBacklinks löscht nicht mehr gültige Backlinks

wiki_link durchsucht einen Text nach Linkersymbolen und ersetzt diese gegebenfalls durch Links bzw. fügt ein benötigtes Dokument ein

wiki_replace wird von wiki_link aufgerufen und führt die eigentliche Ersetzung durch

6.10 Projektverwaltung

controlPanel zeigt die Einstellungen für ein Projekt an

createProject erstellt ein neues Projekt

destroy_form erzeugt ein Formular zur Löschung eines Projekts

getActiveProject liefert das aktuelle Projekt

getProjectCreator liefert den Ersteller des angegebenen Projekts

getProjectList liefert eine Liste aller vorhandenen Projekte

getProjectMemberCount liefert die Anzahl der Projektmitlieder im angegebenen Projekt

getProjectMembers liefert die Namen aller Projektmitglieder

getProjectPath liefert den Pfad zum aktuellen Projekt

setActiveProject setzt das aktuelle Projekt

setProjectMembers speichert die Projektmitglieder

Page 118: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 118

6.11 Rechteverwaltung

checkReadAccess führt die Prüfung auf Leserecht einer in-memory Rights-Struktur durch

checkWriteAccess führt die Prüfung auf Schreibrecht einer in-memory Rights-Struktur durch

getRights liefert die Zugriffsrechte eines Snips

joinUserAndGroups verbindet User- und Gruppenlisten

mayEdit ein Alias auf writeAccess

readAccess liefert TRUE wenn Leserecht vorhanden ist

schleimer schickt keepalive-messages während der Benutzer ein Snip bearbeitet (für Concurrent Edits)

setRights setzt die Zugriffsrechte eines Snips

writeAccess liefer TRUE wenn Schreibrecht vorhanden ist

6.12 Renderer

false Debugfunktion

getLengths berechnet die Breite von Tabellenelementen pro Spalte

render Grundfunktion zum umwandeln von einem Format ins Andere

render_rtf Ausgabe einer XML Struktur in RTF-Format

render_html Rendern ins HTML-Format

render_plain Rendern ins Plaintext-Format

rtf_odie_header Ausgabe eines RTF-Headers für ein Dokument

rtf_odie_close Ausgabe eines RTF-Footers für ein Dokument

to_blocktext Blocksatzmacher

trimall entfernt alle Whitespace-Characters vom Anfang und Ende eines Strings

true Debugfunktion

Page 119: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 119

6.13 Simple DB

addIndexEntry legt einen Indexeintrag für ein Snip an

deleteSnip löscht ein Snip

getHeader liest Snipinformationen aus dem Index

getSnip liest ein Snip und liefert ein Snipobjekt zurück

isBadName überprüft ob ein Name verwendet werden darf

lockSnip sperrt ein Snip

makeIndexName plattformabhängige Funktion zur CaseSensitivity

myfopen ein erweitertes, plattformabhängiges fopen (mit Filelocking)

myfopen_loop Filelocking auf Win32

myfclose schließt eine Datei, die mit myfopen geöffnet wurde

prepareIndex lädt den Projektindex in den Speicher

read_index liest einen Projektindex ein

read liefert das gewünschte Snipobjekt zurück

serializeFile speichert ein Array in eine Datei

unlockSnip gibt ein vorher mit lockSnip() gesperrtes Snip wieder frei

unserializeFile liest ein Array aus einer Datei

write schreibt einen Snipeintrag

write_index schreibt die Indexdatei eines Projekts

writeHeader schreibt Snipinformationen in den Projektindex

writeSnip schreibt ein Snipobjekt auf die Festplatte

Page 120: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 120

6.14 Sessionmanagement

getSessionData liefert die Sessiondaten zu einer angegebenen Session ID

getSessionId liefert die SessionId der aktiven Session

setSessionData setzt die Sessiondaten der aktuellen Session

6.15 Sniplisten

getExternSnips liefert eine Liste aller nicht indizierten Snipnamen

getMissingSnips liefert eine Liste jener Snipnamen, die häufig verlinkt sind, jedoch nicht existieren

getSnipList liefert ein Array von Snipobjekten

getSnipNames liefert eine Liste von Snipnamen

getSnipsByContentType liefert eine Liste von Snipnamen nach angegebenen Inhaltstyp

getSnipsByCreationDate liefert eine Liste von Snipnamen nach dem Erstellungsdatum

getSnipsByCreator liefert eine Liste von Snipnamen nach dem Ersteller

getSnipsByFullText liefert eine Liste von Snipnamen nach Volltextsuche

getSnipsByKeywords liefert eine Liste von Snipnamen nach Schlüsselwortsuche

getSnipsByModificationDate liefert eine Liste von Snipnamen nach dem Bearbeitungsdatum

getSnipsByPopularity liefert eine Liste von Snipnamen nach Popularität

getUnlinkedSnips liefert eine Liste von Snipnamen nicht verlinkter Snips

Page 121: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 121

6.16 Snipverwaltung

createForm erzeugt ein Formular zum Erstellen von Snips

defaultSnip erzeugt ein Snipobjekt mit Initialwerten

getContentTypes liefert eine Liste aller vorhandenen Inhaltstypen

getEditHandler liefert den edit-handler zum angegebenen Snip

getSnipCount liefert die Anzahl der Snips im angegebenen Projekt

getSnipDates liefert das Bearbeitungsdatum aller Snips im aktuellen Projekt

snipErrorMsg füllt ein Snipobjekt mit einer Fehlermeldung

snipExists liefert TRUE falls das angegebene Snip im Index vorhanden ist

6.17 Structured Text

getLineCount liefert die Anzahl physicher Zeilen in einer logischen Zeile

linkUrls ersetzt Text-Urls mit HTML <A> Tags

stx_parse zerlegt übergebenen String in logische Zeilen, führt STX Ersetzung durch und liefert einen String mit HTML Symbolen.

stx_rep führt einzeilige STX Ersetzungen durch (Unterstreichung, ...)

styleBlock führt STX Ersetzungen eines logischen Blocks durch

to_s wandelt ein Array physischer Zeilen (eine logische Zeile) in eine physische Zeile um

Page 122: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 122

6.18 Usermanagement

createUser erzeugt einen Usereintrag in der User-DB

formname zeigt das Formular zur Namensbekanntgabe an

getActiveUser liefert den aktiven Benutzer

getUserData liefert die Benutzerdaten des angegebenen Benutzers

getUserList liefert eine Liste von allen Benutzern

getValidUsername liefert einen validen Benutzername, falls der angegebene nicht valid ist

isOdieAdmin liefert TRUE falls der angegebene Benutzer ODIE-Administrator ist

isProjectAdmin liefert TRUE falls der angegebene Benutzer Administrator des aktuellen Projekts ist

isProjectCreator liefert TRUE falls der angegebene Benutzer Ersteller des aktuellen Projekts ist

isProjectMember liefert TRUE falls der angegebene Benutzer Mitglied im aktuellen Projekt ist

question gibt ein Formular für die Reminderquestion aus

sendpass schickt ein Passwort an einen E-mail Adresse

setUserData schreibt die Benutzerdaten des angegebenen Benutzers

6.19 Utils

check_email liefert TRUE falls die angegeben email-Adresse valid ist

cleanPath entfernt ../ aus einer Pfadangabe und liefert den gesäuberten Pfad

cmpDate ein benutzerdefinierter Sortieralgorithmus für zweistufige Arrays (Dates)

cmpString ein benutzerdefinierter Sortieralgorithmus für zweistufige Arrays (Strings)

deleteDir löscht ein Verzeichnis mit seinem gesamten Inhalt

form_href erzeugt einen ODIE-Link mit den angegebenen Parametern

getTimeSpanString liefert die Differenz zweier Timestamps als String

htmlencode ein modifiziertes urlencode

htmlize ersetzt reservierte HTML-Zeichen in jeder Arrayebene

Page 123: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 123

make_seed erzeugt einen zeitabhängigen Random-Wert

parseOdieUrl zerlegt die Urlzeile und liefert Projekt, Snip und Applikation

strSplit trennt einen String nach angegebenem Trennzeichen. Zurückgeliefert wird immer ein Array (im Gegensatz zum herkömmlichen split())

trace Debugausgabe beliebiger Werte

6.20 Verwaltung externer Dateien

getHeaderExtern liefert Informationen aller externen Dateien des aktiven Projekts

getSizeString liefert die Größe in Byte, KByte oder MByte

saveExtern speichert externe Dateien und sorgt für den Indexeintrag des Weiteren wird bei Bildern des Typs png & jpg ein Thumbnail erzeugt und abgelegt

6.21 XML – Parser

countOpenTags zählt die Anzahl bestimmter öffnender XML-Tags in einem String

couTime Debugfunktion (Zeitnehmung)

do_parse parsen eines XML-Strings

findTagEnd liefert die Stringposition vom Ende einer Tagstruktur

getTag Auflösen eines Strings in eine XML-Struktur

parse schafft die Rahmenbedingungen für do_parse

rausTime Debugfunktion (Zeit ausgeben)

unparse eine XML-Struktur wird wieder in einen String umgewandelt

6.22 Sonstiges

odie_help öffnet ein Popup-Fenster für die Kontexthilfe

Page 124: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 124

7 Funktionsreferenz

changeDictionary 128

check_email 130

checkReadAccess 132

checkWriteAccess 134

cleanPath 136

cmpDate 138

cmpString 140

controlPanel 142

countOpenTags 144

couTime 146

createForm 148

createNewLanguage 150

createProject 152

createUser 154

curDate 156

defaultSnip 158

deleteDir 160

deleteLanguage 162

deleteSnip 164

delTodo 166

destroy_form 168

dictToString 170

do_parse 172

editMeetingForm 174

editTodo 176

false 178

findTagEnd 180

focusitem 182

formatTree 184

formname 186

form_href 188

form_input 190

getActiveDate 192

getActiveMonth 194

getActiveProject 196

getActiveUser 198

getBacklinks 200

getCommentSnips 202

getContentTypes 204

getDayInfo 206

getDayList 208

getEditHandler 210

getExternSnips 212

getHeader 214

getHeaderExtern 216

getIcon 218

getInterfaces 220

getKeywords 222

Page 125: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 125

getLengths 224

getLineCount 226

getMeetingList 228

getMissingSnips 230

getMonthList 232

getProjectCreator 234

getProjectList 236

getProjectMemberCount 238

getProjectMembers 240

getProjectPath 242

getRights 245

getSessionData 247

getSessionId 249

getSizeString 251

getSnip 254

getSnipCount 256

getSnipDates 258

getSnipList 260

getSnipNames 262

getSnipsByContentType 264

getSnipsByCreationDate 266

getSnipsByCreator 268

getSnipsByFullText 270

getSnipsByKeywords 272

getSnipsByModificationDate 274

getSnipsByPopularity 276

getSnipsByTitle 278

getTag 280

getTimespanString 282

getTodo 284

getTree 286

getUnlinkedSnips 288

getUserData 290

getUserList 292

getValidUsername 294

htmlencode 296

htmlize 298

i18n 300

isBadName 302

isCommentSnip 304

isOdieAdmin 306

isProjectAdmin 308

isProjectCreator 310

isProjectMember 312

is_empty 314

joinUsersAndGroups 316

killDictionary 318

linkUrls 320

loadDictionary 322

loadLangs 324

lockSnip 326

Page 126: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 126

makeIndexName 328

make_seed 330

mayEdit 332

meetingSelectList 334

miniElement 336

miniFooter 338

miniHeader 340

miniRow 342

myfclose 344

myfopen 346

myfopen_loop 348

newLanguageForm 350

odie_help 352

pageElement 354

parse 356

parseDate 358

parseDateTime 360

parseOdieUrl 362

prepareIndex 364

printSelect 366

question 368

rausTime 370

read 372

readAccess 374

read_index 376

removeLinkerSymbols 378

render 380

render_html 382

render_plain 384

render_rtf 386

restOfTime 388

rtf_odie_close 390

rtf_odie_header 392

saveEvent 394

saveExtern 396

saveInterface 398

saveLanguage 400

saveTodo 403

schleimer 405

sendpass 407

serializeFile 409

setActiveProject 411

setBacklinks 413

setProjectMembers 415

setRights 418

setSessionData 420

setUserData 422

showAllMeetings 424

showMeeting 426

showWordList 428

snipErrorMsg 430

Page 127: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 127

snipExists 432

strSplit 434

stx_parse 436

stx_rep 438

styleBlock 440

to_blocktext 442

to_s 444

trace 446

translate 448

trimall 450

true 452

unlockSnip 454

unparse 456

unserializeFile 458

unsetBacklinks 460

updateDictionary 462

wiki_link 464

wiki_replace 466

write 468

writeAccess 470

writeDictionary 472

writeHeader 474

writeMeeting 476

writeSnip 478

write_index 481

Page 128: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 128

<ODI-DDOC-changeDictionary-2002-05-14-M>

Modulbezeichnung changeDictionary()

Dateiname core/changeDictionary

Versionsdatum 21.02.2002

Kurzbeschreibung Ändern oder hinzufügen eines Spracheintrages

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 14

Bytes 360

Cyclomatic Number 5

Page 129: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 129

Detailbeschreibung

Übergeben werden 4 Parameter (array dictionary, array content, array langs, array old). In der Dictionary- Struktur dictionary wird ein neuer Spracheintrag (content, Bestehend aus allen Wörtern zu den einzelnen Sprachen) erstellt, für jede Sprache in langs. Sofern old nicht leer ist, wird dieser Eintrag vorher aus dem Dictionary entfernt.

Input

Array dictionary Zu bearbeitendes Dictionary Array content Neue Inhalte Array langs Spracharray string old Altes Wort

Output

Probleme

-

Verbesserungsmöglichkeiten

-

Page 130: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 130

<ODI-DDOC-checkReadAccess-2002-05-14-G>

Modulbezeichnung

checkReadAccess()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Prüft ob ein Benutzer Lesezugriff auf ein Snip hat.

Erfordert getActiveUser(), getActiveProject(), isProjectMember()

Verantwortliche Zlabinger, Pavlu

Autor Zlabinger

LOC 34

Bytes 920

Cyclomatic Number 9

Page 131: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 131

Detailbeschreibung

Überprüft ob ein Benutzer Zugriff auf ein Snip hat. Die Rechte-Arrays müssen mitübergeben werden. Diese Funktion wird von readAccess und von der Rechteapplikation aufgerufen.

Input

Array rights ein Array mit den Elemente ‘read_list’ und ‘write_list’. Für eine genaue Beschreibung des

Arrays siehe readAccess oder writeAccess Dokumentation.

String user Der Benutzername, für den die Überprüfung vorgenommen werden soll. Wird ein Leerstring übergeben, so wird der aktuelle Benutzer angenommen.

Output

Boolean True wenn der Benutzer das Snip lesen darf, andernfalls False.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 132: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 132

<ODI-DDOC-checkWriteAccess-2002-05-14-G>

Modulbezeichnung checkWriteAccess()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Prüft ob ein Benutzer Schreibzugriff auf ein Snip hat

Erfordert getActiveUser(), checkReadAccess(), isProjectMember()

Verantwortliche Zlabinger, Pavlu

Autor Zlabinger

LOC 32

Bytes 967

Cyclomatic Number 9

Page 133: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 133

Detailbeschreibung

Liefert True wenn der Benutzer Schreibzugriff auf das Snip hat. Die Arrays mit den Rechten müssen mitübergeben werden.

Input

Array rights ein Array mit den Elemente ‘read_list’ und ‘write_list’. Für eine genaue Beschreibung des

Arrays siehe readAccess oder writeAccess Dokumentation.

String user Der Benutzername, für den die Überprüfung vorgenommen werden soll. Wird ein Leerstring übergeben, so wird der aktuelle Benutzer angenommen.

Output

Boolean True wenn der Benutzer das Snip schreiben darf, andernfalls False.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 134: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 134

<ODI-DDOC-check_email-2002-05-14-S>

Modulbezeichnung check_email()

Dateiname lib/utils.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung überprüft die Syntax einer e-mail-Adresse

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 7

Bytes 140

Cyclomatic Number 2

Page 135: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 135

Detailbeschreibung

Überprüft die Syntax der angegebenen e-mail-Adresse.

Input String email der zu prüfende String

Output Bool gueltig true, wenn es sich um eine gültige e-mail

adresse handelt, ansonsten false

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 136: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 136

<ODI-DDOC-cleanPath-2002-05-14-P>

Modulbezeichnung cleanPath()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Befreit einen Pfad von ../, ./ und anderen Angriffsversuchen

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 35

Bytes 683

Cyclomatic Number 5

Page 137: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 137

Detailbeschreibung

Säubert einen absoluten Snipnamen. Sämtliche ../ ./ oder andere Versuche auf verbotene Dateien zuzugreifen werden entfernt. Zurückgeliefert wird ein Array der Form ( projekt, snipname)

Input String Dateiname der Pfad zu einem Snip

Output Array (Projekt, Snipname)

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 138: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 138

<ODI-DDOC-cmpDate-2002-05-14-K>

Modulbezeichnung cmpDate()

Dateiname core/cmpDate

Versionsdatum 26-Mär-2002

Kurzbeschreibung Benutzerdefinierter Sortieralgorithmus für uasort (Datestrings)

Erfordert parseDate()

Verantwortliche Kolm

Autor Kolm

LOC 26

Bytes 484

Cyclomatic Number 5

Page 139: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 139

Detailbeschreibung

Dies ist der benutzerdefinierten Sortieralgorithmen für uasort (Datestrings). Beim Sortieren wird auf das richtige Sortierkriterium und auf die Sortierreihenfolge (az - za) geachtet. Um die Sortierung möglich zu machen, wird die parseDateTime Funktion mit den jeweiligen Arrayelementen aufgerufen.

Global String sort_key Sortierkriterium (Key des Arrays) String sort_dir Sortierreihenfolge [az | za]

Input String a 1. Element des Arrays String b 2. Element des Arrays

Output Zurückgegeben wird -1|0|+1 für die uasort Funktion.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 140: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 140

<ODI-DDOC-cmpString-2002-05-14-K>

Modulbezeichnung cmpString()

Dateiname core/cmpString

Versionsdatum 26-Mär-2002

Kurzbeschreibung Benutzerdefinierter Sortieralgorithmus für uasort (Strings)

Erfordert -

Verantwortliche Kolm

Autor Kolm

LOC 21

Bytes 473

Cyclomatic Number 5

Page 141: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 141

Detailbeschreibung

Dies ist der benutzerdefinierten Sortieralgorithmen für uasort (Strings). Er erhält zwei Elemente eines Arrays. Beim Sortieren wird auf das richtige Sortierkriterium und auf die Sortierreihenfolge (az - za) geachtet

Global String sort_key Sortierkriterium (Key des Arrays) String sort_dir Sortierreihenfolge [az | za]

Input String a 1. Element des Arrays String b 2. Element des Arrays

Output Zurückgegeben wird -1|0|+1 für die uasort Funktion.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 142: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 142

<ODI-DDOC-controlPanel-2002-05-14-G>

Modulbezeichnung controlPanel()

Dateiname system/edit-project

Versionsdatum 22-Feb-2002

Kurzbeschreibung Zeigt die Einstellungen für ein Projekt an

Erfordert getProjectMembers(), getActiveProject(), i18n(), form_href(),

getUserList(), getActiveUser(), isProjectMember(),

isProjectCreator(), isOdieAdmin()

Verantwortliche Zlabinger, Kolm

Autor Zlabinger

LOC 85

Bytes 2984

Cyclomatic Number 11

Page 143: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 143

Detailbeschreibung

Dient zur Darstellung des Projektadministrationspanels. Mit Hilfe dieses Panels ist es möglich Benutzer ins Projekt einzuladen, sie wieder auszuladen, das Projekt zu löschen, nicht im Index vorhandene Snips zu importieren, den Content-Type jener Snips mit unbekannter Content-Type zu setzen sowie den Aufruf des Wörterbuchgenerators zu tätigen, falls man Odie Administrator ist. Diese Funktion übernimmt keine Parameter und liefert auch nichts zurück.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 144: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 144

<ODI-DDOC-countOpenTags-2002-05-14-M>

Modulbezeichnung countOpenTags()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Zählt die Anzahl bestimmter öffnender Tags in einem String

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 14

Bytes 264

Cyclomatic Number 3

Page 145: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 145

Detailbeschreibung

Übergeben werden ein Suchstring sowie der Name des gesuchten Tags. Der Suchstring wird nach Vorkommnissen eines öffnenden Tags vom typ des übergebenen Tags durchsucht („<tag>“). Zurückgeliefert wird die Anzahl der Vorkommnisse.

Input

String string Heuhaufen String tag Nadel

Output

Int count Anzahl der Vorkommnisse

Probleme

-

Verbesserungsmöglichkeiten

-

Page 146: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 146

<ODI-DDOC-couTime-2002-05-14-M>

Modulbezeichnung couTime()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Debugfunktion, Zeit nehmen

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 5

Bytes 79

Cyclomatic Number 1

Page 147: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 147

Detailbeschreibung

Debugfunktion zum Testen des Parser- Zeitverhaltens. Eine Zeit wird genommen und im übergebenen Variablennamen gespeichert.

Input

String varname Variable, in der die Zeit gespeichert wird

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 148: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 148

<ODI-DDOC-createForm-2002-05-14-G>

Modulbezeichnung createForm()

Dateiname system/createSnip

Versionsdatum 2002-03-30

Kurzbeschreibung Zeigt das Formular zur Eingabe des Snipnamens und Typs ein

Erfordert i18n(), form_href(), getContentTypes()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 58

Bytes 1142

Cyclomatic Number 5

Page 149: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 149

Detailbeschreibung

Diese Funktion zeigt ein Formular zur Eingabe eines Snipnamens und Content-types an.

Input

String msg Eine optionale Mitteilung, die vor dem Formular angezeigt wird (z.B.: Fehlerhinweise, ...)

Diese Funktion liefert keinen Wert zurück

Probleme

-

Verbesserungsmöglichkeiten

-

Page 150: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 150

<ODI-DDOC-createNewLanguage-2002-05-14-M>

Modulbezeichnung createNewLanguage()

Dateiname system/dictgen

Versionsdatum 17.04.2002

Kurzbeschreibung Einfügen einer neuen Sprache in ein Dictionary

Erfordert htmlencode(), loadDictionary(), writeDictionary()

Verantwortliche Maczejka

Autor Maczejka

LOC 11

Bytes 266

Cyclomatic Number 3

Page 151: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 151

Detailbeschreibung

Eine Sprache wird übergeben, das Dictionary mit loadDictionary geladen, in jedem Wort ein neuer Eintrag für die Sprache erstellt. Anschließend wird das Dictionary mit writeDictionary gespeichert.

Input

String language Bezeichnung der Sprache

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 152: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 152

<ODI-DDOC-createProject-2002-05-14-G>

Modulbezeichnung createProject()

Dateiname core/createProject

Versionsdatum 25-Mär-2002

Kurzbeschreibung Erstellt ein neues Projekt

Erfordert myfopen(), myfclose(), addIndexEntry(), getUserData(),

setUserData(), i18n()

Verantwortliche Zlabinger, Kolm

Autor Zlabinger

LOC 45

Bytes 1233

Cyclomatic Number 4

Page 153: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 153

Detailbeschreibung

Diese Funktion erstellt ein Projekt (inklusive Pfade, Startsnip, Memberfile, …) und trägt den Ersteller als Projektmitglied ein.

Input

String project_name Der Name des zu erstellenden Projekts String username Der Benutzername der als Ersteller eingetragen

werden soll. Wird Leerstring übergeben so wird der aktuelle Benutzer angenommen.

Output

Boolean False falls das Projekt schon existiert, ansonsten True.

Probleme

keine

Verbesserungsmöglichkeiten

Eine Fehlerüberprüfung für die Pfadangaben, etc… falls aus irgendeinem Grund eine schlimme URL durch die Überprüfung in den vorigen Funktionen kommt.

Page 154: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 154

<ODI-DDOC-createUser-2002-05-14-G>

Modulbezeichnung createUser()

Dateiname core/createUser

Versionsdatum 27-Mär-2002

Kurzbeschreibung Legt einen neuen Benutzer an

Erfordert getValidUsername(), i18n(), check_email(), setUserData()

Verantwortliche Kolm, Zlabinger

Autor Zlabinger

LOC 66

Bytes 2436

Cyclomatic Number 13

Page 155: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 155

Detailbeschreibung

Legt einen neuen Benutzer an. Dabei wird überprüft, ob ein gültiger Benutzername und eine gültige E-Mail Adresse angegeben wurde.

Input

Array userdata Die Daten des anzulegenden Benutzers. Für eine genaue Dokumentation siehe getUserData oder setUserData.

Output

Boolean False, wenn das erstellen fehlgeschlagen ist, ansonsten True.

String create_message eine globale Variable, die den Grund des Scheiterns erhält.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 156: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 156

<ODI-DDOC-curDate-2002-05-14-S>

Modulbezeichnung curDate()

Dateiname core/curDate

Versionsdatum 27-Jan-2002

Kurzbeschreibung überprüft ob das angegeb. Datum in einem Bereich zum akt. liegt

Erfordert parseDateTime()

Verantwortliche Seywerth

Autor Seywerth

LOC 33

Bytes 774

Cyclomatic Number 7

Page 157: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 157

Detailbeschreibung

Überprüft ob das angegebene Datum in dem angegebenen Bereich zum aktuellen Datum liegt. Liefert ’true’ falls das Überprüfungsdatum innerhalb des Bereichs vom aktuellen Datum zu finden ist, oder false zurück. Das Vergleichsdatum befindet sich im format von parseDateTime [’str’].

Input String cmpdate entspricht dem Vergleichsdatum Integer dif ist der Überprüfungsbereich in minuten

Output Bool true|false das Ergebnis der Überprüfung

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 158: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 158

<ODI-DDOC-defaultSnip-2002-05-14-S>

Modulbezeichnung defaultSnip()

Dateiname lib/utils.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung liefert ein Array mit den Default-Snip-Informationen zurück

Erfordert getActiveProject()

Verantwortliche Zlabinger

Autor Seywerth

LOC 21

Bytes 790

Cyclomatic Number 1

Page 159: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 159

Detailbeschreibung

Gibt ein Array mit dem Inhalt des Default-Snips zurück.

Dieses enthält folgende Informationen: snip_data['title'] snip_data['project'] snip_data['creator'] snip_data['editor'] snip_data['edit_timestamp'] snip_data['content-type'] snip_data['content'] snip_data['creation_timestamp'] snip_data['keywords'] snip_data['read_count'] snip_data['write_list'] snip_data['read_list'] snip_data['backlinks'] snip_data['links'] snip_data['size'] snip_data['description']

Input keine

Output Array snip_data ein Array mit der Beschreibung des Snips

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 160: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 160

<ODI-DDOC-deleteDir-2002-05-14-G>

Modulbezeichnung deleteDir()

Dateiname core/deleteDir

Versionsdatum 2002-04-29

Kurzbeschreibung Löscht ein Verzeichnis samt Dateien und Unterverzeichnisse

Erfordert deleteDir()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 21

Bytes 350

Cyclomatic Number 4

Page 161: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 161

Detailbeschreibung

Diese Funktion löscht ein Verzeichnis im Dateisystem rekursiv. Dass heisst es werden alle Dateien in allen Unterverzeichnissen unwiderruflich gelöscht.

Input

String directory Der Name des zu löschenden Verzeichnisses

Diese Funktion liefert keinen Wert zurück

Probleme

-

Verbesserungsmöglichkeiten

-

Page 162: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 162

<ODI-DDOC-deleteLanguage-2002-05-14-M>

Modulbezeichnung deleteLanguage()

Dateiname system/dictgen

Versionsdatum 17.04.2002

Kurzbeschreibung Löschen einer Sprache in einem Dictionary

Erfordert loadDictionary(), writeDictionary()

Verantwortliche Maczejka

Autor Maczejka

LOC 11

Bytes 266

Cyclomatic Number 3

Page 163: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 163

Detailbeschreibung

Eine Sprache wird übergeben, das Dictionary mit loadDictionary geladen, jedes Vorkommnis der Sprache aus dem Wörterbuch gelöscht, anschließend das Dictionary wieder mit writeDictionary gespeichert.

Input

String language Zu löschende Sprache

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 164: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 164

<ODI-DDOC-deleteSnip-2002-05-14-G>

Modulbezeichnung deleteSnip()

Dateiname core/deleteSnip

Versionsdatum 25-Mär-2002

Kurzbeschreibung Löscht ein Snip.

Erfordert snipExists(), writeAccess(), lockSnip(), getHeader(),

unsetBacklinks(), writeHeader(), getProjectPath()

Verantwortliche Kolm, Pavlu, Zlabinger

Autor Zlabinger

LOC 58

Bytes 1834

Cyclomatic Number 8

Page 165: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 165

Detailbeschreibung

Entfernt ein Snip aus dem Index und löscht die Backlinks. Wenn der zweite Parameter auf DELETE_PHYSICALLY gesetzt ist, löscht es auch die Datei aus dem Filesystem. Das ganze funktioniert natürlich nur falls der durchführende Benutzer schreibberechtigt ist und das Snip nicht von jemandem gelocked ist.

Input

String title Der Name des zu löschenen Snips. Int mode Entweder MOVE_TO_TRASH (default) oder

DELETE_PHYSICALLY.

Output

Boolean True wenn der Vorgang erfolgreich abgeschlossen wurde.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 166: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 166

<ODI-DDOC-delTodo-2002-05-14-K>

Modulbezeichnung delTodo()

Dateiname core/delTodo

Versionsdatum 21-Feb-2002

Kurzbeschreibung Ermöglicht das löschen einzelner Tasks einer To-Do Liste

Erfordert unparse(), writeSnip()

Verantwortliche Kolm

Autor Kolm

LOC 14

Bytes 354

Cyclomatic Number 4

Page 167: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 167

Detailbeschreibung

Die Funktion delTodo ermöglicht es einzelne Tasks mittels einer checksum (priority, name, description, due date) zu löschen.

Benötigt wird ein Snipobjekt (username,title), ein Task-Array sowie die checksum die beim Aufruf in Layer2 erzeugt wird.

Zurückgegeben wird ein Array bestehend aus einem Fehlercode, dem Snipobjekt und des aktuellen Task-Arrays. Fehlercode 0 bedeutet, dass writeSnip erfolgreich war – aktualisiertes Snipobjekt / Task-Array wird ebenfalls zurückgegeben. Falls writeSnip() nicht erfolgreich war, ist der Fehlercode 2 und es wird lediglich das übergebene Snipobjekt zurückgeliefert – Task erhält den Wert 0.

Input Array snip Snipobjekt Array task das Task-Array String todo_del Die checksum

Output Array (errorcode, snip, task) Errorcode wie oben erwähnt, Snipobjekt & Task-Array

Probleme

Durch viele Änderungen dieser Funktion ist der Aufbau des Rückgabewertes nicht mehr up-to-date. Die Übersichtlichkeit lässt zu wünschen übrig.

Verbesserungsmöglichkeiten

Rückgabewerte klüger zusammensetzen. Rückgabe eines booleans; Snipobjekt und Task referenziert – oder ähnliche Lösungen.

Page 168: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 168

<ODI-DDOC-destroy_form-2002-05-14-G>

Modulbezeichnung destroy_form()

Dateiname system/kill-project

Versionsdatum 2002-04-28

Kurzbeschreibung Zeigt das Formular zur Eingabe des Zerstörungscodes an

Erfordert form_href(), i18n(), getActiveProject()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 27

Bytes 1056

Cyclomatic Number 1

Page 169: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 169

Detailbeschreibung

Zeigt ein Formular zur Eingabe des Zerstörungscodes für ein Projekt an. Diese Funktion akzeptiert keine Parameter und liefert keinen Wert zurück.

Probleme

-

Verbesserungsmöglichkeiten

-

Page 170: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 170

<ODI-DDOC-dictToString-2002-05-14-M>

Modulbezeichnung dictToString()

Dateiname core/dictToString

Versionsdatum 18.03.2002

Kurzbeschreibung Umwandeln einer Dictionary- Struktur in einen eine

Arraydefinition beschreibenden String

Erfordert htmlencode()

Verantwortliche Maczejka

Autor Maczejka

LOC 23

Bytes 448

Cyclomatic Number 4

Page 171: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 171

Detailbeschreibung

Die PHP- Arraystruktur (Parameter) wird in einen String umgewandelt, der einer textuellen Deklaration dieses Arrays entspricht. Speichert man diesen String und inkludiert ihn anschließend (z.b. require), so hat man ein neues Array, das dem alten gleicht.

Input

Array dictionary Die Wörterbuchstruktur

Output

String dictionary Der repräsentierende String

Probleme

Rekursion in der Funktion, deshalb muss vor dem String „$variablenname = Array(„ und danach „);“ angegeben werden.

Verbesserungsmöglichkeiten

-

Page 172: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 172

<ODI-DDOC-do_parse-2002-05-14-M>

Modulbezeichnung do_parse()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Parsen eines XML-Strings

Erfordert getTag()

Verantwortliche Maczejka

Autor Maczejka

LOC 45

Bytes 930

Cyclomatic Number 10

Page 173: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 173

Detailbeschreibung

Geht das übergebene XML- Dokument Sequentiell durch und filtert mithilfe von getTag dessen Bestandteile heraus. Die Ergebnisse werden zu einer übersichtlichen XML- Struktur zusammengebunden.

Input

String content Zu parsender String Boolean first Soll um den ersten Tag ein ntc gespannt sein? Boolean ugly Untidy XML gefunden

Output

Array result XML- Struktur

Probleme

-

Verbesserungsmöglichkeiten

-

Page 174: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 174

<ODI-DDOC-editMeetingForm-2002-05-14-M>

Modulbezeichnung editMeetingForm()

Dateiname system/meeting

Versionsdatum 17.04.2002

Kurzbeschreibung Anzeigen eines Formulars zum Bearbeiten eines Meetings

Erfordert getSnip(), getActiveUser(), parse(), unparse(), i18n(), form_href()

Verantwortliche Maczejka

Autor Maczejka

LOC 132

Bytes 4906

Cyclomatic Number 6

Page 175: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 175

Detailbeschreibung

Darsetellung eines Formulars zum Erstellen oder Bearbeiten eines Besprechungsprotokolls in HTML.

Input

String present Anwesende String master Protokolleur String begin Startzeit String end Endzeit String protocol Besprechungsprotokoll

Output -

Probleme

-

Verbesserungsmöglichkeiten

-

Page 176: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 176

<ODI-DDOC-editTodo-2002-05-14-K>

Modulbezeichnung editTodo()

Dateiname system/todo

Versionsdatum 17-Apr-2002

Kurzbeschreibung Erzeugt die Bearbeitungszeile bei der To-Do Applikation

Erfordert i18n, strSplit

Verantwortliche Kolm

Autor Kolm

LOC 88

Bytes 2816

Cyclomatic Number 13

Page 177: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 177

Detailbeschreibung

Mit Hilfe von editTodo wird es einfacher möglich die Zeile zum Bearbeiten eines Tasks an jeder Position der To-Do Liste auszugeben. Falls ein Benutzer einen Eintrag bearbeiten will, muss er auf den Task klicken und es wird die interne Nummerierung mitgeschickt – falls der mitgeschickte Wert 0 entspricht, wird am Ende der Liste die Eingabezeile ausgegeben.

Input int edit_task Die interne Laufvariable der Tasks;

jede ausgegebene Zeile hat eine laufende Nummer

String edit_key Die Keys des Task Arrays für den zu bearbeitenden Task

Output Ausgegeben wird eine Tablerow die Inputfelder für alle notwendigen Taskeigenschaften bereitstellt.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 178: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 178

<ODI-DDOC-false-2002-05-14-M>

Modulbezeichnung false()

Dateiname lib/render_rtf.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Debugfunktion

Erfordert _

Verantwortliche Maczejka

Autor Maczejka

LOC 4

Bytes 37

Cyclomatic Number 1

Page 179: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 179

Detailbeschreibung

Setzt Parameter 1 auf „false“. Ursprünglich wurde noch eine Debugvariable auf „false“ gesetzt. Entspricht jetzt „$var = false;“.

Input

Boolean &var Auf FALSE zu setztende Variable

Output -

Probleme

-

Verbesserungsmöglichkeiten

-

Page 180: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 180

<ODI-DDOC-findTagEnd-2002-05-14-M>

Modulbezeichnung findTagEnd()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Liefert die Stringposition vom Ende einer Tagstruktur

Erfordert countOpenTags()

Verantwortliche Maczejka

Autor Maczejka

LOC 35

Bytes 650

Cyclomatic Number 4

Page 181: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 181

Detailbeschreibung

Übergeben wird das XML- Dokument als String(1), sowie der öffnende Tag, nach dessen schließendem Gegenstück gesucht wird(2). Das Dokument wird Sequentiell nach dem schließenden Tag durchsucht. Wird einer gefunden, so wird die Anzahl der öffnenden Tags gleichen Typs innerhalb des abgegrenzenten Strings gesucht. Dieser Vorgang wird solange fortgesetzt, bis ein schließender Tag gefunden wird, und die Anzahl der innerhalb des abgegrenzenten Contents gefundenen öffnenden Tags gleichen Typs und schließenden Tags gleichen Typs ident ist. (z.b.: „<a><a><a></a></a></a>“ -> ohne countOpenTags würde das Egebnis so aussehen: „<a><a><a></a>“).

Input

String xml XML- Dokument, oder Teil davon String open_tag Tag, nach dessen Ende gesucht wird

Output

Int position strpos des schließenden Tags

Probleme

-

Verbesserungsmöglichkeiten

-

Page 182: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 182

<ODI-DDOC-focusItem-2002-05-14-M>

Modulbezeichnung focusItem()

Dateiname system/dictgen

Versionsdatum 17.04.2002

Kurzbeschreibung Setzt den Fokus auf ein Formularelement

Erfordert

Verantwortliche Maczejka

Autor Maczejka

LOC 4

Bytes 85

Cyclomatic Number 1

Externer Designstress 0

Interner Designstress 0

Page 183: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 183

Detailbeschreibung

JavaScriptfunktion. Übergeben wird ein Tabellenelement, auf das der Fokus gesetzt werden soll.

Input

String item Fokusitem

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 184: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 184

<ODI-DDOC-formatTree-2002-05-14-M>

Modulbezeichnung formatTree()

Dateiname system/tree

Versionsdatum 17.04.2002

Kurzbeschreibung Formatierte Ausgabe einer Baumstruktur

Erfordert form_href(), wiki_link()

Verantwortliche Maczejka

Autor Maczejka

LOC 55

Bytes 1480

Cyclomatic Number 9

Page 185: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 185

Detailbeschreibung

Übergeben wird eine mit getTree erstellte Baumstruktur, sowie ein String mit Informationen über geöffnete Elemente. Dieser Besteht aus Pfeillisten, beginnend beim Muttersnip->Kind1->Kind2... usw, getrennt durch Strichpunkte. Links neben dem Element werden aus verbreiteten Betriebssystemen bekannte Linienformatierungen ausgegeben. Plus und Minus sind gleichzeitig Links auf das Aufklappen bzw. Zusammenklappen von Elementen.

Input

Array data getTree Baumstruktur String open Geöffnete Elemente, wo (String parents Eltern des Elements, INTERN [rekursion]) (Int ebene Ebene des Elements, INTERN [rekursion])

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 186: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 186

<ODI-DDOC-formname-2002-05-14-G>

Modulbezeichnung formname()

Dateiname system/sendpass

Versionsdatum 2002-03-30

Kurzbeschreibung Zeigt ein Formular zur Eingabe des Benutzernamens an

Erfordert i18n(), form_href()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 17

Bytes 477

Cyclomatic Number 1

Page 187: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 187

Detailbeschreibung

Diese Funktion zeigt ein Formular zur Eingabe eines Benutzernamens an. Die Daten werden an sendpass geschickt

Diese Funktion akzeptiert keine Parameter und liefert keinen Wert zurück

Probleme

-

Verbesserungsmöglichkeiten

-

Page 188: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 188

<ODI-DDOC-form_href-2002-05-14-P>

Modulbezeichnung form_href()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung HTML-Formatierung für einen odie-Link

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 37

Bytes 1324

Cyclomatic Number 8

Page 189: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 189

Detailbeschreibung Erstellt eine URL, die auf ein Snip und/oder eine Applikation zeigt. Parameter für den Aufruf von form_href() sind der Snip (kann auch Leerstring sein) und die optionalen Angaben zu Applikation und Parametern. Für den Parameterstring gilt folgendes Format: „key=value&key=value...“

Input String Sniptitle auf WAS gelinkt werden soll String App=’’ welche Applikation den Snip darstellen soll String Params=’’ Parameter für die Applikation

Output String URL href Attribut des <a> tags

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 190: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 190

<ODI-DDOC-form_input-2002-05-14-S>

Modulbezeichnung form_input()

Dateiname system/preferences

Versionsdatum 17-Apr-2002

Kurzbeschreibung gibt ein HTML-input-tag laut Text, Name und Wert aus

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 7

Bytes 240

Cyclomatic Number 1

Page 191: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 191

Detailbeschreibung Gibt ein HTML-input-tag laut den Parametern: Text, Name und Wert aus.

Input String text der auszugebende Text String name der Name des Feldes String value der Wert des Feldes

Output keine

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 192: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 192

<ODI-DDOC-getActiveDate-2002-05-14-S>

Modulbezeichnung getActiveDate()

Dateiname core/calendar

Versionsdatum 21-Feb-2002

Kurzbeschreibung liefert/überprüft das akt./angegebene Datum als timestamp

Erfordert parseDate()

Verantwortliche Pavlu

Autor Seywerth

LOC 24

Bytes 498

Cyclomatic Number 3

Page 193: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 193

Detailbeschreibung

Liefert das aktuelle Datum als timestamp zurück. Werden als Parameter Jahr, Monat und/oder Tag übergeben werden diese ebenfalls überprüft und als timestamp zurückgegeben.

Input Integer y Jahresangabe, Default = 0 + akt. Jahr Integer m Monatsangabe, Default = 0 + akt. Monat Integer d Tagesangabe, Default = 0 + akt. Tag

Output Integer timestamp entspricht dem aktuellen bzw. korrigierten

Datum

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 194: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 194

<ODI-DDOC-getActiveMonth-2002-05-14-S>

Modulbezeichnung getActiveMonth()

Dateiname core/calendar

Versionsdatum 21-Feb-2002

Kurzbeschreibung liefert ein Array mit den aktuellen Datumsdaten

Erfordert parseDate()

Verantwortliche Pavlu

Autor Seywerth

LOC 13

Bytes 274

Cyclomatic Number 2

Page 195: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 195

Detailbeschreibung

Liefert ein Array mit den aktuellen Datumsdaten laut parseDate() zurück.

Input keiner

Output Array monate[’xx’] Array mit Datumsdaten (’xx’ laut parseDate())

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 196: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 196

<ODI-DDOC-getActiveProject-2002-05-14-S>

Modulbezeichnung getActiveProject ()

Dateiname lib/project.inc

Versionsdatum 18-Apr-2002

Kurzbeschreibung liefert das akt. Projekt aus der Session zurück

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 11

Bytes 212

Cyclomatic Number 2

Page 197: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 197

Detailbeschreibung

Liefert den aktuellen Projektnamen aus der Session zurück. Ist kein Projekt gesetzt wird 'default' angenommen.

Input keine

Output String project der aktuelle Projektname

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 198: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 198

<ODI-DDOC-getActiveUser-2002-05-14-S>

Modulbezeichnung getActiveUser()

Dateiname lib/user.inc

Versionsdatum 15-Apr-2002

Kurzbeschreibung liefert den aktuellen User als String zurück

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 6

Bytes 83

Cyclomatic Number 1

Page 199: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 199

Detailbeschreibung

Liefert den aktuellen User als String zurück.

Input keine

Output String username der Name des Users

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 200: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 200

<ODI-DDOC-getBacklinks-2002-05-14-K>

Modulbezeichnung getBacklinks()

Dateiname core/getBacklinks

Versionsdatum 28-Jän-2002

Kurzbeschreibung Liefert eine Liste von Backlinks zum aktuellen Snip

Erfordert -

Verantwortliche Kolm

Autor Kolm

LOC 11

Bytes 204

Cyclomatic Number 2

Page 201: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 201

Detailbeschreibung

getBacklinks liefert eine Liste aller Snipnamen des aktuellen Projektes, die auf das Snip in der globalen variable snip_title linken. Backlinks sind das Gegenstück zu normalen Links, die ja bekanntlich nur unidirektional arbeiten (wie Pfeile).

getBacklinks beantwortet die Frage "Wo existieren Links auf dieses Snip?".

Input -

Output Array snipnames Die Snipnamen von den Snips, die auf das

aktuelle Snip linken

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 202: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 202

<ODI-DDOC-getCommentSnips-2002-05-14-K>

Modulbezeichnung getCommentSnips()

Dateiname core/getCommentSnips

Versionsdatum 24-Feb-2002

Kurzbeschreibung Liefert Commentsnips zu einem bestimmten Snip

Erfordert getSnipsByTitle()

Verantwortliche Pavlu

Autor Kolm

LOC 15

Bytes 475

Cyclomatic Number 4

Page 203: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 203

Detailbeschreibung

Liefert eine Liste von Namen all jener Snips die Commentsnips des angegebenen Snips sind.

Input String snip_name Snipname des gewünschten Snips

Output Array snip_names ein Array der Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 204: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 204

<ODI-DDOC-getContentTypes-2002-05-14-P>

Modulbezeichnung getContentTypes()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Liefert eine Liste der verfügbaren Content-Types

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 4

Bytes 87

Cyclomatic Number 1

Page 205: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 205

Detailbeschreibung

Liefert ein Array, das alle Content-Types dieser Odie-Version enthält.

Input keine

Output Array Types Liste von Strings

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 206: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 206

<ODI-DDOC-getDayInfo-2002-05-14-S>

Modulbezeichnung getDayInfo()

Dateiname core/getDayInfo

Versionsdatum 23-Mar-2002

Kurzbeschreibung liefert das angegebene Snip und kann auch zum löschen von

diesem verwendet werden

Erfordert deleteSnip(), snipExists(), getActiveUser(), writeAccess(), parse(), unparse(), writeSnip()

Verantwortliche Seywerth

Autor Seywerth

LOC 80

Bytes 2406

Cyclomatic Number 12

Page 207: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 207

Detailbeschreibung Liefert das angegebene Snip und kann auch zum löschen von diesem verwendet werden.

Input String datestring das zugehörige Datum String delete ob das Snip gelöscht werden soll String crc Sicherheit zum löschen des Snips

Output Array events liefert das Snip zurück Bool false falls ein Fehler auftrat

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 208: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 208

<ODI-DDOC-getDayList-2002-05-14-S>

Modulbezeichnung getDayList()

Dateiname core/calendar

Versionsdatum 21-Feb-2002

Kurzbeschreibung liefert ein Array mit den Datumsdaten des akt. Monats

Erfordert keine

Verantwortliche Pavlu

Autor Seywerth

LOC 31

Bytes 914

Cyclomatic Number 6

Page 209: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 209

Detailbeschreibung

Liefert ein Array mit den Datumsdaten des aktuellen Monats nach dem angegebenen Wochentag sortiert. Parameter ist die Wochentagsbezeichnung mit dem das Rückgabe-Array beginnen soll. Array[0 - 6] enthalten die gewünschte Wochentagsreihenfolge und Array[7 - 41] die dazugehörigen Datumsdaten als timestamps.

Input String week_starts_with legt fest mit welchem Tag die Woche starten soll

Default = ’MONDAY’

Output Array [0 - 41] enthält die Wochentagskürzel und

dazugeordnete timestamps

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 210: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 210

<ODI-DDOC-getEditHandler-2002-05-14-G>

Modulbezeichnung getEditHandler()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liefert die Bearbeitungsapplikation für einen Content-Type.

Erfordert getHeader()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 15

Bytes 220

Cyclomatic Number 5

Page 211: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 211

Detailbeschreibung

Liefert die Default-Bearbeitungsapplikation oder die Erstellungsapplikation für einen Content-Type.

Input String type content-type

Output String handler Edithandler, welche Applikation zum

Bearbeiten herangezogen wird

Probleme

keine

Verbesserungsmöglichkeiten

Die Registrierung von neuen Applikationen zur Laufzeit zulassen

Page 212: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 212

<ODI-DDOC-getExternSnips-2002-05-14-K>

Modulbezeichnung getExternSnips()

Dateiname core/getExternSnips

Versionsdatum 31-Mär-2002

Kurzbeschreibung Liefert Namen aller Snips die nicht im Index aufscheinen

Erfordert getActiveProject(), getSnipNames(), isReservedName(),

snipExists()

Verantwortliche Kolm, Pavlu

Autor Kolm

LOC 33

Bytes 608

Cyclomatic Number 4

Page 213: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 213

Detailbeschreibung

Es werden alle Files aus dem Filesystem geholt und überprüft ob die gefundenen schon im Index eingetragen sind. Falls dies nicht der Fall ist, wird dieser Name an das Array gehängt, welches am Ende zurückgegeben wird. Bei der Überprüfung wird auf reservierte Worte (toc.toc, members, ...) geachtet.

Input -

Output Zurückgegeben wird ein Array bestehend aus den Snipnamen die nicht im Index eingetragen sind

Array snip_names die Snipnamen

Probleme

Bei vielen Snips die nicht im Index eingetragen sind, kann es zu langen Wartezeiten kommen

Verbesserungsmöglichkeiten

Derzeit wird die max_execution_time solange erhöht wie der Vorgang dauert – es könnte eine bessere Lösung die den Vorgang beschleunigt von großem Nutzen sein.

Page 214: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 214

<ODI-DDOC-getHeader-2002-05-14-G>

Modulbezeichnung getHeader()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liest Snipinformationen aus dem Index

Erfordert getProjectPath(), makeIndexName(), getActiveUser(),

getActiveProject(), snipErrorMsg(), i18n(), writeHeader()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 80

Bytes 3000

Cyclomatic Number 11

Page 215: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 215

Detailbeschreibung

Liest Informationen zu einem Snip aus dem Index in den Speicher. Wenn kein Eintrag vorhanden ist kann einer erzeugt werden. Aus diesem Grund kann auch der Content-type mitübergeben werden. Wenn das Snip-Objekt physisch nicht existiert wird der Eintrag aus dem Index entfernt.

Input

String title String username „ ‚’ Boolean correct = true String type = ‚’

Output

Array snipHeader

Rückgabewert ist entweder ein Snip-Objekt (bis auf content) oder eine snipErrorMsg. Wenn der Parameter correct auf true gesetzt ist und der snip nicht im Index ist, wird er mit content-type type eingetragen, falls er auch auf der Platte existiert.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 216: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 216

<ODI-DDOC-getHeaderExtern-2002-05-14-K>

Modulbezeichnung getHeaderExtern()

Dateiname core/getHeaderExtern

Versionsdatum 25-Mär-2002

Kurzbeschreibung liefert Informationen aller externen Dateien des aktiven Projekts

Erfordert getSnipsByContentType(), getHeader(), getActiveProject(),

getActiveUser()

Verantwortliche Kolm

Autor Kolm

LOC 27

Bytes 771

Cyclomatic Number 4

Page 217: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 217

Detailbeschreibung

Diese Funktion stellt der Extern- Applikation Informationen zu den externen Files des aktuellen Projektes zur Verfügung.

Input -

Output meta[i]['name'] Filename so wie er im Filesystem steht meta[i]['size'] Filesize in Bytes meta[i]['type'] Type des Files (Endung) meta[i]['uploader'] quasi der Ersteller des Files meta[i]['time'] Erstellungsdatum (uploaddatum)

meta[i]['text'] optionaler Text zu dem File

wobei gilt: 0 <= i < n

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 218: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 218

<ODI-DDOC-getIcon-2002-05-14-P>

Modulbezeichnung getIcon()

Dateiname lib/interfaces.inc

Versionsdatum 16-Apr-2002

Kurzbeschreibung Holt das dem aktuellen Interface entsprechende Icon.

Erfordert i18n()

Verantwortliche Pavlu

Autor Pavlu

LOC 23

Bytes 570

Cyclomatic Number 5

Page 219: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 219

Detailbeschreibung

Wenn im aktuellen Interface ein Bild für den angegebenen Link (Iconname) vorgesehen ist, wird dieses Bild mit getIcon() inkludiert. Ist kein Bild vorgesehen, liefert die Funktion stattdessen einen internationalisierten Text. Diese Funktion sollte immer dann verwendet werden, wenn ein Link auf eine Applikation erstellt wird.

Input String Iconname welches Icon dargestellt werden soll

Output String HTML- Tag, der ein Bild inkludiert oder Text

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 220: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 220

<ODI-DDOC-getInterfaces-2002-05-14-K>

Modulbezeichnung getInterfaces()

Dateiname core/getInterfaces

Versionsdatum 21-Feb-2002

Kurzbeschreibung Liefert alle vorhandenen Interfaces im INTERFACE_DIR

Erfordert -

Verantwortliche Pavlu, Kolm

Autor Kolm

LOC 16

Bytes 260

Cyclomatic Number 3

Page 221: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 221

Detailbeschreibung

Liefert eine Liste von allen vorhandenen Interfaces. Es werden dabei alle Folder, die im INTERFACE_DIR vorhanden sind, aufgelistet.

Input -

Output Array interfaces die Interfaces

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 222: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 222

<ODI-DDOC-getKeywords-2002-05-14-M>

Modulbezeichnung getKeywords()

Dateiname lib/keywords.inc

Versionsdatum 18.04.2002

Kurzbeschreibung Liefert Keywords aus einem Snip

Erfordert removeLinkerSymbols()

Verantwortliche Maczejka

Autor Maczejka

LOC 58

Bytes 1282

Cyclomatic Number 6

Page 223: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 223

Detailbeschreibung

Übergeben wird ein Snip, zurückgeliefert ein Zweistufiges Array mit Links und Keywords, die in diesem Snip vorkommen. Keywords sind alle durch stx hervorgehobenen Textelemente sowie der Sniptitel, Links sind alle durch geschwungene Klammern gekennzeichneten Textelemente. Ist der bearbeitete Snip nicht vom content-type stx wird nur eine Linkliste und eine Keywordliste mit dem Sniptitel zurückgeliefert. Herausgefiltert werden die Keywords durch vom stx-Parser genommene Regular- Expression Patterns, zu finden in „defs.inc“.

Input

Array snip Zu bearbeitendes Snipobjekt

Output

Array linksandkeywords [keywords] => Keywordliste [links] => Linkliste

Probleme

Fehleranfälligkeit der Patterns

Verbesserungsmöglichkeiten

-

Page 224: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 224

<ODI-DDOC-getLengths-2002-05-14-P>

Modulbezeichnung getLengths()

Dateiname lib/render_plain.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Berechnet die Breite von Tabellenelementen je Spalte

Erfordert -

Verantwortliche Pavlu

Autor Pavlu

LOC 35

Bytes 752

Cyclomatic Number 7

Page 225: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 225

Detailbeschreibung

Die XML- Struktur (Parameter) eines <table>s wird nach „td“ und „th“ durchsucht. Tags werden entfernt. Die Anzahl der Characters pro Element wird Zeile für Zeile gemerkt. Die höchsten Breitenangaben werden als Array zurückgeliefert.

Input

Array table XML- Tabellenstruktur

Output

Array lengths Maximallänge aller Spalten

Probleme

Verschachtelte Tabellen durchgehen.

Verbesserungsmöglichkeiten

Colspan, Rowspan bei Tabellen berücksichtigen

Page 226: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 226

<ODI-DDOC-getLineCount-2002-05-14-P>

Modulbezeichnung getLineCount()

Dateiname lib/stx.inc

Versionsdatum 27-Apr-2002

Kurzbeschreibung liefert die Anzahl physischer Zeilen eines Blocks

Erfordert -

Verantwortliche Pavlu

Autor Pavlu

LOC 8

Bytes 135

Cyclomatic Number 3

Page 227: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 227

Detailbeschreibung

Liefert die Anzahl der physischen Zeilen im übergebenem Block. Ein Block – oder logische Zeile – besteht aus mindestens einer physischen Zeile mit gleicher Einrückung. Einrückungswechsel und Leerzeilen trennen einzelne Blöcke voneinander. Zeilenwechsel trennen physische Zeilen voneinander.

Input Array lines physische Zeilen

Output Integer count Anzahl nicht-leerer Zeilen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 228: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 228

<ODI-DDOC-getMeetingList-2002-05-14-M>

Modulbezeichnung getMeetingList()

Dateiname core/getMeetingList

Versionsdatum 24.02.2002

Kurzbeschreibung Liefert eine Liste aller Meetings im aktuellen Projekt

Erfordert getIndex(), parse(), getSnip()

Verantwortliche Maczejka

Autor Maczejka

LOC 30

Bytes 720

Cyclomatic Number 3

Page 229: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 229

Detailbeschreibung

Ein Array mit allen Meetings im aktuellen Projekt und dazugehörigen statistischen Informationen (Anwesende, Leiter, Datum) wird zurückgeliefert.

Input

Array session Sessionobjekt

Output

Array meetinglist Liste aller Meetings in diesem Projekt

Probleme

-

Verbesserungsmöglichkeiten

Lesen der Header nur 1mal

Page 230: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 230

<ODI-DDOC-getMissingSnips-2002-05-14-K>

Modulbezeichnung getMissingSnips()

Dateiname core/getMissingSnips

Versionsdatum 02-Apr-2002

Kurzbeschreibung Liefert Namen aller Snips die nicht existieren, aber auf die gelinkt

wird

Erfordert getSnipList(), snipExists(), form_href()

Verantwortliche Kolm, Pavlu

Autor Kolm

LOC 46

Bytes 1060

Cyclomatic Number 9

Page 231: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 231

Detailbeschreibung

Diese Funktion soll jene Snips finden, auf die zwar gelinkt wird, die aber nicht existieren. Es soll dem User eine Übersicht über die fehlenden Snips bereitgestellt werden. Umso mehr Links auf solche Snips existieren, umso nötiger ist es dieses Snip zu erstellen.

Input int count optionaler Parameter für die Anzahl der

zurückgegebenen Snipnamen (beim Weglassen werden alle zurückgegeben)

String sorting defaultmäßig az – bei Angabe von 'za' wird rückwärts sortiert

Output String output ein String der einen Link auf den

zu erstellenden Snip beinhaltet

Probleme

keine

Verbesserungsmöglichkeiten

Der Rückgabewerte könnten an die anderen Funktionen, die mit der Rückgabe von Snipnamen beauftragt sind, angepasst werden. Dort wären es im Gegensatz zu dieser Funktion nur die Snipnamen – ohne jeglicher Formatierung.

Page 232: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 232

<ODI-DDOC-getMonthList-2002-05-14-S>

Modulbezeichnung getMonthList()

Dateiname core/calendar

Versionsdatum 21-Feb-2002

Kurzbeschreibung liefert ein Array mit den Monatsnamenkürzel laut language

Erfordert -

Verantwortliche Pavlu

Autor Seywerth

LOC 4

Bytes 205

Cyclomatic Number 1

Page 233: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 233

Detailbeschreibung Liefert ein Array mit 1 gleich jan beginnend, 2 gleich feb, usw. zurück. Die Monats-Kürzel werden dabei in die ausgewählte Sprache übersetzt.

Input keiner

Output Array monate[12] Array mit den Kürzeln der Monatsnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 234: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 234

<ODI-DDOC-getProjectCreator-2002-05-14-G>

Modulbezeichnung getProjectCreator()

Dateiname core/getProjectCreator

Versionsdatum 21-Feb-2002

Kurzbeschreibung Liefert den Ersteller eines Projekts.

Erfordert getProjectMembers()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 15

Bytes 261

Cyclomatic Number 4

Page 235: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 235

Detailbeschreibung

Liefert den Ersteller eines Projekts.

Input

String project

Output

String username Boolean Erfolg

Im Erfolgsfall kommt der Benutzername des Projekterstellers zurück, im Falle eines Fehlers False.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 236: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 236

<ODI-DDOC-getProjectList-2002-05-14-G>

Modulbezeichnung getProjectList()

Dateiname core/getProjectList

Versionsdatum 13-Apr-2002

Kurzbeschreibung Liefert eine Liste aller Projekte.

Erfordert

Verantwortliche Zlabinger

Autor Zlabinger

LOC 17

Bytes 309

Cyclomatic Number 3

Page 237: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 237

Detailbeschreibung

Liefert eine Liste aller Projekte, d.h. aller Verzeichnisse im SNIP_DIR, die nicht mit einem Punkt beginnen.

Diese Funktion übernimmt keine Parameter und liefert ein Array mit den Projektnamen zurück.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 238: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 238

<ODI-DDOC-getProjectMemberCount-2002-05-14-S>

Modulbezeichnung getProjectMemberCount()

Dateiname core/getProjectMemberCount

Versionsdatum 25-Mar-2002

Kurzbeschreibung liefert die Anzahl der Projektmitglieder des angegeb. Projekts

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 17

Bytes 271

Cyclomatic Number 3

Page 239: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 239

Detailbeschreibung Liefert die Anzahl der Projektmitglieder des angegebenen Projekts zurück. Tritt dabei ein Fehler auf wird 'false' zurückgeliefert.

Input String project der gewünschte Projektname

Output Bool False falls beim Zählen Fehler auftraten Integer count die Anzahl der Projektmitglieder

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 240: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 240

<ODI-DDOC-getProjectMembers-2002-05-14-S>

Modulbezeichnung getProjectMembers()

Dateiname core/getProjectMembers

Versionsdatum 13-Apr-2002

Kurzbeschreibung liefert ein Array mit Namen und Rechten der Projektmitglieder

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 13

Bytes 259

Cyclomatic Number 3

Page 241: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 241

Detailbeschreibung Liefert ein Array mit Namen und Rechten der Projektmitglieder in der folgenden Form zurück: data[mitglied] = a, wobei a in diesem Fall für Administrator steht.

Tritt dabei ein Fehler auf wird 'false' zurückgeliefert.

Input String project der gewünschte Projektname

Default ist der aktuelle Projektname

Output Bool False falls beim Zählen Fehler auftraten Array data die Anzahl der Projektmitglieder

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 242: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 242

<ODI-DDOC-getProjectPath-2002-05-14-P>

Modulbezeichnung getProjectPath()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Liefert den Pfad zum aktuellen Projekt

Erfordert getActiveProject()

Verantwortliche Pavlu, Zlabinger

Autor Pavlu

LOC 4

Bytes 71

Cyclomatic Number 6

Page 243: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 243

Detailbeschreibung

Liefert den Pfad zum aktuellen Projekt als String.

Output String path pfad_zum_aktiven_projekt/

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 244: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 244

<ODI-DDOC-getRights-2002-05-14-G>

Modulbezeichnung getRights()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Liefert die Rechte für ein Snip

Erfordert getHeader()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 10

Bytes 261

Cyclomatic Number 2

Page 245: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 245

Detailbeschreibung

Liefert ein Array mit der write_list und der read_list. Bei diesen handelt es sich selbst wieder um Arrays mit den Elementen users und projects, die sich wiederum in allow und deny gliedern und die Benutzernamen beinhalten.

Input

String snipname

Output

Boolean false im Falle eines Fehlers Array ansonsten ein Array mit folgendem Aufbau

Array ( [write_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) [read_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) )

Page 246: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 246

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 247: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 247

<ODI-DDOC-getSessionData-2002-05-14-G>

Modulbezeichnung getSessionData()

Dateiname lib/user.inc

Versionsdatum 15-Apr-2002

Kurzbeschreibung Liefert die Session-Daten zurück

Erfordert unserializeFile()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 23

Bytes 808

Cyclomatic Number 9

Page 248: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 248

Detailbeschreibung

Trägt die Session-Daten für eine MD5 verschlüsselte IP-Adresse in ein Array ein.

Array ( [id] => f528764d624db129b32c21fbca0cb8d6 [username] => vpavlu [interface] => vanilla [lastaction] => 1019458260 [language] => english [date] => 14-Apr-2002 [project] => odie )

Input

String session_id &String session_data

Output

Boolean erfolgreich oder nicht

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 249: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 249

<ODI-DDOC-getSessionId-2002-05-14-S>

Modulbezeichnung getSessionId()

Dateiname lib/user.inc

Versionsdatum 15-Apr-2002

Kurzbeschreibung liefert die Session ID als String zurück

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 5

Bytes 71

Cyclomatic Number 1

Page 250: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 250

Detailbeschreibung Liefert die Session ID als String zurück.

Input keine

Output String sessionId die Id der Session

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 251: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 251

<ODI-DDOC-getSizeString-2002-05-14-K>

Modulbezeichnung getSizeString()

Dateiname core/getSizeString

Versionsdatum 25-Mär-2002

Kurzbeschreibung Bringt die gegebene Bytezahl auf die richtige Dimension und

fügt die passende Bezeichnung hinzu

Erfordert -

Verantwortliche Pavlu

Autor Kolm

LOC 19

Bytes 243

Cyclomatic Number 3

Page 252: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 252

Detailbeschreibung

Die gegebene Bytezahl wird auf Kilobyte bzw. Megabyte gebracht, gerundet und mit der jeweiligen Endung 'KByte' oder 'MByte' als String zurückgegeben.

Input int bytes die Dateigrösse in Bytes

Output String sizestring Die Dateigrösse mit der jeweiligen

Dimensionsbezeichnung

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 253: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 253

<ODI-DDOC-getSnip-2002-05-14-G>

Modulbezeichnung getSnip()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liest ein Snip und liefert ein Snip-Objekt zurück.

Erfordert makeIndexName(), getActiveProject(), getProjectPath(),

snipErrorMsg(), readAccess(), getHeader(), myfopen(),

myfclose(), writeHeader(), i18n()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 70

Bytes 1802

Cyclomatic Number 9

Page 254: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 254

Detailbeschreibung

Trägt nach Überprüfung der Zugriffsrechte für den Benutzer ein Snip-Objekt oder eine Fehlermeldung in des übergebene Snip-Objekt ein.

Array ( [creator] => kol [editor] => kol [creation_timestamp] => 1019420833 [edit_timestamp] => 1019002532 [keywords] => Array ( [0] => start [1] => toc.toc [2] => locks [3] => members ) [read_count] => 105 [content-type] => stx [read_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) [write_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) [links] => Array ( [start-1] => 1 [start-2] => 1 [start-3] => 1 [start-4] => 1 [start-5] => 1 [start-6] => 1 ) [backlinks] => Array ( [hans] => 1 )

[size] => 222 [description] => [title] => start [content] => der inhalt )

Page 255: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 255

Input

&Array snip String username Boolean count ( = true)

Output

Boolean false im Falle eines Fehlers, ansonsten true.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 256: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 256

<ODI-DDOC-getSnipCount-2002-05-14-S>

Modulbezeichnung getSnipCount()

Dateiname core/getSnipCount

Versionsdatum 26-Mar-2002

Kurzbeschreibung liefert die Anzahl der Snips des angegeb. Projekts

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 17

Bytes 257

Cyclomatic Number 3

Page 257: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 257

Detailbeschreibung Liefert die Anzahl der Snips des angegebenen Projekts zurück. Tritt dabei ein Fehler auf wird 'false' zurückgeliefert.

Input String project der gewünschte Projektname

Output Bool False falls beim Zählen Fehler auftraten Array data die Anzahl der Projektmitglieder

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 258: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 258

<ODI-DDOC-getSnipDates-2002-05-14-P>

Modulbezeichnung getSnipDates()

Dateiname core/getSnipDates

Versionsdatum 21-Jan-2002

Kurzbeschreibung Liefert eine Liste der Form „Snipname“ => Bearbeitungsdatum

Erfordert getSnipList()

Verantwortliche Pavlu

Autor Pavlu

LOC 19

Bytes 398

Cyclomatic Number 3

Page 259: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 259

Detailbeschreibung

Liefert eine Liste aller Bearbeitedaten von Snips des aktuellen Projekts. Schlüssel sind die Snipnamen, Werte sind Zeichenketten der Form DATE_FORMAT (siehe defs.inc), die das letzte Bearbeitungsdatum des jeweiligen Snips enthalten.

Input keine

Output Array list wie oben beschrieben

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 260: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 260

<ODI-DDOC-getSnipList-2002-05-14-K>

Modulbezeichnung getSnipList()

Dateiname core/getSnipList

Versionsdatum 26-Mär-2002

Kurzbeschreibung Liefert eine Liste von Snipobjekten aller Snips im aktuellen

Projekt

Erfordert isCommentSnip()

Verantwortliche Pavlu

Autor Kolm

LOC 57

Bytes 1182

Cyclomatic Number 16

Page 261: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 261

Detailbeschreibung

Liefert ein Array von Snipobjekten aller Snips des aktuellen Projekts.

Input keiner

Output Array snip_list ein Array der Snipobjekte

Probleme

keine

Verbesserungsmöglichkeiten

Sniplisten über Projektgrenzen hinweg.

Page 262: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 262

<ODI-DDOC-getSnipNames-2002-05-14-K>

Modulbezeichnung getSnipNames()

Dateiname core/getSnipNames

Versionsdatum 26-Mär-2002

Kurzbeschreibung Liefert eine Liste aller Snipnamen des aktuellen Projektes

Erfordert getSnipList, isCommentSnip

Verantwortliche Pavlu

Autor Kolm

LOC 18

Bytes 331

Cyclomatic Number 4

Page 263: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 263

Detailbeschreibung

Liefert eine Liste von Namen aller im Projekt vorhandenen Snips.

Input int count optionaler Parameter für die Anzahl der

zurückgegebenen Snipnamen (beim Weglassen werden alle zurückgegeben)

String sorting defaultmäßig az – bei Angabe von 'za' wird rückwärts sortiert

Output Array snip_names ein Array der Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 264: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 264

<ODI-DDOC-getSnipsByContentType-2002-05-14-K>

Modulbezeichnung getSnipsByContentType()

Dateiname core/getSnipsByContentType

Versionsdatum 21-Jän-2002

Kurzbeschreibung Liefert eine Snipliste nach Content-type

Erfordert getSnipList()

Verantwortliche Kolm

Autor Kolm

LOC 18

Bytes 302

Cyclomatic Number 3

Page 265: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 265

Detailbeschreibung

Liefert ein Array von Sniptiteln zurück, welche die gesuchte content-type im Header enthalten.

Input String content-type Pattern für die benötigte content-type

Output Array Snipliste ein Array von Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 266: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 266

<ODI-DDOC-getSnipsByCreationDate-2002-05-14-K>

Modulbezeichnung getSnipsByCreationDate()

Dateiname core/getSnipsByCreationDate

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liefert eine Snipliste nach Erstellungsdatum

Erfordert getSnipList()

Verantwortliche Pavlu, Kolm

Autor Kolm

LOC 37

Bytes 881

Cyclomatic Number 8

Page 267: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 267

Detailbeschreibung

Diese Funktion liefert alle Snips des aktiven Projekts zurück die zum angegebenen Datum erstellt wurden.

Input String date Datum im allgemein gültigen Datusmformat

(dd-mon-yyyy) Falls nicht gesetzt aktuelles Datum

int count optionaler Parameter für die Anzahl der zurückgegebenen Snipnamen (beim beim Weglassen werden alle zurückgegeben)

String sorting defaultmäßig az – bei Angabe von 'za' wird rückwärts sortiert

Output Array snip_names ein Array der Snipnamen mit dem

dazugehörigen Erstellungsdatum Array[snip_name] = data['creation_timestamp']

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 268: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 268

<ODI-DDOC-getSnipsByCreator-2002-05-14-K>

Modulbezeichnung getSnipsByCreator()

Dateiname core/getSnipsByCreator

Versionsdatum 02-May-2002

Kurzbeschreibung Liefert eine Snipliste nach dem Ersteller

Erfordert getSnipList()

Verantwortliche Pavlu

Autor Kolm

LOC 13

Bytes 295

Cyclomatic Number 3

Page 269: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 269

Detailbeschreibung

Liefert ein Array von Sniptiteln zurück, welche vom angegebenen Benutzer erstellt wurden.

Input String name Name des gewünschten Erstellers

Output Array Snipliste ein Array von Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 270: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 270

<ODI-DDOC-getSnipsByFullText-2002-05-14-K>

Modulbezeichnung getSnipsByFullText()

Dateiname core/getSnipsByFullText

Versionsdatum 25-Mär-2002

Kurzbeschreibung Liefert eine Snipliste nach Volltextsuche

Erfordert getSnipList(), myfopen(), myfclose(), getProjectPath()

Verantwortliche Pavlu

Autor Kolm

LOC 36

Bytes 715

Cyclomatic Number 7

Page 271: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 271

Detailbeschreibung

Durchsucht die Inhalte aller Snips des aktuellen Projektes nach dem in pattern übergebenen Wörtern.

Input String pattern Muster nach dem gesucht wird, durch

Leerzeichen getrennt

Output Array snip_names ein Array der Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 272: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 272

<ODI-DDOC-getSnipsByKeywords-2002-05-14-K>

Modulbezeichnung getSnipsByKeywords()

Dateiname core/getSnipsByKeywords

Versionsdatum 31-Mär-2002

Kurzbeschreibung Liefert eine Snipliste nach angegebenen Schlüsselwörtern

Erfordert getSnipList(), is_empty(), strSplit()

Verantwortliche Pavlu, Kolm

Autor Kolm

LOC 44

Bytes 888

Cyclomatic Number 10

Page 273: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 273

Detailbeschreibung

Liefert ein Array von Snipobjekten zurück, welche die gesuchten Keywords im Header enthalten.

Input String pattern Muster nach dem gesucht wird, durch

Leerzeichen getrennt boolean match_parts Ob nach Teilstrings oder nach dem vollen

Schlüsselwort gesucht werden soll Defaultmäßig ist dieser Parameter nicht gesetzt.

Output Array snip_names ein Array der Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 274: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 274

<ODI-DDOC-getSnipsByModificationDate-2002-05-14-K>

Modulbezeichnung getSnipsByModificationDate()

Dateiname core/getSnipsByModificationDate

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liefert eine Snipliste nach Bearbeitungsdatum

Erfordert getSnipList()

Verantwortliche Pavlu, Kolm

Autor Kolm

LOC 38

Bytes 881

Cyclomatic Number 8

Page 275: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 275

Detailbeschreibung

Diese Funktion liefert alle Snips des aktiven Projekts zurück die zum angegebenen Datum modifiziert wurden.

Input String date Datum im allgemein gültigen Datusmformat

(dd-mon-yyy) Falls nicht gesetzt aktuelles Datum

int count optionaler Parameter für die Anzahl der zurückgegebenen Snipnamen (beim beim Weglassen werden alle zurückgegeben)

String sorting defaultmäßig az – bei Angabe von 'za' wird rückwärts sortiert

Output Array snip_names ein Array der Snipnamen mit dem

dazugehörigen Erstellungsdatum Array[snip_name] = data['edit_timestamp']

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 276: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 276

<ODI-DDOC-getSnipsByPopularity-2002-05-14-K>

Modulbezeichnung getSnipsByPopularity()

Dateiname core/getSnipsByPopularity

Versionsdatum 26-Mär-2002

Kurzbeschreibung Liefert populäre Snips (Sortiert nach readcount)

Erfordert cmpString(), getSnipList()

Verantwortliche Pavlu, Kolm

Autor Kolm

LOC 27

Bytes 489

Cyclomatic Number 3

Page 277: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 277

Detailbeschreibung

Liefert eine Liste von Snips des aktuellen Projektes sortiert nach dem readcount.

Input int count optionaler Parameter für die Anzahl der

zurückgegebenen Snipnamen (beim beim Weglassen werden alle zurückgegeben)

String sorting defaultmäßig az – bei Angabe von 'za' wird rückwärts sortiert

Output Array snip_list ein Array von Snipnamen (keys)

Values = read_count

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 278: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 278

<ODI-DDOC-getSnipsByTitle-2002-05-14-K>

Modulbezeichnung getSnipsByTitle()

Dateiname core/getSnipsByTitle

Versionsdatum 21-Feb-2002

Kurzbeschreibung Liefert Snipnamen die einem Muster entsprechen

Erfordert getSnipNames() , strSplit()

Verantwortliche Pavlu

Autor Kolm

LOC 29

Bytes 567

Cyclomatic Number 6

Page 279: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 279

Detailbeschreibung

Diese Funktion liefert eine Liste von relativen Snipnamen. Übergeben wird ein oder mehrere durch Leerzeichen getrennte Strings. Bei der Überprüfung wird darauf geachtet ob diese Strings in den Sniptiteln vorkommen, wobei dieser Sniptitel bei Erfolg an das Rückgabearray angehängt wird.

Beispiel:

foreach(getSnipsByTitle('wichtig') as $snip_name ) echo $snip_name;

Gibt eine Liste von wichtigen Snips aus

Input String pattern Title-Muster nach dem gesucht wird boolean multi_tokens Defaultmäßig true, es dürfen also durche

Leerzeichen getrennte Muster angegeben werden. Falls der Parameter FALSE ist wird nur nach diesem einen String gesucht. Hilfreich, falls Leerzeichen in den Mustern vorhanden sein sollen.

Output Array snip_names ein Array der Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 280: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 280

<ODI-DDOC-getTag-2002-05-14-M>

Modulbezeichnung getTag()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Auflösen eines Strings in eine XML- Struktur

Erfordert findTagEnd()

Verantwortliche Maczejka

Autor Maczejka

LOC 80

Bytes 1603

Cyclomatic Number 11

Page 281: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 281

Detailbeschreibung

Übergeben wird ein XML-String sowie eine Debugvariable. Im XML- String wird mithilfe von findTagEnd ein tag herausgefiltert und in seine Bestandteile zerlegt (name, content, NonTagContent -> Text vor dem tag). Diese Bestandteile werden als Arraystruktur zurückgeliefert. Ist das XML- Dokument nicht wohlgeformt und entsteht deshalb ein Fehler im Code, so wird die Debugvariable auf false gesetzt.

Input

String content XML- String Boolean ok Wohlgeformter tag, true/false

Output

Array tag Tagstruktur

Probleme

-

Verbesserungsmöglichkeiten

-

Page 282: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 282

<ODI-DDOC-getTimeSpanString-2002-05-14-K>

Modulbezeichnung getTimeSpanString()

Dateiname core/getTimeSpanString

Versionsdatum 11-Mär-2002

Kurzbeschreibung Liefert für gegebene Start- & Endzeit einen beschreibenden

Zeitspannen-Text

Erfordert strSplit(), i18n()

Verantwortliche Pavlu

Autor Kolm

LOC 53

Bytes 1479

Cyclomatic Number 19

Page 283: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 283

Detailbeschreibung

Berechnet die Differenz zwischen Start- und Endzeit (optional; Default ist jetzt gerade) und liefert einen diese Dauer wiedergebenden, sprechenden String in der passenden Sprache zurück.

Beispiele:

a long time some days no time 12 seconds

Input Timestamp start Startzeit Timestamp end Endzeit (optional; default ist aktuelle Zeit)

Output String TimeSpanString der beschreibende Zeitspannen-Text

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 284: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 284

<ODI-DDOC-getTodo-2002-05-14-K>

Modulbezeichnung getTodo()

Dateiname core/getTodo

Versionsdatum 28-Feb-2002

Kurzbeschreibung Füllt ein Todo-Task-Array mit den geparseten Tasks

Erfordert getSnip(), parse()

Verantwortliche Kolm

Autor Kolm

LOC 22

Bytes 486

Cyclomatic Number 5

Page 285: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 285

Detailbeschreibung

Die Funktion liest mittels getSnip die Tasks aus den XML-Dokumenten und gibt ein geparsedes Task- Array in der folgenden Form zurück:

Input

Array Snip das Snip-Objekt

Output Array Task das Task-Array

[task] => Array ( [ntc_0] => [status] => pending [ntc_1] => [end] => [ntc_2] => [priority] => 2 [ntc_3] => [name] => ADAT [ntc_4] => [desc] => das übliche ... tausend aufgaben [ntc_5] => [due] => 20-Dec-2001 [ntc_6] =>

)

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 286: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 286

<ODI-DDOC-getTree-2002-05-14-M>

Modulbezeichnung getTree()

Dateiname system/tree

Versionsdatum 17.04.2002

Kurzbeschreibung Erstellen eine Snip- Baumstruktur

Erfordert strsplit(), snipExists(), getHeader(), getActiveUser()

Verantwortliche mac

Autor mac

LOC 32

Bytes 633

Cyclomatic Number 5

Page 287: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 287

Detailbeschreibung

Übergeben wird ein Snipname, dessen Kinder gesucht werden sollen. Als weiterer Parameter ist eine Liste der bereits gefundenen Eltern des zu suchenden Snips möglich, die für die verwendete Rekursion gebraucht wird, um Endlosschleifen zu verhindern. Die Snipinformationen werden mit getHeader gelesen, und alle unter ‚links’ angegebenen Snips werden weiter in die Tiefe verfolgt. Rückgabewert ist eine geordnete Arraystruktur aller Kinder des angegebenen Snips.

Input

String snipname Snip, dessen Kinder gesucht werden String parentlist=““ Liste aller bereits gefundenen Eltern

-> Rekursion, NICHT VERWENDEN!

Output

Array baum Baumstruktur

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 288: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 288

<ODI-DDOC-getUnlinkedSnips-2002-05-14-K>

Modulbezeichnung getUnlinkedSnips()

Dateiname core/getUnlinkedSnips

Versionsdatum 26-Mär-2002

Kurzbeschreibung Liefert Namen aller Snips auf die nirgends gelinkt wird

Erfordert getSnipList()

Verantwortliche Kolm, Pavlu

Autor Kolm

LOC 16

Bytes 392

Cyclomatic Number 4

Page 289: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 289

Detailbeschreibung

Liefert Namen jener Snips die im aktuellen Projekt nicht angesprochen, sprich nirgends verlinkt sind. Damit sollen die sogenannten "Snip-Leichen" aufgespürt werden, welche nur über den Index bzw. über die Suche gefunden werden können.

Input int count optionaler Parameter für die Anzahl der

zurückgegebenen Snipnamen (beim beim Weglassen werden alle zurückgegeben)

Output Array snip_names die Snipnamen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 290: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 290

<ODI-DDOC-getUserData-2002-05-14-G>

Modulbezeichnung getUserData()

Dateiname lib/user.inc

Versionsdatum 15-Apr-2002

Kurzbeschreibung Liefert die Daten eines Benutzers zurück

Erfordert unserializeFile()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 18

Bytes 429

Cyclomatic Number 4

Page 291: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 291

Detailbeschreibung

Liest die Daten eines Benutzers aus und trägt sie in ein übergebenes Array ein. Im Falle eines Fehlers kommt false zurück. Die Daten haben folgenden Aufbau:

Array ( [username] => vpavlu [name] => Pavlu [firstname] => Viktor [email] => [email protected] [reminder_question] => skorpa und ... [reminder_answer] => nativa [password] => f2a0ffe83ec8d44f2be4b624b0f47dde [interface] => vanilla [language] => english [projects] => Array ( [0] => default [2] => odp [3] => odie )

)

Input

String username &Array userdaten

Output

Boolean false im Falle eines Fehlers, ansonsten true

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 292: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 292

<ODI-DDOC-getUserList-2002-05-14-K>

Modulbezeichnung getUserList()

Dateiname core/getUserList

Versionsdatum 29-Apr-2002

Kurzbeschreibung Liefert eine Lise von Benutzern

Erfordert getSessionData(), isBadName(), getUserData(),

isProjectMember()

Verantwortliche Kolm

Autor Kolm

LOC 58

Bytes 1541

Cyclomatic Number 12

Page 293: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 293

Detailbeschreibung

Liefert ein Array mit Informationen über alle, zu einem Projekt gehörenden oder nur aktiven Benutzern. Diese zwei Einschränkungen kann man natürlich kombinieren.

project = '' entspricht allen Usern (keine Einschränkung was die Projekte angeht) project = 'odie' würde eine Liste aller User des Projekts odie zurückgeben.

active_only ist defaultmäßig TRUE, sprich nur die aktiven User werden zurückgegeben. FALSE entspricht wiederum allen Usern.

Input String project Name des zu prüfenden Snips

boolean active_only falls man auch die nicht angemeldeten Benutzer erhalten will muss als zweiter Parameter FALSE angegeben werden

Output Array(

String [username]['name'] Nachname String [username]['firstname'] Vorname String [username]['email'] Email-Adresse Array [username]['projects'] Projekte denen der User angehört

boolean [username]['active'] Status (1 = online, 0 = offline) )

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 294: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 294

<ODI-DDOC-getValidUsername-2002-05-14-G>

Modulbezeichnung getValidUsername()

Dateiname core/createUser

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liefert einen neuen, nicht existierenden Benutzernamen

Erfordert

Verantwortliche Zlabinger

Autor Zlabinger

LOC 17

Bytes 322

Cyclomatic Number 3

Page 295: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 295

Detailbeschreibung

Überprüft, ob ein Benutzernamen noch frei ist und liefert einen gültigen zurück.

Input

String username Boolean force

Output

String valid_username

Der Parameter erzwingt, dass auf jeden Fall eine Zahl angefügt wird, auch wenn der übergebene Benutzername gültig wäre.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 296: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 296

<ODI-DDOC-htmlencode-2002-05-14-M>

Modulbezeichnung htmlencode()

Dateiname lib/utils.inc

Versionsdatum 11.03.2002

Kurzbeschreibung Komplettes urlencode

Erfordert -

Verantwortliche Zlabinger

Autor Maczejka

LOC 4

Bytes 80

Cyclomatic Number 1

Page 297: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 297

Detailbeschreibung

Der übergebene String wird urlencoded und alle Vorkommnisse von „+“ durch „%20“ ersetzt.

Input

String string Zu bearbeitender String

Output

String string Bearbeiteter String

Probleme

-

Verbesserungsmöglichkeiten

-

Page 298: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 298

<ODI-DDOC-htmlize-2002-05-14-M>

Modulbezeichnung htmlize()

Dateiname lib/debug.inc

Versionsdatum 05.03.2002

Kurzbeschreibung Ersetzt Reservierte HTML- Zeichen in jeder Arrayebene

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 10

Bytes 201

Cyclomatic Number 3

Page 299: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 299

Detailbeschreibung

Übergeben wird ein Array. Auf alle Elemente dieses Arrays wird die Funktion htmlentities angewandt.

Input

Array array Eingabedaten

Output

Array array Bearbeitete Eingabedaten

Probleme

-

Verbesserungsmöglichkeiten

-

Page 300: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 300

<ODI-DDOC-i18n-2002-05-14-M>

Modulbezeichnung i18n()

Dateiname lib/languages.inc

Versionsdatum 19.02.2002

Kurzbeschreibung Übersetzung eines Wortes bzw. Strings

Erfordert translate()

Verantwortliche Pavlu

Autor Maczejka

LOC 25

Bytes 452

Cyclomatic Number 3

Page 301: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 301

Detailbeschreibung

Ein String, möglich auch mit Platzhaltern, wird übergeben. Dieser in seine Bestandteile (Platzhalter) sofern vorhanden aufgelöst und die Einzelteile mit translate übersetzt und ausgegeben.

Input

String word Zu übersetzendes Wort Int really=1 Debug

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 302: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 302

<ODI-DDOC-isBadName-2002-05-14-S>

Modulbezeichnung isBadName()

Dateiname lib/snip.inc

Versionsdatum 28-Apr-2002

Kurzbeschreibung überprüft ob ein Name verwendet werden darf

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 24

Bytes 522

Cyclomatic Number 5

Page 303: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 303

Detailbeschreibung

Überprüft ob ein Name als Snipname verwendet werden darf. Ist dies nicht der Fall wird true zurückgeliefert. Darf der Name verwendet werden wird false zurückgeliefert.

Input String name der zu überprüfende Name

Output Bool true|false darf nicht-/darf verwendet werden

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 304: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 304

<ODI-DDOC-isCommentSnip-2002-05-14-K>

Modulbezeichnung isCommentSnip()

Dateiname core/isCommentSnip

Versionsdatum 24-Mär-2002

Kurzbeschreibung prüft ob das angegebene Snip ein Kommentarsnip ist

Erfordert snipExists()

Verantwortliche Pavlu

Autor Kolm

LOC 15

Bytes 275

Cyclomatic Number 3

Page 305: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 305

Detailbeschreibung

Prüft ob der angegebene Snipname im aktuellen Projekt der Name eines Comment-Snips ist. Bei positiver Prüfung wird TRUE zurückgegeben.

Input String snip_name Name des zu prüfenden Snips

Output boolean isCommentSnip Wahrheitswert der Prüfung

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 306: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 306

<ODI-DDOC-isOdieAdmin-2002-05-14-K>

Modulbezeichnung isOdieAdmin()

Dateiname core/isOdieAdmin

Versionsdatum 26-Mär-2002

Kurzbeschreibung Prüft, ob angegebener User ODIE – Administrator ist

Erfordert getProjectMembers()

Verantwortliche Kolm

Autor Kolm

LOC 13

Bytes 272

Cyclomatic Number 2

Page 307: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 307

Detailbeschreibung

Prüft ob der angegebene Benutzer ein ODIE – Administrator ist. ODIE – Administratoren sind all jene Benutzer, die Administrator im Projekt default sind.

Input

String username ein Username (wird in den meisten Fällen der aktive User sein)

Output true | false

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 308: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 308

<ODI-DDOC-isProjectAdmin-2002-05-14-K>

Modulbezeichnung isProjectAdmin()

Dateiname core/isProjectAdmin

Versionsdatum 26-Mär-2002

Kurzbeschreibung Prüft, ob angegebener Benutzer Administrator des angegebenen

Projektes ist

Erfordert getProjectMembers(), getActiveProject()

Verantwortliche Kolm, Zlabinger

Autor Kolm

LOC 18

Bytes 420

Cyclomatic Number 5

Page 309: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 309

Detailbeschreibung

Prüft ob der angegebene User Administrator im angegebenen Projekt ist und liefert bei Erfolg true zurück.

Mit creator_only TRUE wird auf Creator geprüft. Input

String username ein Username (wird in den meisten Fällen der aktive User sein)

String project das Projekt boolean creator_only falls TRUE wird auf Creator geprüft

Output true | false

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 310: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 310

<ODI-DDOC-isProjectCreator-2002-05-14-K>

Modulbezeichnung isProjectCreator()

Dateiname core/isProjectCreator

Versionsdatum 26-Mär-2002

Kurzbeschreibung Prüft, ob angegebener Benutzer Ersteller des angegebenen

Projektes ist

Erfordert isProjectAdmin()

Verantwortliche Pavlu, Kolm

Autor Kolm

LOC 5

Bytes 144

Cyclomatic Number 1

Page 311: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 311

Detailbeschreibung

Prüft ob der angegebene User Ersteller des angegebenen Projekts ist und liefert bei Erfolg true zurück.

Input

String username der Username String project das Projekt

Output true | false

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 312: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 312

<ODI-DDOC-isProjectMember-2002-05-14-S>

Modulbezeichnung isProjectMember()

Dateiname core/isProjectMember

Versionsdatum 03-Apr-2002

Kurzbeschreibung überprüft ob der angegebene User bei einem Projekt dabei ist

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 26

Bytes 503

Cyclomatic Number 5

Page 313: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 313

Detailbeschreibung

Überprüft ob der angegebene User bei dem angegebenen Projekt dabei ist. Wird kein Projektname angegeben wird auf das aktive Projekt überprüft. Tritt dabei ein Fehler auf wird 'false' zurückgeliefert.

Input String username der zu überprüfende User String projekt der gewünschte Projektname

Output Bool True|False ob der User zum gefragten Projekt gehört

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 314: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 314

<ODI-DDOC-is_empty-2002-05-14-M>

Modulbezeichnung is_empty()

Dateiname lib/utils.inc

Versionsdatum 12.02.2002

Kurzbeschreibung Überprüfen, ob ein Array leer ist

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 15

Bytes 260

Cyclomatic Number 6

Page 315: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 315

Detailbeschreibung

Übergeben wird ein Array. Besteht dieses nur aus leeren Elementen (value = ““), wird true zurückgeliefert. Hat ein Element einen Wert, wird false zurückgeliefert.

Input

Array array Zu überprüfendes Array

Output

Boolean true/false Leer oder nicht

Probleme

-

Verbesserungsmöglichkeiten

-

Page 316: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 316

<ODI-DDOC-joinUsersAndGroups-2002-05-14-P>

Modulbezeichnung joinUsersAndGroups()

Dateiname core/joinUsersAndGroups

Versionsdatum 30-Mar-2002

Kurzbeschreibung Fügt ein User- und ein Group-Array, getrennt von einer

Trennzeile in einem Array zusammen

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 16

Bytes 304

Cyclomatic Number 3

Page 317: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 317

Detailbeschreibung

Alle Elemente der Benutzerliste werden mit <U> gekennzeichnet, alle Elemente der Gruppenliste werden mit <G> gekennzeichnet. Beide Listen werden von einer Trennzeile getrennt in ein Array zusammengeführt und retourniert.

Input Array Users Liste von Benutzernamen Array Groups Liste von Gruppen

Output Array usersAndGroups Liste der modifizierten Elemente

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 318: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 318

<ODI-DDOC-killDictionary-2002-05-14-M>

Modulbezeichnung killDictionary()

Dateiname core/killDictionary

Versionsdatum 21.02.2002

Kurzbeschreibung Löscht einen Spracheintrag in einem Dictionary

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 5

Bytes 103

Cyclomatic Number 1

Page 319: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 319

Detailbeschreibung

Parameter sind die Dictionarystruktur und der zu löschende Spracheintrag. Zurückgeliefert wird eine Dictionarystruktur ohne den angegebenen Spracheintrag.

Input

Array dictionary Wörterbuch String entry Zu löschender Eintrag

Output

Array dictionary Wörterbuch

Probleme

-

Verbesserungsmöglichkeiten

-

Page 320: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 320

<ODI-DDOC-linkUrls-2002-05-14-P>

Modulbezeichnung linkUrls()

Dateiname lib/stx.inc

Versionsdatum 28-Apr-2002

Kurzbeschreibung wandelt URLs in Links um

Erfordert -

Verantwortliche Pavlu

Autor Pavlu

LOC 16

Bytes 639

Cyclomatic Number 1

Page 321: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 321

Detailbeschreibung

Der übergebene String wird nach URLs durchsucht. Alle als URL erkennbaren Zeichenketten werden zu Links auf die angegebene Adresse. Der modifizierte String wird retourniert.

Input String string String mit URLs

Output String String mit <A> tags

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 322: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 322

<ODI-DDOC-loadDictionary-2002-05-14-M>

Modulbezeichnung loadDictionary()

Dateiname core/loadDictionary

Versionsdatum 13.03.2002

Kurzbeschreibung Lädt eine Dictionarystruktur aus einer Datei

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 11

Bytes 209

Cyclomatic Number 2

Page 323: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 323

Detailbeschreibung

Parameter ist eine leere Dictionarystruktur. In diese werden die Daten aus dem Resource- File (defs.inc -> RES_FILE) gelesen. Bei erfolg true, bei Fehler false als Rückgabewert.

Input

Array dicitonary Wörterbuch

Output

Boolean true/false Laden erfolgreich oder nicht

Probleme

-

Verbesserungsmöglichkeiten

-

Page 324: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 324

<ODI-DDOC-loadLangs-2002-05-14-M>

Modulbezeichnung loadLangs()

Dateiname core/loadLangs

Versionsdatum 21.02.2002

Kurzbeschreibung Liefert alle Sprachen in einem Dictionary zurück

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 13

Bytes 240

Cyclomatic Number 4

Page 325: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 325

Detailbeschreibung

Übergeben wird ein Dictionary, zurück kommt ein Array mit allen in diesem Dictionary verwendeten Sprachen. Das gesamte Dictionary wird nach Sprachen durchsucht.

Input

Array dictionary Wörterbuch

Output

Array langs Sprachen in diesem Wörterbuch

Probleme

-

Verbesserungsmöglichkeiten

-

Page 326: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 326

<ODI-DDOC-lockSnip-2002-05-14-G>

Modulbezeichnung lockSnip()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Sperrt ein Snip.

Erfordert myfopen(), getProjectPath(), unserializeFile(), getSessionId(),

myfclose(), getActiveUser(), serializeFile()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 42

Bytes 1115

Cyclomatic Number 5

Page 327: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 327

Detailbeschreibung

Trägt im Lockfile das Snip als gesperrt ein, wenn es nicht schon von einem anderen Benutzer gesperrt ist. Im Falle eines Fehlers kommt false zurück, im Erfolgsfall tru. Wenn es schon gesperrt ist kommt der Benutzernamen des Lockbesitzers zurück.

Input

String snip_title

Output

Boolean true, wenn der lock gesetzt werden konnte False, wenn beim Zugriff aufs lockfile ein Fehler passiert ist

String Der Name des Benutzers, der das snip gesperrt hat

Probleme

Flock() Implementierung schleierhaft.

Verbesserungsmöglichkeiten

keine

Page 328: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 328

<ODI-DDOC-makeIndexName-2002-05-14-G>

Modulbezeichnung makeIndexName()

Dateiname lib/<platform>-platform.inc

Versionsdatum 31-Mär-2002

Kurzbeschreibung Platformabhängige Funktion zur CaseSensitivity

Erfordert _

Verantwortliche Zlabinger

Autor Zlabinger

LOC 4

Bytes 49

Cyclomatic Number 1

Page 329: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 329

Detailbeschreibung

Liefert den Namen eines Snips unter berücksichtigung des Betriebssystems zurück.

Input

String name

Output

String name

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 330: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 330

<ODI-DDOC-make_seed-2002-05-14-S>

Modulbezeichnung make_seed()

Dateiname system/kill-project

Versionsdatum 17-Apr-2002

Kurzbeschreibung erzeugt einen zeitabhängigen Random-Wert

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 5

Bytes 126

Cyclomatic Number 1

Page 331: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 331

Detailbeschreibung Erzeugt einen zeitabhängigen Random-Wert und gibt diesen zurück.

Input keine

Output Float random entspricht einem Random-Wert

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 332: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 332

<ODI-DDOC-mayEdit-2002-05-14-S>

Modulbezeichnung mayEdit()

Dateiname core/editable

Versionsdatum 16-Apr-2002

Kurzbeschreibung prüft das akt. Snip auf Schreibrechte

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 13

Bytes 204

Cyclomatic Number 3

Page 333: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 333

Detailbeschreibung Prüft ob der aktive User Schreibrechte auf das aktuelle Snip hat. Kann dieser mit keinen Schreibrechten aufwarten wird 'false' zurückgeliefert.

Input keine

Output Bool true|false ob das setzten erfolgreich war

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 334: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 334

<ODI-DDOC-meetingSelectList-2002-05-14-M>

Modulbezeichnung meetingSelectList()

Dateiname core/editMeetingForm

Versionsdatum 17.04.2002

Kurzbeschreibung Baut eine HTML- Selectliste auf

Erfordert

Verantwortliche Maczejka

Autor Maczejka

LOC 27

Bytes 580

Cyclomatic Number 8

Page 335: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 335

Detailbeschreibung

Eine HTML- Selectliste wird aufgrund der übergebenen Parameter aufgebaut:

Input

String name Name der Selectliste Int size Breite der Selectliste Mixed list Elemetarray oder Anzahl der Elemente Mixed selected Ausgewähltes Element Boolean zeroinclude 0 auch in der liste?

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 336: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 336

<ODI-DDOC-miniElement-2002-05-14-P>

Modulbezeichnung miniElement()

Dateiname lib/interfaces.inc

Versionsdatum 16-Apr-2002

Kurzbeschreibung Liefert HTML Formatierungssymbole des aktuellen Interfaces für

Controlpanelelemente

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 13

Bytes 346

Cyclomatic Number 3

Page 337: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 337

Detailbeschreibung

Wenn vorhanden werden HTML Vorlagen des angegebenen Typs zurückgeliefert. Verfügbare Typen sind header (leitet ein Element ein), footer (beendet ein Element) und row (für eine Zeile im aktuellen control-panel Element).

Input String output Titel des Elements, bzw eine Ausgabezeile String elementTyp header | footer | row

Output String Interfaceabhängige HTML Formatierungen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 338: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 338

<ODI-DDOC-miniFooter-2002-05-14-P>

Modulbezeichnung miniFooter()

Dateiname lib/interfaces.inc

Versionsdatum 16-Apr-2002

Kurzbeschreibung HTML Formatierungssymbole um ein Control-Panel zu schließen

Erfordert miniElement()

Verantwortliche Pavlu

Autor Pavlu

LOC 5

Bytes 103

Cyclomatic Number 1

Page 339: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 339

Detailbeschreibung

Liefert die HTML Formatierungssymbole um im aktuellen Interface ein Control-Panel Element abzuschließen. Erwartet den Titel des Elements. Manche Interfaces stellen diesen Titel dar.

Input String Titel Titel des Control-Panel Elements

Output String HTML Formatierungssymbole

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 340: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 340

<ODI-DDOC-miniHeader-2002-05-14-P>

Modulbezeichnung miniHeader()

Dateiname lib/interfaces.inc

Versionsdatum 16-Apr-2002

Kurzbeschreibung HTML Formatierungssymbole um ein Control-Panel einzuleiten

Erfordert miniElement()

Verantwortliche Pavlu

Autor Pavlu

LOC 6

Bytes 130

Cyclomatic Number 1

Page 341: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 341

Detailbeschreibung

Liefert die HTML Formatierungssymbole um im aktuellen Interface ein Control-Panel Element einzuleiten. Erwartet den Titel des Elements. Manche Interfaces stellen diesen Titel dar.

Input String Titel Titel des Control-Panel Elements

Output String HTML Formatierungssymbole

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 342: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 342

<ODI-DDOC-miniRow-2002-05-14-P>

Modulbezeichnung miniRow()

Dateiname lib/interfaces.inc

Versionsdatum 16-Apr-2002

Kurzbeschreibung HTML Formatierungssymbole um eine Controlpanelzeile

auszugeben

Erfordert miniElement()

Verantwortliche Pavlu

Autor Pavlu

LOC 4

Bytes 58

Cyclomatic Number 1

Page 343: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 343

Detailbeschreibung

Liefert die HTML Formatierungssymbole um im aktuellen Interface eine Controlpanelzeile auszugeben. Um Zeilen ausgeben zu können, muss das Controlpanelelement zuerst eingeleitet werden. Dazu ist die Funktion miniHeader() zu verwenden. Nach der letzten Zeile schließt miniFooter() das Element ab.

Input String Row Darzustellender Inhalt der Zeile

Output String HTML Formatierungssymbole

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 344: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 344

<ODI-DDOC-myfclose-2002-05-14-G>

Modulbezeichnung myfclose()

Dateiname lib/<platform>-platform.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Schließt eine Datei die mit myfopen geöffnet wurde.

Erfordert _

Verantwortliche Zlabinger

Autor Zlabinger

LOC 12

Bytes 202

Cyclomatic Number 2

Page 345: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 345

Detailbeschreibung

Schließt eine Datei, die zuvor mit myfopen() geöffnet wurde. Diese Funktion ist plattform-abhängig.

Wenn truncate auf true gesetzt ist, so wird die Datei auf die Position des filepointers „zurechgestutzt“.

Input

Int filehandle Boolean truncate

Probleme

flock() Implementierung schleierhaft

Verbesserungsmöglichkeiten

keine

Page 346: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 346

<ODI-DDOC-myfopen-2002-05-14-G>

Modulbezeichnung myfopen()

Dateiname lib/<platform>-platform.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Ein erweitertes, platformabhängiges fopen.

Erfordert _

Verantwortliche Zlabinger

Autor Zlabinger

LOC 48

Bytes 978

Cyclomatic Number 5

Page 347: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 347

Detailbeschreibung

Ein erweitertes fopen, dass nicht nach einem Versuch abbricht, sondern mehrere Versuche unternimmt und im Erfolgsfall das File locked. Die Implementierung ist Betriebssystem abhängig.

Vorsicht: unabhängig von mode wird der filepointer auf position 0 gesetzt. Dies ist notwendig, da snips zum schreiben nicht im modus w geöffnet werden dürfen, da die datei sonst noch vor der überprüfung der locks gelöscht werden würde. Deswegen werden grundsätzlich alle Dateien zum Schreiben im Modus r+ geöffnet.

Input

String name String mode

Output

Int filehandle

Probleme

flock() Implementierung auf Windows-Platformen unterschiedlich und nicht dokumentiert.

Verbesserungsmöglichkeiten

keine

Page 348: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 348

<ODI-DDOC-myfopen_loop-2002-05-14-P>

Modulbezeichnung myfopen_loop()

Dateiname lib/win32-platform.inc

Versionsdatum 27-Apr-2002

Kurzbeschreibung FileLocking auf Win32

Erfordert -

Verantwortliche Zlabinger

Autor Pavlu

LOC 44

Bytes 1291

Cyclomatic Number 4

Page 349: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 349

Detailbeschreibung

myfopen_loop versucht während einer in defs.inc definierten Zeitspanne (FOPEN_MAX_WAIT_TIME) ein Filehandle zum angegebenen File zu bekommen. Diese Funktion ist der zentrale Teil des selbst implementierten File-locking Mechanismus auf Win32. Ist das File bereits gelockt liefert die Funktion false.

Input String name Filename String mode nur 'a+' möglich

Output Zurückgegeben wird ein Filehandle oder false

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 350: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 350

<ODI-DDOC-newLanguageForm-2002-05-14-M>

Modulbezeichnung newLanguageForm()

Dateiname system/dictgen

Versionsdatum 17.04.2002

Kurzbeschreibung Anzeige eines Formulars zur Erstellunge einer neuen Sprache

Erfordert i18n(), form_href()

Verantwortliche Maczejka

Autor Maczejka

LOC 13

Bytes 495

Cyclomatic Number 1

Page 351: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 351

Detailbeschreibung

Ein HTML- Formular zur Erstellung einer neuen Sprache wird ausgegeben.

Input

keiner

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 352: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 352

<ODI-DDOC-odie_help-2002-05-14-S>

Modulbezeichnung odie_help()

Dateiname system/link

Versionsdatum 28-Apr-2002

Kurzbeschreibung öffnet mittels JavaScript ein neues Browser-Fenster; Inhalt ist die

odie-hilfe

Erfordert keine

Verantwortliche Pavlu

Autor Seywerth

LOC 5

Bytes 226

Cyclomatic Number 1

Page 353: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 353

Detailbeschreibung Diese JavaScript-Funktion öffnet ein neues Browser-Fenster mit der Grösse 600*400. Als Inhalt wird auf die odie-hilfe gelinkt.

Input keine

Output Ein Browser-Fenster

Probleme

JavaScript ist eine unschöne Art der Web-Programmierung.

Verbesserungsmöglichkeiten

keine

Page 354: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 354

<ODI-DDOC-pageElement-2002-05-14-P>

Modulbezeichnung pageElement()

Dateiname lib/interfaces.inc

Versionsdatum 16-Apr-2002

Kurzbeschreibung liefert HTML Formatierungssymbole des aktuellen Interfaces für

Hauptseitenelemente

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 29

Bytes 803

Cyclomatic Number 4

Page 355: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 355

Detailbeschreibung

Versucht das angegebene Template des aktuellen Interfaces zu inkludieren. Dabei wird der interne Elementzähler erhöht – ausser der zweite Parameter ist auf false gesetzt. Der Rahmen wird nur dann dargestellt, wenn es sich um den ersten Aufruf von pageElement() handelt, oder der zweite Parameter auf true gesetzt ist.

Input String Name Name des Templates Boolean override Bei true wird der Rahmen auf jeden Fall dargestellt

Output String Interfaceabhängige HTML Formatierungen

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 356: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 356

<ODI-DDOC-parse-2002-05-14-M>

Modulbezeichnung parse()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Schaffen der Rahmenbedingungen für do_parse

Erfordert do_parse()

Verantwortliche Maczejka

Autor Maczejka

LOC 16

Bytes 361

Cyclomatic Number 3

Page 357: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 357

Detailbeschreibung

Übergeben wird ein XML- String sowie eine Statusvariable. Ist diese true, wird vor und nach das Dokument ein „<content>“ tag gesetzt. Bei false fällt dieser weg. Anschliessend wird do_parse aufgerufen und die XML- Struktur zurückgeliefert.

Input

String dokument Zu parsendes XML- Dokument Boolean content=true <content> - Tag ja oder nein

Output

Array xml XML- Struktur

Probleme

Oft wird HTML geparsed. HTML ist so gut wie nie wohlgeformt, daher sind die Bedingungen für das Parsen nicht eindeutig. Dies kann zu Datenverlust führen.

Verbesserungsmöglichkeiten

-

Page 358: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 358

<ODI-DDOC-parseDate-2002-05-14-S>

Modulbezeichnung parseDate()

Dateiname core/parseDate

Versionsdatum 14-Jan-2002

Kurzbeschreibung liefert aus einem Datums-String ein parseDateTime-Array

Erfordert parseDateTime()

Verantwortliche Seywerth

Autor Seywerth

LOC 17

Bytes 327

Cyclomatic Number 3

Page 359: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 359

Detailbeschreibung Liefert aus dem übergebenen Datums-String (dd-mmm-yyyy) ein parseDateTime-Array.

Input String str ist das Datum (ohne Uhrzeit)

Output Array parseDateTime Datum & Time im parseDateTime-Format

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 360: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 360

<ODI-DDOC-parseDateTime-2002-05-14-S>

Modulbezeichnung parseDateTime()

Dateiname core/parseDateTime

Versionsdatum 21-Feb-2002

Kurzbeschreibung liefert aus einem Datums-Zeit-String ein parseDateTime-Array

Erfordert keine

Verantwortliche Seywerth

Autor Seywerth

LOC 88

Bytes 3465

Cyclomatic Number 12

Page 361: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 361

Detailbeschreibung Liefert aus dem übergebenen Datums-Zeit-String (dd-mon-yyyy/hh:ii) ein parseDateTime-Array.

Dieses schaut wie folgt aus: parseDateTime-Array['dd'] der Tag als Integer parseDateTime-Array['mmm'] das Monat als 3-stelliges Monatskürzel parseDateTime-Array['yyyy'] das Jahr als Integer parseDateTime-Array['hh'] die Stunde als Integer parseDateTime-Array['ii'] die Minute als Integer parseDateTime-Array['str'] den (korrigierten) übergebenen String parseDateTime-Array['mm'] das Monat als Integer parseDateTime-Array['val'] der String als vergleichbarer Integer-Wert

Input String str ist das Datum und Zeit (dd-mon-yyyy/hh:ii)

Output Array parseDateTime Datum & Time im parseDateTime-Format

Probleme

Wenn ein Wert einstellig ist (zb.: Jan = 1) wird dieser auch einstellig zurückgeliefert. Dadurch gibt es keine exakt einheitliche Formatierung.

Verbesserungsmöglichkeiten

keine

Page 362: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 362

<ODI-DDOC-parseOdieUrl-2002-05-14-P>

Modulbezeichnung parseOdieUrl()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Untersucht die Urlzeile. Liefert Projekt, Snip und Applikation

Erfordert strSplit(), cleanPath()

Verantwortliche Pavlu, Zlabinger

Autor Pavlu

LOC 53

Bytes 1048

Cyclomatic Number 6

Page 363: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 363

Detailbeschreibung

Zerlegt die Urlzeile in ihre Bestandteile, untersucht die Tokens und liefert die Informationen über Snipname, Pfad und Applikationsname aus der Urlzeile als Array zurück.

Input String Snip defaultSnipname (wenn nichts aus Url kommt) String App defaultAppname (wenn nichts aus Url kommt)

Output Array array(Pfad, Snipname, Appname)

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 364: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 364

<ODI-DDOC-prepareIndex-2002-05-14-G>

Modulbezeichnung prepareIndex()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Lädt den Projektindex in den Speicher

Erfordert read_index(), i18n(), getProjectPath()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 13

Bytes 293

Cyclomatic Number 2

Page 365: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 365

Detailbeschreibung

Lädt den Projektindex in den Speicher. Dies geschieht am Anfang des Programmlaufes in odie.php. Sonst sollte diese Funktion nie aufgerufen werden, ausser durch Applikationen die einen Projektwechsel vornehmen z.B.: system/edit-project.

Diese Funktion übernimmt keine Parameter und liefert nichts zurück. Im Falle eines Fehlers wird eine Meldung ausgegeben.

Probleme

keine

Verbesserungsmöglichkeiten

Die Funktion sollte einen Fehlerwert zurückliefern statt eine Meldung auszugeben

Page 366: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 366

<ODI-DDOC-printSelect-2002-05-14-P>

Modulbezeichnung printSelect()

Dateiname core/printSelect

Versionsdatum 30-Mar-2002

Kurzbeschreibung Stellte eine <SELECT> Liste dar

Erfordert keine

Verantwortliche Pavlu

Autor Pavlu

LOC 7

Bytes 200

Cyclomatic Number 2

Page 367: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 367

Detailbeschreibung

Erzeugt den HTML Code für die Darstellung eines Arrays in der Form einer <SELECT>Liste. Zurückgeliefert wird nichts – ausgegeben das erzeugte Formularelement.

Input String name Name des Formularelements Array Liste die Liste der Werte

Output keiner

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 368: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 368

<ODI-DDOC-question-2002-05-14-K>

Modulbezeichnung question()

Dateiname system/sendpass

Versionsdatum 21-Feb-2002

Kurzbeschreibung Gibt ein Formular für die Reminder question aus

Erfordert -

Verantwortliche Zlabinger

Autor Kolm

LOC 9

Bytes 367

Cyclomatic Number 2

Page 369: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 369

Detailbeschreibung

Die Funktion question gibt ein Formular für die Reminder question aus. Benötigt wird der Benutzername sowie die Reminder question.

Input String username Der Benutzername String question Die Reminder question

Output keiner

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 370: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 370

<ODI-DDOC-rausTime-2002-05-14-M>

Modulbezeichnung rausTime()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Debugfunktion, Zeit ausgeben

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 12

Bytes 337

Cyclomatic Number 1

Page 371: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 371

Detailbeschreibung

Debugfunktion zum Testen des Parser- Zeitverhaltens. Die aktuelle Zeit wird mit der mit couTime genommenen Zeit verglichen, die Differenz ausgegeben. Die Dauer der Vorgänge zwischen den beiden Funktionsaufrufen wird ausgegeben.

Input

String text Textausgabe String savevar Variable, in der die Zeit gespeichert

wurde

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 372: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 372

<ODI-DDOC-read-2002-05-14-S>

Modulbezeichnung read()

Dateiname core/read

Versionsdatum 11-Mar-2002

Kurzbeschreibung liefert in einem Array das gewünschte Snip zurück

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 12

Bytes 197

Cyclomatic Number 2

Page 373: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 373

Detailbeschreibung Liefert in einem Array das gewünschte Snip zurück. Als Parameter wird der Snipname angegeben. Wird kein Snipname angegeben wird das aktuelle Snip verwendet.

Input String pattern der Snipname des zu landenden Snips

Output Array snip liefert das Snip als Array zurück

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 374: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 374

<ODI-DDOC-readAccess-2002-05-14-G>

Modulbezeichnung readAccess()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Prüft ob der Benutzer Lesezugriff hat

Erfordert makeIndexName(), isReservedName(), getActiveUser(),

getHeader(), checkReadAccess()

Verantwortliche Zlabinger, Pavlu

Autor Zlabinger

LOC 18

Bytes 401

Cyclomatic Number 4

Page 375: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 375

Detailbeschreibung

Liefert True zurück, wenn der Benutzer Lesezugriff auf das Snip hat. Ansonsten ist der Rückgabewert false.

Die eigentliche Überprüfung findet in der Funktion checkReadAccess() statt.

Input

String snip_name Name des zu überprüfenden Snips. String user_name Benutzername. Wenn Leerstring wird der

aktive Benutzer angenommen.

Output

Boolean Lesezugriff

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 376: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 376

<ODI-DDOC-read_index-2002-05-14-G>

Modulbezeichnung read_index()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Liest einen Projektindex ein.

Erfordert unserializeFile()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 10

Bytes 161

Cyclomatic Number 2

Page 377: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 377

Detailbeschreibung

Diese Funktion liest die Indexdatei eines Projekts ein.

Input

String name Dateiname der Indexdatei. &array daten Array, dass die Indexdaten empfängt

Output

Boolean Erfolg

Die Indexdaten sind ein Hash von Snip-Header Informationen mit dem Snip-Titel als Schlüssel.

Probleme

Index verschwindet manchmal

Verbesserungsmöglichkeiten

keine

Page 378: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 378

<ODI-DDOC-removeLinkerSymbols-2002-05-14-M>

Modulbezeichnung removeLinkerSymbols()

Dateiname lib/keywords.inc

Versionsdatum 18.04.2002

Kurzbeschreibung Entfernt Linkersymbole aus einem String

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 21

Bytes 450

Cyclomatic Number 5

Page 379: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 379

Detailbeschreibung

Alle Linkersymbole (":", "!", "@", "!!", "=", "=!", "?") werden aus dem übergebenen Array entfernt. Sterne (*) werden gefiltert, nur der Text bis zum ersten Stern wird behalden. Das bearbeitete Array wird zurückgeliefert.

Input

Array links Zu bearbeitendes Array

Output

Array links Arrayelemente ohne Linkersymbole

Probleme

Verbesserungsmöglichkeiten

-

Page 380: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 380

<ODI-DDOC-render-2002-05-14-M>

Modulbezeichnung render()

Dateiname lib/render.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Grundfunktion zum umwandeln von einem Format ins Andere

Erfordert render_html(), render_plain(), rtf_odie_header(), render_rtf(),

rtf_odie_close(), parse(), i18n()

Verantwortliche Maczejka, Pavlu, Zlabinger

Autor Maczejka

LOC 62

Bytes 1786

Cyclomatic Number 12

Page 381: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 381

Detailbeschreibung

Der übergebene String wird in eine XML- Struktur umgewandelt, und in das in Parameter 2 genannte Format mithilfe der jeweiligen render- Funktion umgewandelt. RENDERER- Grundfunktionalität: Die XML- Struktur wird sequentiell durchgearbeitet, Tags durch andere Tags oder jeweilige Formatierungsbefehle ersetzt (große case- Struktur).

Input

String &string Zu rendernder String String type Art der Ausgabe

„binary“, „html“, „text“, „ascii“, „rtf“, „printable“

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 382: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 382

<ODI-DDOC-render_html-2002-05-14-M>

Modulbezeichnung render_html()

Dateiname lib/render_html.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Rendern ins HTML- Format

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 129

Bytes 3002

Cyclomatic Number 20

Page 383: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 383

Detailbeschreibung

Ausgabeformat ist HTML. Odie- Interne Tags werden zusätzlich erkannt und in lesbare Form umgewandelt. Ansonsten entspricht die Funktionalität der Funktion unparse.

Input

Array xml XML- Struktur

Output

String rendered Gerenderte XML- Struktur

Probleme

-

Verbesserungsmöglichkeiten

-

Page 384: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 384

<ODI-DDOC-render_plain-2002-05-14-M>

Modulbezeichnung render_plain()

Dateiname lib/render_plain.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Rendern ins Plaintext- Format

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 125

Bytes 2725

Cyclomatic Number 35

Page 385: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 385

Detailbeschreibung

Formatierungsbefehle von HTML werden in eine im ASCII- Modus lesbare Form gebracht. Elemente wie Listen, Tabellen oder Überschriften werden formatiert. Details über Umwandlungen der einzelnen Tags sind in der Case- Struktur zu finden.

Input

Array xml XML- Struktur

Output

String rendered Gerenderte XML- Struktur

Probleme

Langsam bei umfangreichen Dokumenten

Verbesserungsmöglichkeiten

-

Page 386: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 386

<ODI-DDOC-reder_rtf-2002-05-14-M>

Modulbezeichnung render_rtf()

Dateiname lib/render_rtf.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Ausgabe einer XML- Struktur im RTF- Format

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 115

Bytes 2519

Cyclomatic Number 25

Page 387: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 387

Detailbeschreibung

Siehe render_html/render_plain. Ausgabe sind RTF- Formatierungsbefehle.

Input

Array xml XML- Struktur

Output

String rendered Gerenderte XML- Struktur

Probleme

Tabellen laut RTF 1.5 Spezifikation bringen Microsoft Word2000 zum Absturz.

Verbesserungsmöglichkeiten

-

Page 388: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 388

<ODI-DDOC-restOfTime-2002-05-14-S>

Modulbezeichnung restOfTime()

Dateiname core/restOfTime

Versionsdatum 24-Mar-2002

Kurzbeschreibung gibt einen String mit der Dauer der angegebenen Zeitangaben

zurück

Erfordert parseDateTime()

Verantwortliche Seywerth

Autor Seywerth

LOC 68

Bytes 2221

Cyclomatic Number 13

Page 389: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 389

Detailbeschreibung Gibt einen String mit der Dauer der angegebenen drei Zeitangaben zurück. Dabei wird ausgehend vom 1. Parameter zuerst überprüft ob sich der Start und der End-Zeitpunkt (2. und 3. Parameter) am selben Tag befinden. Danach wird die Dauer berechnet und in Worten und Zahlen, internationalisiert ausgedrückt (z.B.: "1 hour and 20 min."). Die Parameter sind Zeitangaben nach dem parseDateTime-Format.

Input Array curDate stellt den Ausgangszeitpunkt dar Array start definiert den Startzeitpunkt der Messung Array end definiert den Endzeitpunkt der Messung

Output String restString die Dauer der Zeitspanne ausformuliert

Probleme

Die Funktion ist derzeit nur für einen Tag ausformuliert. Das bedeutet, dass Zeitspannen über einen Tag nicht vollständig berücksichtigt werden.

Verbesserungsmöglichkeiten

Eine Anpassung auf beliebige Zeitspannen über mehrere Tage, Monate,... hinweg.

Page 390: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 390

<ODI-DDOC-rtf_odie_close-2002-05-14-M>

Modulbezeichnung rtf_odie_close()

Dateiname lib/render_rtf.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Ausgabe eines RTF- Footers für ein Dokument

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 3

Bytes 38

Cyclomatic Number 1

Page 391: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 391

Detailbeschreibung

Standard Footerbefehle für ein Odie- RTF- Dokument werden ausgegeben, in diesem Fall nur eine geschlossene geschwungene Klammer.

Input

keiner

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 392: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 392

<ODI-DDOC-rtf_odie_header-2002-05-14-M>

Modulbezeichnung rtf_odie_header()

Dateiname lib/render_rtf.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Ausgabe eines RTF- Headers für ein Dokument

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 30

Bytes 961

Cyclomatic Number 1

Page 393: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 393

Detailbeschreibung

Standard Headerbefehle für ein Odie- RTF- Dokument werden ausgegeben.

Input

keiner

Output

keiner

Probleme

Verbesserungsmöglichkeiten

-

Page 394: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 394

<ODI-DDOC-saveEvent-2002-05-14-S>

Modulbezeichnung saveEvent()

Dateiname core/saveEvent

Versionsdatum 14-Feb-2002

Kurzbeschreibung speichert ein Event (Calendar) in das zugehörige cal-Snip

Erfordert parseDateTime(), getDayInfo()

Verantwortliche Seywerth

Autor Seywerth

LOC 110

Bytes 4186

Cyclomatic Number 14

Page 395: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 395

Detailbeschreibung Speichert ein Event der Applikation 'Calendar' in das zugehörige cal-Snip. Ist das Snip schon vorhanden wird an der richtigen Stelle eingefügt. Start- und End-Zeitpunkt werden vertauscht falls diese verkehrt eingegeben wurden.

Der Parameter datestring hat folgendes Format: cal-dd-mmm-yyyy (z.B.: cal-12-Jan-2002). Die Parameter 'start' und 'end' sind im parseDateTime-Format.

Das aktuelle Event wird als Array zurückgeliefert. Es ist wie folgt aufgeteilt: event[title], event[description], event[start], event[end], event[editor].

Input String datestring stellt den Namen des cal-Snips dar String event_title der Titel des Events String event_desc ist die Beschreibung des Events String start stellt den Startzeitpunkt des Events dar String end stellt den Endzeitpunkt des Events dar

Output Array events das aktuelle Event als Array

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 396: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 396

<ODI-DDOC-saveExtern-2002-05-14-K>

Modulbezeichnung saveExtern()

Dateiname core/saveExtern

Versionsdatum 01-Apr-2002

Kurzbeschreibung Speichert externe Dateien, bzw. verarbeitet Bilder

Erfordert getProjectPath(), getHeader(), writeHeader(), setBacklinks(),

getSnip(), getActiveProject()

Verantwortliche Kolm

Autor Kolm

LOC 144

Bytes 4978

Cyclomatic Number 28

Page 397: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 397

Detailbeschreibung

Diese Funktion bildet das Herz der Extern- Applikation. Sie ist für die Erstellung der unter Umständen notwendigen thumbs-Ordner zuständig und entscheidet wie mit Bildern verfahren wird. Bei image-type pjpeg, jpg, jpeg, png werden Thumbs erzeugt und im Unterordner thumbs abgelegt. Falls es sich um gif oder bmp handelt, kann GD nicht damit umgehen und es werden keine Thumbs erzeugt.

Falls es sich um Files mit der Endung DOC, EXE, .. handelt werden sie ohne weitere Behandlung mit dem content-type "extern" versehen und bei der Darstellung wird auf passende Icons zur grafischen Darstellung zurückgegriffen.

Wenn ein content-type übergeben wird, der einem im odie gängigen content-type entspricht, wird geprüft ob der content-type für das übergebene File zulässig ist. Bei positivem Ergebnis wird das File als Snip mit dem gewünschten content-type im Snip-space abgelegt, andernfalls wird der content-type ebenfalls auf "extern" gesetzt. Input

Array userfile Das HTTP_POST_USERFILE Informationen zum raufgeladenen File, die vom Webserver zur Verfügung gestellt werden

String content-type Content-type String description Beschreibung zu der Datei

Output String result success bei Erfolg, sonst eine Fehlermeldung

Probleme

GD unterstützt nicht alle Imageformate.

Verbesserungsmöglichkeiten

keine

Page 398: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 398

<ODI-DDOC-saveInterface-2002-05-14-M>

Modulbezeichnung saveInterface()

Dateiname core/saveInterface

Versionsdatum 25.02.2002

Kurzbeschreibung Setzt das aktuelle Interface in Session und Userdata

Erfordert setSessionData(), setUserData()

Verantwortliche Kolm, Pavlu

Autor Maczejka

LOC 16

Bytes 294

Cyclomatic Number 3

Page 399: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 399

Detailbeschreibung

Ein Interface wird übergeben, und sowohl in der aktuellen Session als auch in den Benutzerdaten, sofern der Benutzer nicht anybody ist, gespeichert.

Input

String interface Zu speicherndes Interface

Output

Boolean true/false Erfolgreich/Fehler

Probleme

-

Verbesserungsmöglichkeiten

-

Page 400: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 400

<ODI-DDOC-saveLanguage-2002-05-14-K>

Modulbezeichnung saveLanguage()

Dateiname core/saveLanguage

Versionsdatum 25-Feb-2002

Kurzbeschreibung Zum setzen der gewünschten Sprache

Erfordert setSessionData(), setUserData()

Verantwortliche Kolm

Autor Kolm

LOC 18

Bytes 297

Cyclomatic Number 3

Page 401: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 401

Detailbeschreibung

Diese Funktion setzt die Sprache auf den gewünschten Wert und speichert diese im Sessionobjekt ab. Falls der aktive Benutzer angemeldet ist wird die Sprache auch bei seinen Userdaten gespeichert. Sprich wenn er sich das nächste Mal anmeldet, hat er noch immer seine vorher gewählte Sprache.

Input String pattern Die gewünschte Sprache

Output boolean success true bei Erfolg, false beim Scheitern

von setUserData/setSessionData

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 402: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 402

<ODI-DDOC-saveTodo-2002-05-14-K>

Modulbezeichnung saveTodo()

Dateiname core/saveTodo

Versionsdatum 21-Feb-2002

Kurzbeschreibung Auswertung der Checkboxzustände, hinzufügen & ändern

neuer Tasks

Erfordert parseDate(), unparse(), writeSnip(), getActiveUser()

Verantwortliche Kolm

Autor Kolm

LOC 73

Bytes 2160

Cyclomatic Number 11

Page 403: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 403

Detailbeschreibung

saveTodo ermöglicht es, die Checkboxzustände auszuwerten, neue Tasks abzuspeichern und bei Bedarf Tasks upzudaten.

Beim Aufruf muss das Snipobjekt(username, title) gefüllt sein. Weiters muss ein vorhandenes Task-Array sowie das Array mit den Forminhalten bekannt sein.

Der Aufbau des Task-Arrays ist unter der Funktionsreferenz von getTodo vorzufinden. Das todo_form Array muss immer die auf 'on' gesetzten Statusfelder und falls Änderungen vorgenommen worden sind, bzw. ein neuer Task hinzugefügt wurde, weitere Felder besitzen. Ein Beispiel zur Veranschaulichung:

Array ( [status] => Array ( [task_10] => on [task_1] => on [task_6] => on [task_7] => on [task_9] => on [task_14] => on [task] => on [task_8] => on [task_5] => on [task_3] => on )

[priority] => 5 [name] => neuer [desc] => task [due_day] => 1 [due_month] => Jan [due_year] => 2002 [key] => 0

)

Page 404: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 404

Input Array Snip Das Snipobjekt Array Task Task-Array

Array todo_form Die Formulardaten

Output Zurückgegeben wird ein Array bestehend aus einem Fehlercode, bei validem Datum ein neues Snipobjekt und bei keinerlei Fehlern noch zusätzlich ein neues Task-Array.

return array (1, 0, 0); kein valides Datum return array (2, snip, 0); getSnip/writeSnip Error return array (0, snip, task); alles ok

Probleme

keine

Verbesserungsmöglichkeiten

Rückgabewerte könnten übersichtlichter gestaltet werden

Page 405: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 405

<ODI-DDOC-schleimer-2002-05-14-P>

Modulbezeichnung schleimer()

Dateiname core/keepAliveScript

Versionsdatum 26-Mär-2002

Kurzbeschreibung Schickt vom Client keepalive Requests an den Server solange ein

Snip bearbeitet wird.

Erfordert -

Verantwortliche Pavlu, Zlabinger

Autor Pavlu

LOC 10

Bytes 389

Cyclomatic Number 1

Page 406: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 406

Detailbeschreibung

In regelmässigen Zeitabständen, die in {settings} definiert sind, erfordert der Client vom Server neue Bilder. Diese Requests teilen dem Server mit, dass noch bearbeitet wird und das Snip bleibt gesperrt. Bleibt diese ich-bin-noch-da Nachricht für längere Zeit aus, muss der Server vermuten, dass der Browser geschlossen und die Änderungen verworfen wurden. Das Snip wird wieder freigegeben.

Input keiner

Output keiner

Probleme

keine

Verbesserungsmöglichkeiten

Wenn für das problemlose Bearbeiten von Snips JavaScript benötigt wird, könnte man diese Keepalive Messages auch auf des Sessionmanagement ausdehnen. Eine JavaScript-freie Lösung für Concurrent Edits finden

Page 407: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 407

<ODI-DDOC-sendpass-2002-05-14-G>

Modulbezeichnung sendpass()

Dateiname core/sendpass

Versionsdatum 30-Mär-2002

Kurzbeschreibung Schickt ein Passwort an eine E-Mail Adresse.

Erfordert i18n()

Verantwortliche Zlabinger, Pavlu

Autor Zlabinger

LOC 9

Bytes 367

Cyclomatic Number 2

Page 408: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 408

Detailbeschreibung

Sendet ein Passwort an eine E-Mail Adresse.

Input

String email email-adresse, der die post übermittelt werden soll String username der name des benutzers String passwort sein passwort

Output

Diese Funktion liefert keinen Wert zurück. Im Falle eines Fehlers wird der Text ausgegeben.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 409: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 409

<ODI-DDOC-serializeFile-2002-05-14-G>

Modulbezeichnung

serializeFile()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Speichert ein Array in eine Datei

Erfordert myfopen(), myfclose()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 19

Bytes 348

Cyclomatic Number 5

Page 410: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 410

Detailbeschreibung

Schreibt ein Array in eine Datei. Diese Funktion verwendet die PHP-Funktion serialize() um die Daten in maschinen-lesbar Form zu bringen. Liefert im Erfolgsfall true, ansonsten false.

Input

String filename &Array daten mixed file

Output

Boolean Erfolg

Im Argument file kann entweder ein gültiges Filehandle übergeben werden oder false. Im letzteren Fall öffnet die Funktion die Datei selbst.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 411: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 411

<ODI-DDOC-setActiveProject-2002-05-14-S>

Modulbezeichnung setActiveProject()

Dateiname lib/project.inc

Versionsdatum 18-Apr-2002

Kurzbeschreibung setzt das akt. Projekt und gibt zurück ob das Projekt vorhanden ist

Erfordert keine

Verantwortliche Zlabinger

Autor Seywerth

LOC 34

Bytes 631

Cyclomatic Number 5

Page 412: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 412

Detailbeschreibung Setzt das aktuelle Projekt und gibt zurück ob das Projekt vorhanden ist. Ist das Projekt nicht vorhanden wird 'false' zurückgeliefert.

Input String proj der Projektname der versucht wird zu setzten

Output Bool true|false ob das setzten erfolgreich war

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 413: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 413

<ODI-DDOC-setBacklinks-2002-05-14-K>

Modulbezeichnung setBacklinks()

Dateiname lib/backlinks.inc

Versionsdatum 25-Mär-2002

Kurzbeschreibung Setzt Links & Backlinks im Indexeintrag des jeweiligen Snips

Erfordert getKeywords(), getCommentSnips(), unsetBacklinks(),

getHeader(), getActiveUser(), writeHeader()

Verantwortliche Kolm

Autor Kolm

LOC 45

Bytes 1299

Cyclomatic Number 8

Page 414: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 414

Detailbeschreibung

Diese Funktion ist für die Aktualisierung bzw. Eintragung der Links, Backlinks und der Keywords in den jeweiligen Snipobjekten zuständig.

Zunächst werden Keywords gesetzt und die "neuen" Links mit den für den Snip existierenden Comment-Snips gemerged. Anschließend wird geprüft, welche Links/Backlinks nicht mehr gültig sind indem die "neuen" mit den "alten" Links vergleicht werden. Nachdem alle nicht mehr gültigen Links inkl. dazugehörenden Backlinks gelöscht wurden, werden die neuen Links, die nicht im aktuellen Snipobjekt stehen, eingetragen. Parallel dazu werden die Backlinks in jenen Snips eingetragen, auf die im aktuellen Snip gelinkt wird.

Am Ende wird das aktuelle Snipobjekt mit writeHeader() geschrieben.

Input Array Snip Ein referenziertes Snipobjekt

Output keiner

Probleme

Bei der Erstellung und Korrektur von Backlinks sind einige Schwierigkeiten aufgetreten, was die Konsistenz der Daten angeht. Da bei einem Schreibvorgang nicht alle Links/Backlinks auf den neuesten Stand gebracht werden können (Zeitproblem), musste eine weniger aufwendigere Lösung gefunden werden. Diese deckt aber nicht alle Fälle ab und es könnte unter Umständen zu Inkonsistenzen führen.

Verbesserungsmöglichkeiten

Überdenken des Backlinkalgorithmus.

Page 415: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 415

<ODI-DDOC-setProjectMembers-2002-05-14-G>

Modulbezeichnung setProjectMembers()

Dateiname core/setProjectMembers

Versionsdatum 26-Feb-2002

Kurzbeschreibung Setzt die Projektmitglieder eines Projekts fest.

Erfordert getProjectMembers(), getUserData(), getActiveProject(),

setUserData(), myfopen(), myfclose(), i18n()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 6

Bytes 134

Cyclomatic Number 1

Page 416: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 416

Detailbeschreibung

Diese Funktion übernimmt ein Array mit den Projektzugehörigkeits-Informationen und schreibt sie in das Memberfile des Projekts. Der dritte Parameter update_user bestimmt, ob dabei auch die Benutzerseitig gespeicherten Daten aktualisiert werden sollen.

Input

String projektname &Array daten Boolean update_user

Output

Boolean Erfolg

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 417: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 417

<ODI-DDOC-setRights-2002-05-14-G>

Modulbezeichnung setRights()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Legt die Rechte für ein Snip fest.

Erfordert makeIndexName(), getHeader(), writeAccess(), writeHeader(),

Verantwortliche Zlabinger, Pavlu

Autor Zlabinger

LOC 33

Bytes 808

Cyclomatic Number 5

Page 418: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 418

Detailbeschreibung

Übernimmt ein Array mit den Zugriffsrechten und trägt sie in den Index ein, wenn der User Schreibzugriff auf das Snip ist.

Input

String snipname Array rechte String username

Output

Boolean Erfolg

Das Rechte-Array hat folgenden Aufbau

Array ( [write_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) [read_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) )

Page 419: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 419

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 420: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 420

<ODI-DDOC-setSessionData-2002-05-14-G>

Modulbezeichnung setSessionData()

Dateiname lib/user.inc

Versionsdatum 15-Apr-2002

Kurzbeschreibung Schreibt die Daten einer Session auf die Platte.

Erfordert serializeFile()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 11

Bytes 206

Cyclomatic Number 2

Page 421: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 421

Detailbeschreibung

Schreibt die Daten einer Session auf die Platte. Im Falle eines Fehlers kommt false zurück.

Input

Array session-daten

Die Session-Daten haben folgenden Aufbau:

Array ( [id] => f528764d624db129b32c21fbca0cb8d6 [username] => vpavlu [interface] => vanilla [lastaction] => 1019458260 [language] => english [date] => 14-Apr-2002 [project] => odie )

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 422: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 422

<ODI-DDOC-setUserData-2002-05-14-G>

Modulbezeichnung setUserData()

Dateiname lib/user.inc

Versionsdatum 15-Apr-2002

Kurzbeschreibung Schreibt die User-Daten in die User DB

Erfordert myfopen(), myfclose()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 6

Bytes 154

Cyclomatic Number 1

Page 423: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 423

Detailbeschreibung

Schreibt die User-Daten auf die Festplatte. Im Falle eines Fehlers wird false zurückgeliefert.

Input

Array user-daten

Die User-Daten haben folgenden Aufbau:

Array ( [username] => vpavlu [name] => Pavlu [firstname] => Viktor [email] => [email protected] [reminder_question] => skorpa und ... [reminder_answer] => nativa [password] => f2a0ffe83ec8d44f2be4b624b0f47dde [interface] => vanilla [language] => english [projects] => Array ( [0] => default [2] => odp [3] => odie )

)

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 424: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 424

<ODI-DDOC-showAllMeetings-2002-05-14-M>

Modulbezeichnung showAllMeetings()

Dateiname core/showAllMeetings

Versionsdatum 17.04.2002

Kurzbeschreibung Zeigt eine Meetingübersicht an

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 114

Bytes 3711

Cyclomatic Number 10

Page 425: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 425

Detailbeschreibung

Eine Übersicht über alle Besprechungsprotokolle im aktuellen Projekt wird ausgegeben. Statistische Informationen sind: Protokolleur, Anwesende, Beginn und Ende sowie Dauer. Weiters werden alle fehlerhaften Meeting- Snips angezeigt.

Input

Keiner

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 426: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 426

<ODI-DDOC-showMeeting-2002-05-14-M>

Modulbezeichnung showMeeting()

Dateiname system/meeting

Versionsdatum 17.04.2002

Kurzbeschreibung Anzeigen eines Besprechungsprotokolls

Erfordert parse(), unparse(), i18n(), stx_parse(), writeAccess(), form_href()

Verantwortliche Maczejka

Autor Maczejka

LOC 124

Bytes 4007

Cyclomatic Number 7

Page 427: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 427

Detailbeschreibung

Formschöne Darstellung eines Besprechungsprotokollsnips am Bildschirm mit Hilfe von HTML. Wird false übergeben, wird der edit- Button ausgeschaltet.

Input

Boolean editable Bearbeitbar oder nicht

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 428: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 428

<ODI-DDOC-showWordList -2002-05-14-M>

Modulbezeichnung showWordList()

Dateiname system/dictgen

Versionsdatum 17.04.2002

Kurzbeschreibung Anzeige eines Wörterbuchs in HTML

Erfordert loadLangs(), i18n(), form_href()

Verantwortliche Maczejka

Autor Maczejka

LOC 114

Bytes 3282

Cyclomatic Number 13

Page 429: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 429

Detailbeschreibung

Übergeben wird ein Dicionary und eine id des Eintrags, der zum bearbeiten gekennzeichnet sein soll. Die Wörter werden nach Sprachen geordnet in einer formatierten Liste ausgegeben, zusammen mit Auswahlknöpfen zum Bearbeiten und Löschen.

Input

Array dictionary Wörterbuchstruktur Int id Welcher Eintrag zum Bearbeiten

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 430: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 430

<ODI-DDOC-snipErrorMsg-2002-05-14-S>

Modulbezeichnung snipErrorMsg()

Dateiname lib/utils.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung gibt ein Array mit dem Inhalt eines beschriebenen Errors zurück

Erfordert getActiveProject(), i18n()

Verantwortliche Zlabinger

Autor Seywerth

LOC 21

Bytes 951

Cyclomatic Number 1

Page 431: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 431

Detailbeschreibung Gibt ein Array mit dem Inhalt eines beschriebenen Errors zurück.

Dieses enthält folgende Informationen: snip_data['title'] snip_data['project'] snip_data['creator'] snip_data['editor'] snip_data['edit_timestamp'] snip_data['keywords'] snip_data['read_count'] snip_data['content-type'] snip_data['content'] snip_data['creation_timestamp'] snip_data['write_list'] snip_data['read_list'] snip_data['backlinks'] snip_data['links'] snip_data['size'] snip_data['description']

Input String title der Titel des Fehlers String message die Beschreibung des Fehlers

Output Array snip_data ein Array mit der Beschreibung des Errors

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 432: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 432

<ODI-DDOC-snipExists-2002-05-14-P>

Modulbezeichnung snipExists()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Prüft, ob ein Snip existiert

Erfordert makeIndexName()

Verantwortliche Pavlu

Autor Pavlu

LOC 17

Bytes 657

Cyclomatic Number 1

Page 433: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 433

Detailbeschreibung

Prüft ob ein Snip im aktuellen Projekt existent ist. Wenn der zweite Parameter weggelassen oder auf FALSE gesetzt wird, gelten gelöschte Snips als nicht vorhanden.

Input String Snipname welches Snip geprüft werden soll boolean include_deleted gelöschte Snips sollen als existent gewertet

werden Output

Boolean exists ob Snipname existiert

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 434: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 434

<ODI-DDOC-strSplit-2002-05-14-P>

Modulbezeichnung strSplit()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung wie split(), erlaubt aber die Angabe einer gewünschten

Elementzahl

Erfordert -

Verantwortliche Pavlu

Autor Pavlu

LOC 30

Bytes 480

Cyclomatic Number 7

Page 435: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 435

Detailbeschreibung

Zerteilt den angegebenen String bei jedem Vorkommen des Trennzeichens. Die so entstehenden Elemente werden in ein Array der angegebenen Länge eingetragen und zurückgeliefert. Elemente, die zuviel sind, werden verworfen. Fehlende Elemente werden mit Leerstrings aufgefüllt.

Input String delim Das Trennzeichen String subject String, der zerteilt werden soll Integer nElements diese Anzahl von Elementen wird erzwungen

Output Array Tokens die einzelnen Elemente

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 436: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 436

<ODI-DDOC-stx_parse-2002-05-14-P>

Modulbezeichnung

stx_parse()

Dateiname lib/stx.inc

Versionsdatum 25-Mär-2002

Kurzbeschreibung Nimmt die Strukturierung eines intuitiv eingegeben Texts vor

Erfordert styleBlock()

Verantwortliche Pavlu

Autor Pavlu

LOC 152

Bytes 3760

Cyclomatic Number 18

Page 437: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 437

Detailbeschreibung

Nimmt die Ersetzung von STX-Symbolen vor und liefert den neuen Text zurück. Folgende Strukturierungen werden vorgenommen:

-wort-

durchgestrichen

/wort/

kursiv

*wort*

fett

_wort_

unterstrichen

'wort' nonproportional wort -- definition Defnitionsliste wort --- definition schöne Definitionsliste wort --> wort logische Gliederung in if-then Blöcke URLs werden in Links umgewandelt Listen (ordered und unordered) Textgliederung (<div> und <p> mit Stufennummern) --- Horizontale Trennline

Ausserdem kann über STX-Optionen eine Numerierung und/oder ein Index erzeugt werden. STX-Optionen werden in der ersten Zeile des STX-Dokuments angegeben. 'index', 'break' und 'numbered' sind mögliche Werte.

#STX:index,numbered

'Break' veranlasst den STX-Parser Zeilenwechsel auch nach physischen Zeilen einzufügen. Per default werden nur nach logischen Zeilen Zeilenwechsel eingefügt.

Input

String text

Output

String formatierter_text

Probleme

keine

Verbesserungsmöglichkeiten

Benuterdefinierte Erweiterung der Texterkennung, Anpassbarkeit.

Page 438: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 438

<ODI-DDOC-stx_rep -2002-05-14-P>

Modulbezeichnung

stx_rep()

Dateiname lib/stx.inc

Versionsdatum 25-Mär-2002

Kurzbeschreibung Nimmt die Ersetzung der einzeiligen STX-Operatoren vor.

Erfordert _

Verantwortliche Pavlu

Autor Pavlu

LOC 36

Bytes 1686

Cyclomatic Number 2

Page 439: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 439

Detailbeschreibung

Nimmt die Ersetzung der einzeiligen STX-Operatoren vor. Diese Funktion wird von styleBlock() aufgerufen und liefert die neue Zeile zurück.

Folgende Ersetzungen werden vorgenommen:

-wort-

durchgestrichen

/wort/

kursiv

*wort*

fett

_wort_

unterstrichen

'wort' nonproportional wort -- definition Defnitionsliste

Diese Ersetzungssymbole werden nur an Wortgrenzen beachtet. Ein Hochkomma oder anderes Ersetzungszeichen inmitten eines Wortes bleibt das eingegebene Zeichen. Wenn Ersetzungszeichen mit Pipes umschlossen werden, werden sie auf jeden Fall ersetzt.

Beispiel: |*P*|ersonal |*H*|ypertext |*P*|rocessor

Personal Hypertext Processor das wäre ohne Pipes um die Formatierugssymbole nicht möglich

Input

String zeile

Output

String formatierte_zeile

Probleme

keine

Verbesserungsmöglichkeiten

intuitivere Gestaltung der Formatierungserkennung hinzufügen benutzerdefinierter Formatierungen

Page 440: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 440

<ODI-DDOC-styleBlock-2002-05-14-P>

Modulbezeichnung styleBlock()

Dateiname lib/stx.inc

Versionsdatum 27-Apr-2002

Kurzbeschreibung führt STX-Ersetzungen auf Blockebene durch

Erfordert to_s(), linkUrls(), stx_rep()

Verantwortliche Pavlu

Autor Pavlu

LOC 126

Bytes 2994

Cyclomatic Number 24

Page 441: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 441

Detailbeschreibung nimmt alle STX-Formatierungen einer logischen Zeile vor. Mehrere Zeilen mit gleicher Einrückung sind zu einer logischen Zeile zusammengefasst. Eine logische Zeile oder indention-Block besteht aus mindestens einer physischen und keiner leeren Zeile. styleBlock wird für alle nicht-escapten Blocke aufgerufen und führt die Blocklevel Ersetzungen durch. Für die einzeiligen STX-Ersetzungen wird die Funktion stx_rep aufgerufen.

Input Array lines physische Zeilen eines Blocks Integer indention Einrückung

Output String Formatierter String

Probleme

Was der Entwickler als intuitiv empfindet, ist für Andere Syntax die zu erlernen ist.

Verbesserungsmöglichkeiten

Hinzufügen benutzerdefinierter Eingabesymbole, Anpassbarkeit.

Page 442: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 442

<ODI-DDOC-to_blocktext-2002-05-14-M>

Modulbezeichnung to_blocktext()

Dateiname lib/render_plain.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Blocksatzmacher

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 5

Bytes 103

Cyclomatic Number 1

Page 443: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 443

Detailbeschreibung

Macht den String zum Blocksatz in der übergebenen Länge. Verwendet wordwrap()-

Input

String str Zu bearbeitender String Int width Blockbreite

Output

String str Blocksatzstring

Probleme

-

Verbesserungsmöglichkeiten

-

Page 444: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 444

<ODI-DDOC-to_s-2002-05-14-P>

Modulbezeichnung to_s()

Dateiname lib/stx.inc

Versionsdatum 27-Apr-2002

Kurzbeschreibung konvertiert eine logische zu einer physischen Zeile

Erfordert -

Verantwortliche Pavlu

Autor Pavlu

LOC 5

Bytes 97

Cyclomatic Number 1

Page 445: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 445

Detailbeschreibung

Alle physischen Zeilen eines Blocks werden in einen String zusammengefügt und zurückgeliefert.

Input Array lines Physischen Zeilen des Blocks Integer indention Einrückung des Blocks

Output String Formatierter String

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 446: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 446

<ODI-DDOC-trace-2002-05-14-M>

Modulbezeichnung trace()

Dateiname lib/debug.inc

Versionsdatum 05.03.2002

Kurzbeschreibung Debugausgabe von Arrays und Strings

Erfordert htmlize()

Verantwortliche Pavlu

Autor Maczejka

LOC 22

Bytes 376

Cyclomatic Number 3

Page 447: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 447

Detailbeschreibung

Übergeben wird ein Array bzw. String. Bei einem Array wird ein „<pre>“ tag um die Ausgabe der php-Funktion „print_r“ (Anzeige von Arraystrukturen) ausgegeben, nachdem das übergebene Array mit „htmlize“ bearbeitet wurde. Ist der Parameter ein String, so wird dieser mit „htmlentities“ bearbeitet und zwischen einem „<pre>“ tag ausgegeben.

Input

Mixed s Auszugebender String/Array Int really=1 Ausgabe oder nicht

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 448: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 448

<ODI-DDOC-translate-2002-05-14-M>

Modulbezeichnung translate()

Dateiname lib/languages.inc

Versionsdatum 19.02.2002

Kurzbeschreibung Übersetzung eines Wortes

Erfordert loadDictionary(), loadLangs(), updateDictionary(),

writeDictionary()

Verantwortliche Maczejka, Pavlu

Autor Maczejka

LOC 39

Bytes 804

Cyclomatic Number 5

Page 449: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 449

Detailbeschreibung

Ein Wort wird als Parameter Übergeben. Ist dieses Wort noch nicht im Dictionary, so wird es hinzugefügt. Wenn schon, wird das Wort im Dictionary gesucht, und in der in der Session gespeicherten Sprache wieder zurückgeliefert. Wird das Wort in der gewünschten Sprache nicht gefunden, wird es in der Defaultsprache zurückgeliefert.

Input

String wort Zu übersetzendes Wort

Output

String wort Übersetztes Wort

Probleme

Schreiben eines neuen Wortes während der DictionaryGenerator läuft -> Doppelter Schreibzugriff auf languages.res

Verbesserungsmöglichkeiten

Sperre für languages.res einbauen.

Page 450: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 450

<ODI-DDOC-trimAll-2002-05-14-M>

Modulbezeichnung trimAll()

Dateiname lib/render_plain.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Entfernt alle Whitespace-Characters vom Anfang und Ende eines

Strings

Erfordert -

Verantwortliche Pavlu

Autor Pavlu

LOC 14

Bytes 434

Cyclomatic Number 4

Page 451: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 451

Detailbeschreibung

Vom übergebenen String werden alle Whitspace-Characters von beiden Seiten entfernt. Als Whitespace-Characters gelten: CR (10), LF (13), blank (32), htab (9), vtab(11), NUL (0)

Input

String string Zu bearbeitender String

Output

String trimmed gesäuberter String

Probleme

-

Verbesserungsmöglichkeiten

PHPeigene Funktion verwenden (ist aber erst ab PHP4.07 verfügbar)

Page 452: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 452

<ODI-DDOC-true-2002-05-14-M>

Modulbezeichnung true()

Dateiname lib/render_rtf.inc

Versionsdatum 27.03.2002

Kurzbeschreibung Debugfunktion

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 4

Bytes 35

Cyclomatic Number 1

Page 453: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 453

Detailbeschreibung

Setzt Parameter 1 auf „true“. Ursprünglich wurde noch eine Debugvariable auf „true“ gesetzt. Entspricht jetzt „$var = true;“.

Input

Boolean &var Auf TRUE zu setztende Variable

Output -

Probleme

-

Verbesserungsmöglichkeiten

-

Page 454: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 454

<ODI-DDOC-unlockSnip-2002-05-14-G>

Modulbezeichnung unlockSnip()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Gibt ein vorher mit lockSnip() gesperrtes Snip wieder frei

Erfordert myfopen(), getProjectPath(), myfclose(), unserializeFile(),

serializeFile(), getSessionId()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 30

Bytes 612

Cyclomatic Number 4

Page 455: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 455

Detailbeschreibung

Gibt ein zuvor mit lockSnip() gesperrtes Snip wieder frei. Natürlich kann das nur jener Benutzer machen, der das Snip auch gesperrt hat.

Input

String sniptitle

Output

Boolean erfolg

Probleme

Flock() Implementierung schleierhaft bzw. nicht dokumentiert

Verbesserungsmöglichkeiten

keine

Page 456: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 456

<ODI-DDOC-unparse-2002-05-14-M>

Modulbezeichnung unparse()

Dateiname lib/parser.inc

Versionsdatum 17.04.2002

Kurzbeschreibung Eine XML- Struktur wird wieder in einen String umgewandelt

Erfordert -

Verantwortliche Maczejka

Autor Maczejka

LOC 31

Bytes 634

Cyclomatic Number 6

Page 457: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 457

Detailbeschreibung

Übergeben wird eine durch parse erstellte XML- Struktur, zurückgeliefert ein String, der das XML- Dokument repäsentiert, welches durch parse umgewandelt wurde.

Input

Array xml XML- Struktur

Output

String xml XML- Dokument als String

Probleme

-

Verbesserungsmöglichkeiten

-

Page 458: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 458

<ODI-DDOC-unserializeFile-2002-05-14-G>

Modulbezeichnung unserializeFile()

Dateiname lib/utils.inc

Versionsdatum 11-Mär-2002

Kurzbeschreibung Liest ein Array aus einer Datei.

Erfordert myfopen(), myfclose()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 31

Bytes 517

Cyclomatic Number 7

Page 459: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 459

Detailbeschreibung

Liest ein Array aus einer Datei, das zuvor mit serializeFile() hineingeschrieben wurde. Liefert entweder die Daten oder false.

Input

String dateiname Mixed file

Output

Boolean false, wenn Fehler Array Daten

File ist entweder ein geöffnetes Filehandle oder false. In diesem fall öffnet die Funktion die Datei selbst.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 460: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 460

<ODI-DDOC-unsetBacklinks-2002-05-14-K>

Modulbezeichnung unsetBacklinks()

Dateiname lib/backlinks.inc

Versionsdatum 25-Mär-2002

Kurzbeschreibung Löscht nicht mehr gültige Links & Backlinks aus dem

Indexeintrag des jeweiligen Snips

Erfordert getHeader(), getActiveUser(), writeHeader()

Verantwortliche Kolm

Autor Kolm

LOC 20

Bytes 595

Cyclomatic Number 3

Page 461: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 461

Detailbeschreibung

Die Funktion dient dazu Backlinks zu löschen. Dabei werden die vorhandenen links mit den new_links verglichen und dann bei den Backlink-Snips angepasst. Beim Löschen eines Snips zum Beispiel - wird new_links weggelassen und somit als leeres Array angenommen. So werden alle Backlinks für dieses Snip gelöscht.

Input Array Snip Ein referenziertes Snipobjekt Array new_links Die Links nach dem Schreibvorgang, die

von getKeywords generiert wurden. Sprich die neuen Links

Output keiner

Probleme

Bei der Erstellung und Korrektur von Backlinks sind einige Schwierigkeiten aufgetreten was die Konsistenz der Daten angeht. Da bei einem Schreibvorgang nicht alle Links/Backlinks auf den neuesten Stand gebracht werden können (Zeitproblem), musste eine weniger aufwendigere Lösung gefunden werden. Diese deckt aber nicht alle Fälle ab und es könnte unter Umständen zu Inkonsistenzen führen.

Verbesserungsmöglichkeiten

Überdenken des Backlinkalgorithmus.

Page 462: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 462

<ODI-DDOC-updateDictionary-2002-05-14-M>

Modulbezeichnung updateDictionary()

Dateiname core/updateDictionary

Versionsdatum 14.03.2002

Kurzbeschreibung Ändern oder Hinzufügen von Wortdaten in einem Dictionary

Erfordert loadLangs()

Verantwortliche Maczejka

Autor Maczejka

LOC 15

Bytes 376

Cyclomatic Number 4

Page 463: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 463

Detailbeschreibung

Neue Version von changeDictionary. Übergeben werden die Dictionarystruktur(1), das zu ändernde Wort in der Defaultsprache(2) sowie ein Array mit den neuen Wortdaten(3) (zu jeder Sprache ein Eintrag). Der Worteintrag im Dictionary wird durch das neue Array erstetzt, bzw ein neuer Eintrag wird erstellt.

Input

Array &dictionary Wörterbuchstruktur String word Zu bearbeitendes Wort Array translationlist Das Wort in allen Sprachen

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 464: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 464

<ODI-DDOC-wiki_link-2002-05-14-G>

Modulbezeichnung

wiki_link()

Dateiname lib/linker.inc

Versionsdatum 19-Apr-2002

Kurzbeschreibung Ersetzt wikiLink Symbole in einem String

Erfordert wiki_replace()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 5

Bytes 152

Cyclomatic Number 1

Page 465: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 465

Detailbeschreibung

Nimmt Ersetzung von WikiLink-Symbolen in einem String vor. Es werden immer Klammernpaare gesucht und an wiki_replace() weitergereicht. Verschachtelungen sind nicht möglich.

Input

String text

Output

String gelinkter_text

Probleme

keine

Verbesserungsmöglichkeiten

Geschwindigkeit rauskitzeln

Page 466: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 466

<ODI-DDOC-wiki_replace-2002-05-14-G>

Modulbezeichnung wiki_replace()

Dateiname lib/linker.inc

Versionsdatum 19-Apr-2002

Kurzbeschreibung Nimmt die Ersetzung eines WikiLink–Symbols vor.

Erfordert readAccess(), getActiveUser(), strSplit(), isReservedName(),

getHeader(), i18n(), form_href(), snipExists(), isProjectMember()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 368

Bytes 10909

Cyclomatic Number 51

Page 467: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 467

Detailbeschreibung

Nimmt die Ersetzung eines wikiLink-Symbols vor und liefert das Ergebnis zurück. Diese Funktion sollte nur von wiki_link() aufgerufen werden. Mögliche Symbole sind:

{:snipname:wert1=value1:wert2=value2} rekursives reinholen von snipname, app content-type wird ausgeführt

{!appname:wert1=value1:wert2=value2} die applikation wird ausgeführt und nicht noch mal gelinkt

{!!appname:wert1=value1:wert2=valu2} die applikation wird ausgeführt und noch mal gelinkt

{snipname*app:wert1=value1:wert2=value2} link auf ein snip mit application, eins von beiden kann leer sein

{=var/index} ersetzt durch wert, nicht noch mal gelinkt

{=!var/index} ersetzt durch wert, noch mal gelinkt

Input

String modifier String token &Boolean relink

Output

String gelinkter_token

Modifier bezeichnet das WikiLink Symbol nach der Klammer. Der Parameter relink wird an die Funktion wiki_link() zurückgereicht und bestimmt, ob der ersetzte Token noch mal gelinkt werden soll.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 468: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 468

<ODI-DDOC-write-2002-05-14-P>

Modulbezeichnung write()

Dateiname core/write

Versionsdatum 17-Apr-2002

Kurzbeschreibung Schreibt einen Snipeintrag

Erfordert writeSnip(), getActiveUser(), getHeader(), writeAccess()

Verantwortliche Zlabinger

Autor Pavlu

LOC 16

Bytes 343

Cyclomatic Number 3

Page 469: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 469

Detailbeschreibung

Speichert einen Snipeintrag im aktuellen Projekt ab. Liefert true bei Erfolg, false andernfalls. Ein möglicher Grund für das Fehlschlagen der Funktion ist das Fehlen von Schreibrechten beim aktuell angemeldeten Benutzer.

Input String Sniptitel Titel unter dem der Snip gespeichert wird String Content Inhalt des Snips

Output Boolean Erfolg true bei erfolgreicher Durchführung, sonst false

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 470: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 470

<ODI-DDOC-writeAccess-2002-05-14-G>

Modulbezeichnung writeAccess()

Dateiname lib/snip.inc

Versionsdatum 17-Apr-2002

Kurzbeschreibung Prüft ob ein Benutzer Schreibzugriff auf ein Snip hat.

Erfordert checkWriteAccess(), getActiveUser(), makeIndexName(),

getHeader(), isReservedName()

Verantwortliche Zlabinger, Pavlu

Autor Zlabinger

LOC 14

Bytes 307

Cyclomatic Number 3

Page 471: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 471

Detailbeschreibung

Liefert True wenn der Benutzer Schreibzugriff auf das Snip hat. Die eigentliche Überprüfungslogik befindet sich in checkWriteAccess().

Input

String snip_name String user_name Wenn leer wird der aktuelle Benutzer angenommen.

Output

Boolean True, wenn schreiberlaubnis vorliegt, sonst false.

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 472: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 472

<ODI-DDOC-writeDictionary-2002-05-14-M>

Modulbezeichnung writeDictionary()

Dateiname core/writeDictionary

Versionsdatum 17.04.2002

Kurzbeschreibung Speichert ein Wörterbuch

Erfordert dictToString()

Verantwortliche Maczejka

Autor Maczejka

LOC 10

Bytes 206

Cyclomatic Number 1

Page 473: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 473

Detailbeschreibung

Die übergebene Wörterbuchstruktur wird in „RES_FILE“ gespeichert.

Input

Array dictionary Wörterbuchstruktur

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

-

Page 474: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 474

<ODI-DDOC-writeHeader-2002-05-14-G>

Modulbezeichnung writeHeader()

Dateiname lib/writeHeader

Versionsdatum 17-Apr-2002

Kurzbeschreibung Schreibt Snip-Informationen in den Projekt-Index

Erfordert getActiveProject(), makeIndexName(), isReservedName()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 45

Bytes 1553

Cyclomatic Number 5

Page 475: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 475

Detailbeschreibung

Schreibt die Informationen eines Snips in den Index.

Input

&Array snip-Objekt

Output

Boolean Erfolg

Das Snip-Objekt empfängt im Erfolgsfall die Header-Daten des Snips. Für eine genaue Erläuterung des Aufbaus des Snip-Objekts siehe die Dokumentation von writeSnip().

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 476: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 476

<ODI-DDOC-writeMeeting-2002-05-14-M>

Modulbezeichnung writeMeeting()

Dateiname core/writeMeeting

Versionsdatum 17.04.2002

Kurzbeschreibung Speichert ein Besprechungsprotokoll

Erfordert writeSnip(), showMeeting(), getActiveUser(), editMeetingForm(),

i18n()

Verantwortliche Maczejka

Autor Maczejka

LOC 30

Bytes 914

Cyclomatic Number 5

Page 477: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 477

Detailbeschreibung

Übergeben werden alle Datails eines Meetings (present, master, beginTime, EndTime, protocol). Diese werden überprüft, sofern alles in Ordnung ist wird der Meetingsnip gespeichert und anschließend angezeigt.. Wenn nicht wird das Bearbeitungsformular wieder aufgerufen.

Input

String present Anwesende String master Protokolleur String begin Startzeit String end Endzeit String protocol Besprechungsprotokoll

Global $snip Global $snip_title

Output

keiner

Probleme

-

Verbesserungsmöglichkeiten

Check, ob das Enddatum nach dem Startdatum ist

Page 478: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 478

<ODI-DDOC-writeSnip-2002-05-14-G>

Modulbezeichnung writeSnip()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Schreibt ein Snip-Objekt auf die Festplatte.

Erfordert makeIndexName(), getProjectPath(), getActiveProject(),

snipErrorMsg(), getHeader(), lockSnip(), writeAccess(),

setBackLinks(), myfopen(), myfclose(), writeHeader() ,

getActiveUser(), isReservedName(), i18n()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 102

Bytes 3568

Cyclomatic Number 12

Page 479: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 479

Detailbeschreibung

Schreibt nach Überprüfung der Zugriffsrechte ein Snip-Objekt auf die Festplatte. Es kann nur geschrieben werden, wenn das Snip nicht von einem anderen Benutzer gesperrt ist. Das Snip-Objekt hat folgenden Aufbau:

Array ( [creator] => kol [editor] => kol [creation_timestamp] => 1019420833 [edit_timestamp] => 1019002532 [keywords] => Array ( [0] => start [1] => toc.toc [2] => locks [3] => members ) [read_count] => 105 [content-type] => stx [read_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) [write_list] => Array ( [users] => Array ( [allow] => Array ( ) [deny] => Array ( ) ) [projects] => Array ( [0] => odie ) ) [links] => Array ( [start-1] => 1 [start-2] => 1 [start-3] => 1 [start-4] => 1 [start-5] => 1 [start-6] => 1 ) [backlinks] => Array ( [hans] => 1 )

[size] => 222 [description] => [title] => start [content] => der inhalt )

Page 480: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 480

Diese Funktion setzt außerdem noch die Links und Backlinks.

Input

&Array Snip-Objekt String Benutzername

Output

Boolean Erfolg

Im Falle eines Fehlers liefert die Funktion eine Fehlermeldung im Snip-Objekt zurück (Inhalt wird zerstört!)

Probleme

flock() nicht dokumentiert bzw. fehlerhaft implementiert

Verbesserungsmöglichkeiten

keine

Page 481: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 481

<ODI-DDOC-write_index-2002-05-14-G>

Modulbezeichnung write_index()

Dateiname lib/snip.inc

Versionsdatum 27-Mär-2002

Kurzbeschreibung Schreibt die Indexdatei eines Projekts.

Erfordert serializeFile()

Verantwortliche Zlabinger

Autor Zlabinger

LOC 4

Bytes 77

Cyclomatic Number 1

Page 482: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 482

Detailbeschreibung

Schreibt den Index eines Projekts aus dem Speicher in die Indexdatei. Liefert true oder false zurück.

Input

String name &Array daten

Output

Boolean Erfolg

Probleme

keine

Verbesserungsmöglichkeiten

keine

Page 483: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 483

8 Anhang

8.1 ODIE Wiki-Linker Syntax (gez)

WikiLink Symbole werden zwischen zwei geschwungenen Klammern eingeschlossen. Ein '\' vor der öffnenen Klammer verhindert die Übersetzung des Symbols.

[ausdruck] Ausdruck ist optional ausdruck… Ausdruck kann beliebig oft wiederholt werden

{snipname[*applikation][:parameter=wert…]}["beschriftung"] {[snipname]*applikation[:parameter=wert…]}["beschriftung"]

Diese beiden Ausdrücke werden zu Links übersetzt. Die erste Variante linkt auf ein Snip, kann eine Applikation angegeben werden, mit der dieses Snip ausgeführt werden soll. Die Zweite Variante linkt nur auf eine Appklikation. Ist das Snip nicht vorhanden wird ein Link zum Erstellen des Snips angezeigt.

{:snipname[:parameter=wert…]}

Dieser Ausdruck führt das angegebene Snip mit der Standard Applikation des Content-Types aus und fügt das Ergebnis ein. Der Applikation können Parameter übergeben werden. Dieser Operator verlangt natürlich die entsprechenden Zugriffsrechte auf das Snip.

{![!]applikation[:sniptitle][:parameter=wert..l.]}

So können Applikationen ausgeführt werden. Wenn in Zeichenkette nach dem ersten Doppelpunkt kein '=' vorkommt wird diese als Sniptitel angenommen, für den die Applikation ausgeführt wird. Ein zweites Rufzeichen veranlasst den Linker, die Ausgabe der Applikation noch einmal zu linken.

{=[!]variable}

So können Informationen, die sich in dem Hash $odie_env befinden ausgeben werden. Eine Liste der einsetzbaren Werte befindet sich in der Entwicklerdokumentation. Ein Rufzeichen zu Beginn veranlaßt den Linker, das Ergebnis der Ersetzung noch einmal zu linken.

{@snipname}

Dieses Symbol liefert die URL des Snips zurück.

{?text}

Dieses Symbol liefert den lokalisierten Text zurück.

Page 484: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 484

8.2 Structured Text Crash-Kurs (gez)

Der STX-Parser erkennt intuitiv vorgenommen Formatierungen und übersetzt dieses in HTML-Tags. Es werden sowohl Textgliederungen vorgenommen als auch z.B. fetter Text erkannt.

8.2.1 Textgliederung Überschrift Durch die Einrückung wird dieser Text als Unterkapitel erkannt Auch diese Zeile wird als Unterkapitel erkannt Dieser Text ist durch die Position wieder eine Ebene höher gestellt Dadurch das dieser Text auf der selben Ebene ist wird die vorige Zeile keine Überschrift

8.2.2 Listen Listen werden folgender massen erzeugt: Unnumeriert: Numeriert:

- Text1 1) text1 - Text2 1) text2 - Text3 1) text3

Definitionslisten können folgendermassen erzeugt werden

Ausdruck –- Erklärung Ausdruck –- Erklärung

8.2.3 Textformatierung *text* Fettschrift /text/ Kursivschrift _text_ Unterstrichener Text

-text- Durchgestrichener Text

'text' Nonproportionaler Text

8.2.4 Preformatted Text

PREs werden durch eine Überschrift gefolgt von zwei Doppelpunkten gekennzeichnet. In dem folgenden Bereich wird keine STX-Formatierung vorgenommen Ein Beispiel:

Ein pre wird folgendermassen eingeleitet:: Dieser text Wird nicht *formatiert* Hier beginnt wieder normaler Text

8.2.5 URL-Erkennung Der STX Parsers erkennt die Verwendung von URLs in einem Text und wandelt diese automatisch in entsprechende HTML-Tags um. Beispiel: www.odie.org

8.2.6 Trennlinie Mindestens drei aufeinanderfolgende Bindestriche alleine in einer Zeile erzeugen eine horizontal rule.

Page 485: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 485

9 Glossar

Bps Bit pro Sekunde Einheit zur Messung der Bandbreite einer Netzwerkverbindung

CGI Common Gateway Interface Serverseitige Schnittstelle zwischen Webserver und Standardein-/Ausgabe

CMS Content Management System sehr weit gefasster Begriff der sich mit dem Verwalten, Verknüpfen und Verfügbarmachen von Inhalten aller Art beschäftigt

CSS Cascading Stylesheet Bereichert Markupstrukturen mit Formatierungseigenschaften

DOC DOCument Dokumentenformat von Microsoft

GIF Graphics Image File Format Grafikformat zu Verlustfreien Kompression von Bilddaten. Verwendet den von Unisys lizenzrechtlich geschützten Lempel-Zif-Welsh Algorithmus (LZW)

Groove Projektunterstützende Software zur Verwaltung von Aufgaben, Terminen, etc. HTBLVA Höhere Technische Lehr- und Versuchsanstalt

unsere Ausbildungsanstalt HTML HyperText Markup Language

W3C Standard für Internet Markup JPEG Joint Photographic Experts Group siehe

JPG JPG Joint Photographic Experts Group

Abkürzung der Urhebergruppe dieses Grafikformates, das wegen der Natur seines verlustbehafteten Kompressionsalgorithmus besonders für Photographien geeignet ist

Kbps Kilobit pro Sekunde Einheit zur Messung der Bandbreite einer Netzwerkverbindung

ODIE Online Data and Information Exchange unser Projektname

PDF Portable Data Format Beliebtes, plattformunabhängiges Dokumentenformat das mit dem Acrobat Reader von Adobe gelesen und ohne Formatierungsinformationsverlust gedruckt werden kann (im Gegensatz zu Markup)

PIC Peripheral Interface Controller, Microprozessor PNG Portable Network Graphics

Grafikformat für verlustfreie Kompression von Bildinformationen RDF Resource Description Framework

Menge von Regeln zur Beschreibung des Inhaltes eines Dokuments für Suchmaschinen beispielsweise

RSS RDF Site Summary, Rich Site Summary auf RDF basierender W3C Standard zur Einbindung von Inhalten anderer Seiten (Syndication & Aggregation)

Snip kleinste Dateneinheit im ODIE ein Textbaustein zum Beispiel

SQL Structured Query Language Sprache der 4. Generation zur Abfrage von Datenbanken

STX Structured Text Intuitiv eingegebener Text aus dessen Struktur die Textklassen erkannt werden können

TCP/IP Transmission Control Protocol / Internet Protocol Netzwerkprotokolle auf den Schichten 3, Network (IP) und 4, Transport(TCP) des OSI Referenzmodells

Page 486: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

Seite 486

WYSIWYG

What You See Is What You Get "was man sieht kriegt man auch"; grafischer Editor im Stil von Word oder Frontpage, etc.

XHTML eXtensible HTML W3C Standard zur Reformulierung von HTML in XML; strengere, klar definierte Syntax, leichter maschinenlesbar

XML eXtensible Markup Language W3C Standard für Selbstbeschreibende Speicherung von Daten; (keine Trennung von Daten und Metadaten), SGML Weiterentwicklung

XML-RPC eXtensible Markup Language - Remote Procedure Calls einfaches, auf den Internetstandards http und xml basierendes System zum Aufruf von Methoden über unterschiedliche Plattformen und Netzwerke hinweg

XSL-FO eXtensible Stylesheet Language Format Objects Ergebnis einer Anwendung eines XSL Stylesheets auf ein XML Dokument; enthält die genaue Information, wie ein Dokument gerendert werden muss

XSLT eXtensible Stylesheet Language Transformation XML Dialekt zur Beschreibung des Aussehens eines XML Dokuments

Page 487: odie.plain.atodie.plain.at/odi-ddoc.pdf · • Seite 2 Aufbau der Abschlussdokumentation Die Abschlussdokumentation des Diplomprojekts ODIE gliedert sich in vier Teile. • Projektdokumentation

This document was created with Win2PDF available at http://www.daneprairie.com.The unregistered version of Win2PDF is for evaluation or non-commercial use only.