![]() |
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. |
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 ;). |
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 ;) |
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? |
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'. |
Gefällt mir schon mal sehr gut. Vielleicht gibt es bald ein WebhostingWiki dann :) |
Zitat:
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. |
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 |
Zitat:
http://demo.calitrix.de/cwiki/Hexemer ;) |
exe: Vielen Dank für die Links :) |
dein Wiki ist der Hammer ... bin sehr gespannt und verfolge die Entwicklung weiter... eventuell was für uns :) |
Zitat:
Zitat:
Zitat:
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. |
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 |
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. |
Hervorragend. Wird benutzt. |
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! |
Zitat:
Aber ich hoffe das ich in 4 Wochen eine stabile und vollständige Version fertig habe. Zitat:
|
Zitat:
|
Sabba, mir gefällt diese Idee vom WebhostingWiki immer besser. Kann es kaum erwarten, dass es irgendwie veröffentlicht wird :D |
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 :) |
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? |
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. |
Herrlich, wir müssen dann noch ordentlich Werbung bei Freshmeat und Co machen :D |
Ja, ich hab mir da auch schon ein paar Seiten notiert wo ein dezenter Eintrag des Wikis nicht ganz fehl am Platze wäre ;) |
Ich dachte eher an MB. ;) Die Anzahl der Tabellen & Queries beruhigt mich allerdings auch. :) Ich will's testweise als Grundlage einer Online-Dokumentation verwenden. |
Zitat:
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. |
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. |
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
Ich arbeite jetzt noch an ein paar kleinen Verbesserungen und Bugfixes und dann gibts heute oder morgen vielleicht (hoffentlich) schon ein Beta-Release. |
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. :) |
Und für die Promotion brauchen wir hier noch einige Menschen: http://demo.calitrix.de/cwiki/cwiki.php?page=Googlehack |
Mach doch einen WYSIWYG-Editor dafür :D |
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. |
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: |
Komisch, ich bekomme beim ändern: Zitat:
|
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! |
Zitat:
Testest du auf einem localhost? Und welche Serverkonfiguration hast du? (PHP, Apache) Werden Cookies akzeptiert? Zitat:
Zitat:
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:
|
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: Sonstige Skripts lokal funktionieren bei mir auch mit Cookies. |
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 |
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. |
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 15:02 Uhr. |