Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   CalitrixWiki Supportforum (https://boardunity.de/calitrixwiki-supportforum-f68.html)
-   -   Das CalitrixWiki - mein aktuelles Projekt (https://boardunity.de/calitrixwiki-aktuelles-projekt-t2060.html)

exe 28.06.2004 21:21

Das CalitrixWiki - mein aktuelles Projekt
 
Halli Hallo,

einige haben es schon gesehen, den anderen möchte ich es jetzt vorstellen: mein Versuch ein Wiki zu programmieren.

Ich habe vor einer Weile mit dem Gedanken gespielt ein Wiki zu gründen, bin aber vorerst daran gescheitert das ich kein wirklich brauchbares Wiki finden konnte das sich einfach und ohne Probleme auf einem normalen Shared-Server mit PHP und MySQL betreiben lässt. Meine Wahl ist zuerst auf PmWiki gefallen, allerdings hat sich das vorallem durch eine ziemlich schlechte Performance ausgezeichnet.
Also habe ich begonnen ein eigenes Wiki auf Basis von PHP & MySQL zu entwickeln das auf einem normalen Shared-Server einfach zu installieren und zu warten sowie einigermaßen schnell sein soll.

Das CalitrixWiki - so heisst es momentan - ist jetzt soweit das die Grundfunktionen fertig gestellt sind und bislang auch recht fehlerfrei arbeiten.
Es unterstützt die meisten Formatierungscodes die man so oder ähnlich auch in anderen Wikis findet - Textauszeichnung, WikiStyles, Listen, Tabellen, WikiTrails, InterWiki usw.
Es unterstützt ausserdem Plugins die dynamisch in Seiten oder Templates geladen werden können sowie, ähnlich wie bei der Wikipedia, Spezialseiten die dynamische Inhalte (letzte Änderungen, neue Seiten usw.) zur Verfügung stellen.
Wie schon gesagt basiert es auf PHP4 und MySQL, benutzt Smarty als Templateengine und die Text_Diff-Bibliothek von pear.php.net zur Versionsverwaltung.

Einige Features sind noch eingeplant, darunter Benutzerverwaltung, Diskussionsräume zu einzelnen Seiten und Zugriffsrichtlinien um den Zugriff auf einzelne Seiten einschränken zu können.

Genug gefaselt, hier ist der Link zur aktuellen Demo: http://demo.calitrix.de/cwiki
Lasst euch bloss nicht von den Inhalten der Seiten verwirren, das ist nur ein Dump meiner lokalen Installation bei der ich gerne wild in den Seiten rumpfusche :D

Also, dann lasst mal hören was ihr davon haltet, Verbesserungsvorschläge, Kritik und sonstige Anregungen sind natürlich herzlichst willkommen.

Frederic Schneider 28.06.2004 21:25

Hallo,

ich darf mich ja zu den glücklichen gesinnen, die dein Wiki schon sehen konnten und das schon seit recht ner Weile. Mich überzeugt das cWiki durch seine Flexibilität und durch seine Bedienung, die durch einige Features glänzen können. Unter anderem auch die "Diff"-Funktion sehe ich als dicken Pluspunkt an. Jetzt würde mich nur noch der Code und die Administration bzw. die Verwaltung interessieren ;).

exe 28.06.2004 21:31

Der Code sieht ähnlich aus wie bei dem sicknature-Gästebuch - du kennst es ja ;)
Er ist also komplett in Klassen organisiert. Es gibt eine core-Klasse die die Basisfunktionen bereit stellt. Diese ruft dann die entsprechende Aktion (anzeigen, bearbeiten, Versionen, Druckversion) auf und übergibt ihr die Daten der aktuellen Seite. Mit Spezialseiten wird ähnlich verfahren.
Das Wiki ist, wie gesagt, Templatebasiert und es besteht die Möglichkeit mehrere Themes parallel zu betreiben. Es hat ausserdem Sprachdateien so das sich die Benutzeroberfläche auch an andere Sprachen anpassen lässt.
Die Konfiguration ist zu weiten Teilen auch in eine Konfigurationsdatei ausgelagert, so das sich das Wiki auch weitgehend anpassen lässt.

Was die Administration angeht plane ich einen extra Administrationsbereich in dem sich die Konfiguration, Styles & Templates, Mitglieder, Zugriffsrichtlininen und weitere administrative Aufgaben erledigen lassen. Allerdings habe ich damit noch nicht begonnen, da ist also noch viel Spielraum ;)

solanum 02.07.2004 08:27

hm, ich frage mich schon seit längerem: wie funktioniert ein wiki? ich war bis vor einigen tagen der meinung, dass es sich dadurch auszeichnet, dass wörter dynamisch zu ihren entsprechenden seiten verknüpft werden. nun habe ich aber bei wikipedia.de gemerkt, dass worte wie "rassistisch" zu "rassismus" verknüpft werden. wird dieses also per hand gemacht oder weiß die software selbst, dass diese beiden wörter zusammengehören? wenn ja: wie?

exe 02.07.2004 11:51

Ich nehme an das Seiten, deren Titel nur aus einem Wort besteht, von Hand verlinkt werden da es für die Software in dem Fall keine Möglichkeit gibt automatisch den Link zu erkennen (ausser es würde alle Thementitel, die aus einem Wort bestehen, aus der Datenbank laden und im Text durch Links ersetzen, was aber bei grossen Wikis sehr Zeitintensiv wäre).
Ich regel das bei meinem Wiki so das CamelCase-Links, also zwei oder mehr grossgeschriebene Wörter aneinander, via Regex durch entsprechende Links ersetzt werden.
Einzelne Wörter können über die erweiterte Syntax verlinkt werden: [[Rassismus]] wäre ein Link zu der Seite 'Rassismus'.

TRS 02.07.2004 12:57

Gefällt mir schon mal sehr gut. Vielleicht gibt es bald ein WebhostingWiki dann :)

Gast 02.07.2004 19:42

Zitat:

Zitat von exe
Der Code sieht ähnlich aus wie bei dem sicknature-Gästebuch - du kennst es ja ;)

Hehe...ja ;)

Ich habe bisher sehr wenig Erfahrungen mit Wikis gemacht, daher würde ich mich über eine FAQ oder so was in der Richtung freuen. Daher kann ich mir über die Qualität bisher auch keine Meinung machen.

exe 03.07.2004 00:13

Da die Funktionen des Wikis im Moment noch starken Änderungen unterworfen sind hab ich noch nicht mit einer FAQ angefangen. Diese werde ich mit der ersten Beta-Version beginnen wenn sich nicht mehr so viel ändert.
Ein paar generelle Erklärungen zu Wikis mit Links zu weiteren Wikiengines:
http://de.wikipedia.org/wiki/Wiki
http://c2.com/cgi/wiki?WikiWikiWeb
http://www.pmwiki.org/wiki/PmWiki/WikiWikiWeb

Hexemer 03.07.2004 00:24

Zitat:

Zitat von Reimer
Gefällt mir schon mal sehr gut. Vielleicht gibt es bald ein WebhostingWiki dann :)

Ja, das währe auch was für meine Seite. Sehr schön! :)

http://demo.calitrix.de/cwiki/Hexemer ;)

Gast 03.07.2004 07:37

exe: Vielen Dank für die Links :)

Luki 04.07.2004 16:34

dein Wiki ist der Hammer ... bin sehr gespannt und verfolge die Entwicklung weiter...

eventuell was für uns :)

exe 04.07.2004 16:40

Zitat:

Zitat von Reimer
Gefällt mir schon mal sehr gut. Vielleicht gibt es bald ein WebhostingWiki dann :)

Zitat:

Zitat von Hexemer
Ja, das währe auch was für meine Seite. Sehr schön! :)

http://demo.calitrix.de/cwiki/Hexemer ;)

Zitat:

Zitat von Luki
dein Wiki ist der Hammer ... bin sehr gespannt und verfolge die Entwicklung weiter...

eventuell was für uns :)

Freut mich das es euch so gut gefällt :)
Im Moment arbeite ich an der Benutzerverwaltung und ich denke Mitte nächster Woche kann ich eine neuere Version anbieten in der man sich dann seinen Namen sichern sowie das Wiki auf seine persöhnlichen Bedürfnisse (Layout, Benachrichtigungen usw.) einstellen kann.

Björn 04.07.2004 22:17

Hiho
ich habe mir nun nicht das ganze thema durchgelesen, sondern nur mal in dein Wiki reingeschnuppert und muss sagen es gefällt mir sehr gut.
Evtl werd ich es auch benutzen. Mir schwebt da schon eine Idee vor, jedoch muss ich diese noch weiter ausarbeiten ;)

MfG

Patrick Gotthardt 05.07.2004 15:54

Mal aus reinem Interesse: Ab wann kann man damit rechnen, dieses Wiki verwenden zu können? ;)
Da hät sogar ich nen Verwendungszweck für. *g*

Sieht übrigens ausgezeichnet aus, auch wenn ich von Wikis allgemein keine Ahnung habe.

Philipp Gérard 05.07.2004 15:57

Hervorragend. Wird benutzt.

Boardster 05.07.2004 18:54

exe, du überrascht mich immer wieder. Da sprach ich noch von ein paar Monaten den Wunsch aus, jemand möge doch endlich ein einfaches und leicht durchschaubares Wiki programmieren - und siehe da: der exe macht's!

Der erste Eindruck ist ja bekanntlich der wichtigste - und der hat mich überzeugt. Funktionstechnisch (bis auf Benutzerverwaltung und Zugriffsrichtlinien) so gut wie komplett: Formatierungscodes, Versionskontrolle und Suchfunktion verrichten ihren Dienst schon recht zuverlässig.

Die Chancen stehen gut, das veraltete WakkaWiki vom Thron der (einfachen) Wikis zu stoßen.

Also: unbedingt dranbleiben, exe!

exe 05.07.2004 21:21

Zitat:

Zitat von TheDragonMaster
Mal aus reinem Interesse: Ab wann kann man damit rechnen, dieses Wiki verwenden zu können? ;)

Eine konkrete Zusage kann ich nicht machen. Bekanntlich dauerts in der Programmierung immer länger als man denkt ;)
Aber ich hoffe das ich in 4 Wochen eine stabile und vollständige Version fertig habe.

Zitat:

Zitat von Boardster
exe, du überrascht mich immer wieder. Da sprach ich noch von ein paar Monaten den Wunsch aus, jemand möge doch endlich ein einfaches und leicht durchschaubares Wiki programmieren - und siehe da: der exe macht's!

Ich habe meine lichten Momente ;)

Hexemer 08.07.2004 21:24

Zitat:

Zitat von exe
Aber ich hoffe das ich in 4 Wochen eine stabile und vollständige Version fertig habe.

Da freu ich mich drauf ;)

TRS 09.07.2004 18:18

Sabba,

mir gefällt diese Idee vom WebhostingWiki immer besser. Kann es kaum erwarten, dass es irgendwie veröffentlicht wird :D

exe 28.07.2004 23:37

Die erwähnten 4 Wochen neigen sich dem Ende zu und, man glaubt es kaum, ich habe sogar Neuigkeiten zu berichten ;)

Als erstes wird das CalitrixWiki in Zukunft als Opensource-Projekt unter der GNU GPL lizensiert und seit heute bei BerliOS gehostet und weiterentwickelt. Die Projektseite ist unter http://developer.berlios.de/projects/calitrixwiki/ zu finden.
Als zweites neigt sich die Entwicklung der ersten Beta dem Ende zu. Die Benutzerverwaltung ist soweit komplett, die Zugriffsrichtlinien greifen auch. Was jetzt noch fehlt sind ein paar kleinere Features (Benachrichtigungen, Einstellungsseiten, neues Layout) und Verbesserungen/Bugfixes am Quellcode. Ich werde irgendwann am Wochenende die Quellcodes ins CVS importieren und wenn das Projekthosting fertig ist gibts dann auch eine aktuelle Demo auf der Projektseite.

Ich denke das es dann Ende nächster Woche ein erstes Beta-Release geben kann :)

Patrick Gotthardt 29.07.2004 08:50

Das hört sich gut an. :)
Schon zu wissen, dass es immernoch Leute gibt, die sich an Termine halten (wenn ich das schon nicht kann... ^^").

Ist das Teil eigentlich sehr Datenbanklastig?

exe 29.07.2004 10:04

Das kommt ganz drauf an was du unter datenbanklastig verstehst. Das Wiki benutzt die Datenbank um die Seiten, die Changelogs, Benutzer, Gruppen und Zugriffsrechte sowie Benachrichtigungen zu speichern.
Die Datenbank ist mit momentan 8 Tabellen recht überschaubar. Pro geladener Seite werden zwei Datenbankabfragen benötigt, zwei zusätzliche fürs Sessionmanagement bei Gästen bzw. drei zusätzliche bei eingelogten Benutzern.
Macht also bei dem Wiki wie es momentan aussieht (eine include-Seite (SideBar) und eine normale) 6 Abfragen bei Gästen, 7 bei eingelogten Benutzern.
Konfiguration, Templates und Sprachdateien sind momentan in Dateien ausgelagert.

TRS 29.07.2004 10:12

Herrlich, wir müssen dann noch ordentlich Werbung bei Freshmeat und Co machen :D

exe 29.07.2004 10:53

Ja, ich hab mir da auch schon ein paar Seiten notiert wo ein dezenter Eintrag des Wikis nicht ganz fehl am Platze wäre ;)

Patrick Gotthardt 29.07.2004 10:59

Ich dachte eher an MB. ;)
Die Anzahl der Tabellen & Queries beruhigt mich allerdings auch. :)

Ich will's testweise als Grundlage einer Online-Dokumentation verwenden.

exe 29.07.2004 11:58

Zitat:

Zitat von TheDragonMaster
Ich dachte eher an MB. ;)

Wie gross die Datenbank wird hängt vorallem von zwei Faktoren ab: wie lang die Seiten durchschnittlich werden und wie oft sie bearbeitet werden da die Texte und Changelogs den meisten Platz verbrauchen.
Ich hab noch keine grossen Tests gemacht was den Speicherverbrauch angeht. Im Moment ist die Datenbank des Testwikis 99.7 kb gross. Das beinhaltet 20 Seiten a 1000 Zeichen inklusive Volltext-Index und 168 Einträge im Changelog inkl. Diffs.

Wenn da Interesse besteht könnte ich mal einen Speichertest machen.

Patrick Gotthardt 29.07.2004 14:08

Das hört sich relativ wenig an. Danke dir. :)
Dann warte ich mal auf's erste Release und werd's mal antesten. Aber da scheint wirklich gut zu sein.

exe 05.08.2004 11:41

Das Ganze hat sich jetzt ein bisschen verzögert da mir zwischendurch mein Linux Probleme gemacht hat und ich erst 5 Distributionen testen musste bis ich wieder ein funktionierendes System hatte :(

Jetzt bin ich aber wieder soweit und möchte gleich mal eine aktuelle Demo vorstellen:
http://demo.calitrix.de/cwiki

Neu ist
  • ein überarbeitetes Layout das irgendwann auch mal XHTML 1.0 und CSS2 valid sein soll
  • Benutzerverwaltung
    • Lesezeichen
    • Benachrichtigung bei Änderungen
    • Auswahl von Themes und Sprachen
  • Namespaces um verschiedene Kategorien von Seiten (Mitglieder, Spezialseiten etc.) zu trennen. Wird ausserdem in einer späteren Version für Unterstützung mehrsprachiger Wikis verwendet.
  • Möglichkeit Zugriffsrechte für Seiten festzulegen (lesen, schreiben, wiederherstellen, sperren, entsperren etc.)
  • Viele kleine Verbesserungen

Ich arbeite jetzt noch an ein paar kleinen Verbesserungen und Bugfixes und dann gibts heute oder morgen vielleicht (hoffentlich) schon ein Beta-Release.

Patrick Gotthardt 06.08.2004 14:21

Sieht gut aus, hört sich gut an, ist gut. ;)

Also ich bin schon sehr gespannt auf das Release. Obwohl ich jetzt schon ahne, dass ich mich erstmal ewiglang einarbeiten werden muss. *g*

Lass dir Zeit & mach's ordentlich. :)

TRS 10.08.2004 17:01

Und für die Promotion brauchen wir hier noch einige Menschen:
http://demo.calitrix.de/cwiki/cwiki.php?page=Googlehack

Gast 10.08.2004 17:28

Mach doch einen WYSIWYG-Editor dafür :D

exe 11.08.2004 01:04

Ich habe nun eine erste Beta zusammengepackt und veröffentlicht. Diese enthält auf Benutzerseite praktisch alle Funktionen die für die erste Version eingeplant sind sowie einen ersten Installer.

Bis zur Final ist damit im Großen und Ganzen nur noch der Administrationsbereich (und natürlich Bugfixes und kleine Verbesserungen) eingeplant.

Die Website des Wikis findet sich nun auf http://www.calitrix.de
Informationen zum Download auf http://www.calitrix.de/Download
Eine Dokumentation habe ich heute auf http://www.calitrix.de/Dokumentation begonnen.

Das bei error_reporting(E_ALL) die Diff-Ansicht in der History eine Notice auswirft ist mir bereits aufgefallen, ist dann in der nächsten Version gefixt.

Boardster 11.08.2004 14:13

Bin gerade beim Testen und wollte meine Benutzereinstellungen ändern, was Calitrix leider mit folgender Fehlermeldung ablehnt: Der Zugriff auf diese Funktion ist ihnen nicht erlaubt. Möglicherweise müssen sie sich dafür erst registrieren oder diese Funktion ist einer höheren Benutzergruppe vorenthalten.

In deiner Demoversion konnte ich die Einstellungen aber ohne Probleme ändern... :confused:

MrNase 11.08.2004 14:42

Komisch, ich bekomme beim ändern:

Zitat:

Ihre Einstellungen wurden aktualisiert. Änderungen an der Benutzeroberfläche werden bei ihrem nächsten Klick wirksam.

Frederic Schneider 11.08.2004 18:02

Hallo,

ich habe mir aus Interesse die Beta 1 eben mal lokal auf meinem Computer (PHP 5, MySQL 4.0; XAMPP Installisation) installiert und musste mit einigen Fehlern jetzt leben.

1. Bei der Installisation habe ich mir die Datenbank erstellen lassen. Keine Sorge, alles geht. Aber warum erhalte ich die Meldung "Versuche die Datenbank auszuwählen ...Fehlgeschlagen" wenn später auf den folgenden Seiten und im Betrieb alles funktioniert?

2. Ich habe auf jeder Seite eine Menge Fehler (mehrfach) folgender Spate:
2048: var: Deprecated. Please use the public/private/protected modifiers
2048: Assigning the return value of new by reference is deprecated

Zudem kommen manchmal header Fehlermeldungen ("2: Cannot modify header information - headers already sent by (output started at C:\webseiten\xampp\htdocs\CaltrixWiki Beta 1\libs\tpl\Smarty.class.php:455)")

3. Trotz der Auswahl von "Angemeldet bleiben?" bin ich wenn ich auf eine weitere Seite gehe nachdem ich erfolgreich eingeloggt war, abgemeldet.

Ich habe die Fehler nicht mit PHP 4 getestet, sondern wie o.g. nur mit PHP 5.0.0!

exe 11.08.2004 19:34

Zitat:

Zitat von Boardster
Bin gerade beim Testen und wollte meine Benutzereinstellungen ändern, was Calitrix leider mit folgender Fehlermeldung ablehnt: Der Zugriff auf diese Funktion ist ihnen nicht erlaubt. Möglicherweise müssen sie sich dafür erst registrieren oder diese Funktion ist einer höheren Benutzergruppe vorenthalten.

Ich schätze da liegt ein Problem mit Cookies vor so dass du dich zwar anmelden kannst aber bei jeder Folgeseite für registrierte Benutzer die "Zugriff verweigert"-Meldung bekommst.

Testest du auf einem localhost? Und welche Serverkonfiguration hast du? (PHP, Apache)
Werden Cookies akzeptiert?

Zitat:

Zitat von frederic
1. Bei der Installisation habe ich mir die Datenbank erstellen lassen. Keine Sorge, alles geht. Aber warum erhalte ich die Meldung "Versuche die Datenbank auszuwählen ...Fehlgeschlagen" wenn später auf den folgenden Seiten und im Betrieb alles funktioniert?

Das kommt wenn du noch keine Datenbank erstellt hast und ausgewählt hast das das Script beim Fehlen der Datenbank eine Neue erstellen soll. Das Auswählen schlägt dann fehl, aber wenn die Datenbank danach erstellt werden kann ist trotzdem alles in Ordnung.

Zitat:

2. Ich habe auf jeder Seite eine Menge Fehler (mehrfach) folgender Spate:
2048: var: Deprecated. Please use the public/private/protected modifiers
2048: Assigning the return value of new by reference is deprecated

Zudem kommen manchmal header Fehlermeldungen ("2: Cannot modify header information - headers already sent by (output started at C:\webseiten\xampp\htdocs\CaltrixWiki Beta 1\libs\tpl\Smarty.class.php:455)")
Das liegt daran das PHP5 mit error_reporting auf E_STRICT betrieben wird. In PHP5 ist das Schlüsselwort 'var' bei der Definition von Klassenvariablen veraltet da Schlüsselwörter wie 'public' oder 'protected' verwendet werden sollen. Wenn ich die aber verwende funktioniert das Script nicht mehr mit PHP4 da es dort nur 'var' gibt.
Einzige Lösung ist PHP5 mit der Fehlereinstellung E_ALL zu betreiben, dann fallen Meldungen zum Klassendesign weg.

Die 'headers already sent' Meldungen sollten dann auch wegfallen da vor der eigentlichen Ausgabe keine Fehlermeldungen mehr erscheinen.

Zitat:

3. Trotz der Auswahl von "Angemeldet bleiben?" bin ich wenn ich auf eine weitere Seite gehe nachdem ich erfolgreich eingeloggt war, abgemeldet.
Muss wieder ein Problem mit den Cookies sein, ich schau mir das nochmal an.

Frederic Schneider 11.08.2004 19:42

Hallo,

meine Punkte, zu 1:
In Ordnung.

zu 2:
Mir brauchst du das nicht zu erklären, ich programmiere selber unter PHP 5. Aber um von anderen User solche Probleme abzufangen, nutze doch folgendes Codeschnipsel:
PHP-Code:

if(version_compare(phpversion(), "5.0.0") == -1))
   
error_reporting(E_ALL);
  else
   
error_reporting(E_ALL E_STRICT); 

zu 3:
Sonstige Skripts lokal funktionieren bei mir auch mit Cookies.

exe 11.08.2004 19:50

Laut PHP-Manual gibt es E_STRICT erst ab PHP5 und echo E_STRICT; ergibt auch nur

Code:

Notice: Use of undefined constant E_STRICT - assumed 'E_STRICT' in /home/jk/test.php on line 3
Warum also ein Workaround für PHP5 wenn diese Fehlerkonstante sowieso nicht benutzt werden kann solange das Script noch abwärtskompatibel sein muss?

Frederic Schneider 11.08.2004 19:53

Hallo,

du verstehst das Codeschnipsel wohl falsch. Ist die PHP Version unter PHP 5.0.0 (also auch PHP 4), wird nur E_ALL genutzt, E_STRICT zusätzlich erst ab PHP 5.0.0.

Es sei hierbei allerdings zu beachten, dass es E_STRICT schon in der Testphase von PHP 5 gab.

exe 11.08.2004 19:55

Aber da man E_STRICT nicht verwenden kann, solange ein in Klassen organisiertes Script in PHP5 ohne Notizen laufen soll, wird es hinfällig E_STRICT für PHP5 zu aktivieren.

Oder steh ich jetzt komplett auf dem Schlauch?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25