#1
| ||||
| ||||
Spezialseiten-EntwicklungHallo! Ich möchte für die nächste Version meiner Seite www.planeten.ch gerne das Calitrix verwenden, allerdings muss ich dazu die Spezialseitenentwicklung beherrschen. Ich hab mich mal darin versucht, eine Spezialseite zu entwickeln, die eigentlich der Sitemap entspricht, aber nur einen bestimmten Namensraum ("Lexikon") auflistet. Das führt dazu, dass ich in der special_sitemap.php die Datenbankquery folgendermassen abgeändert habe: PHP-Code: Zitat:
Sollten sich während der Entwicklung der weiteren Spezialseiten noch weitere Probleme ergeben, werd ich die natürlich auch hier posten... Ich hoffe auch, dass andere von diesem Thread profitieren können, die ebenfalls weitere Spezialseiten entwickeln wollen. Vielen Dank schon mal für die Hilfe. Freundliche Grüsse Bynaus Geändert von Bynaus (21.11.2005 um 14:55 Uhr). |
#2
| ||||
| ||||
versuch mal so: Code: $result = $db->query('SELECT page_namespace, page_name FROM '.DB_PREFIX.'pages '. 'WHERE page_namespace=\'lexikon\' ORDER BY page_name'); __________________ Björn C. Klein Welt-Held! PunkRockNews.de |
#3
| ||||
| ||||
Danke für die Antwort. Ich habe das soeben versucht, leider bleibt der Fehler derselbe. Ich habe lediglich die sitemap-Datei abgeändert und überall "sitemap" durch "lexikon" ersetzt, auch im Titel. |
#4
| ||||
| ||||
Ha, ich habs. Ich habe das special_sitemap.tpl-File kopiert und als special_lexikon.tpl wieder eingefügt, darin die Variable $sitemap durch $lexikon ersetzt, und jetzt klappts. Cool, dann kann ich mir jetzt meine Sitemaps für verschiedene Namensräume selbst erstellen... Aber ich bin sicher, es werden hier noch mehr Fragen kommen... |
#5
| ||||
| ||||
Deine Vorgehensweise war schonmal richtig. Spezialseiten werden nicht in dem Standardtemplate für Wikitexte angezeigt. Jede Spezialseite muss selber angeben, mit welchem Template sie angezeigt werden will. Das Template wird vom CalitrixWiki mit der Funktion "getTemplate()", die von jeder Spezialseite definiert werden muss, abgefragt. Wenn das Lexikontemplate das gleiche wie das Sitemaptemplate ist, kannst du auch einfach in der Funktion "getTemplate()" der special_lexikon.php das Template "special_sitemap.tpl" angeben. Code: /** * Returns the template name for this special page. * * @author Johannes Klose <[email protected]> * @return string Template name **/ function getTemplate() { return 'special_lexikon.tpl'; } Code: /** * Returns the template name for this special page. * * @author Johannes Klose <[email protected]> * @return string Template name **/ function getTemplate() { return 'special_sitemap.tpl'; } __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#6
| ||||
| ||||
Vielen Dank. Eine Frage habe ich auch noch: Wie kann man die Darstellung des "Namensraumes" vor dem Link (z.B. in der sitemap) unterdrücken? In einigen dieser "sitemap-Abzweiger" wäre das nämlich noch recht praktisch... Ich habe danach gesucht, aber nichts gefunden. |
#7
| ||||
| ||||
Die Überschrift steht in der header.tpl: Code: <h1 class="page-title">{$pageTitle}{if $actionTitle != ''} - {$actionTitle}{/if}</h1> {$rBackLink} Code: <h1 class="page-title">{$pageName}</h1> {$pageName} enthält nur den Name der Seite ohne Namensraum. __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#8
| ||||
| ||||
Vielen Dank, das hilft mir weiter. |
#9
| ||||
| ||||
Nun, da wäre die nächste Frage... Wie schaff ich es, einen extern eingebundenen Text zu Parsen wie einen Text in der Wiki-Text-Datenbank? Das heisst, wenn ich aus einer externen Datenbank einen Text mit einem [[Link]] importiere, wir bringe ich Calitrix dazu, diesen auch wirklich in einen Link zu verwandeln? Das gleiche gilt für Bilder (niedrigere Priorität, Links wären wichtiger), etc. Ich habe es mit Vergleichen zum "include"-Plugin versucht, aber es will mir nicht recht gelingen. Das mag damit zusammenhängen, dass ich nicht wirklich verstehe, was da im "include"-Plugin wirklich geschieht... Wenn jemand eine Idee oder einen Hinweis hat, wäre ich dankbar. __________________ Besucht mich doch mal auf meinen Webseiten: www.planeten.ch - Neun und mehr Planeten www.final-frontier.ch - Kommentare vom Rand des Universums |
#10
| ||||
| ||||
Den Parser des Wikis für andere Texte als Artikel zu verwenden funktioniert nicht, da er Informationen (einen Seitenname, Namensraum usw.) benötigt die nur ein Artikel besitzt. Das Problem ist mir aber auch schon bekannt und bis zur 1.0 wird der Parser noch verbessert um beliebige Texte damit zu parsen. Als eine Art "ugly Hack" könntest du für den Parser eine leere Dummyseite erstellen, den Text dieser Seite auf den zu parsenden Text setzen und das ganze durch den Parser jagen: PHP-Code: __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#11
| ||||
| ||||
Funktioniert... ! Vielen Dank. Auf wann ist der Release von 1.0 eigentlich geplant? EDIT: Mir ist soeben etwas aufgefallen, was man noch verbessern könnte: wenn man als User auf Zufallsseite klickt, dann kommen ab und zu auch Seiten, auf die man keinen Zugang hätte - entsprechend kriegt man eine Fehlermeldung. Wäre es vielleicht möglich, das so einzustellen, dass die Spezialseite "Zufallsseite" nur Seiten aufruft, die man auch betrachten darf? Sonst bekommt man mit der Zeit recht viele "Absagen", je nach dem, wie gross der Umfang der "versteckten" bzw. "verbotenen" Seiten ist. EDIT2: Noch einmal zu deinem "ugly hack": Könnte ich dafür nicht auch eine andere (bereits existierende) Seite nehmen? So lange ich ja unter "/Text der Dummyseite setzten" den wahren Text für den Parser "überschreibe", sollte das doch keine Rolle spielen. Oder doch? Ich ändere ja dann an der Seite selber nichts, trage nichts in die Datenbank ein, etc.. __________________ Besucht mich doch mal auf meinen Webseiten: www.planeten.ch - Neun und mehr Planeten www.final-frontier.ch - Kommentare vom Rand des Universums |
#12
| ||||
| ||||
Klar, wenn du bereits eine Seite geladen hast, kannst du auch die verwenden. Nur extra eine zu laden wäre verschwendung, schliesslich kostet das eine eigene Datenbankabfrage. Zitat:
__________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#13
| ||||
| ||||
Hm, ich hab wieder mal eine Frage: Angenommen, ich möchte eine Seite einrichten, mit der ich in Calitrix Änderungen in der Datenbank vornehmen kann (in gesonderten Tabellen). Wie pack ich das am besten an? Über Spezialseiten? Über Actions? Über Plugins? Gibt es die Möglichkeit, eine php-Seite zu includen? Vielleicht könnte man ein Plugin schreiben, welches das includen von php-Seiten ermöglichen würde? EDIT: Ich habs mal versucht... Leider funktioniert das nicht ganz so wie gewünscht: der Text, der auf der includeten Seite mit print ausgegeben wird, wird ganz zuoberst im Wiki (also noch vor der Top-Leiste, ausserhalb des Textfeldes) ausgegeben. Dazu funktionieren relative Links nicht. Hat jemand eine Idee? PHP-Code: __________________ Besucht mich doch mal auf meinen Webseiten: www.planeten.ch - Neun und mehr Planeten www.final-frontier.ch - Kommentare vom Rand des Universums |
#14
| ||||
| ||||
Das kommt erstmal drauf an, wie du die Änderungen an der Datenbank durchführen willst. Wenn du eine extra Seite haben willst die Inhalte in die Datenbank einfügt und wieder anzeigt (beispielsweise ein Gästebuch oder Newsseite) bieten sich Spezialseiten an. Wenn du innerhalb eines Artikels ein Script aufrufen willst welches eine bestimmte Aktion durchführt (beispielsweise ein Hitcounter) bietet sich ein Plugin an (da muss ja keine extra Seite angezeigt werden). Actions brauchst du nur, wenn du zu den bestehenden Aktionen (Bearbeiten, History, Optionen usw.) etwas hinzufügen willst. PHP-Includes wären prinzipiell machbar. Wenn ein via include eingebundenes Script aber eigene Daten via echo ausgibt, musst du diese abfangen da sie sonst, wie du siehst, vor allen anderen Ausgaben auftauchen. Die benötigten Funktionen dafür sind ob_start(), ob_get_contents() und ob_end_clean(). PHP-Code: PHP-Code: __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#15
| ||||
| ||||
Vielen Dank für die Antwort. Das phpinclude werd ich mal so umschreiben und dann sehen, was dabei rauskommt. Was die Sicherheit angeht: wie du oben siehst, verwende ich einen speziellen Namen (der, der dem Plugin per "page=" übergeben wird und unter $url abgespeichert wird), der dann einem bestimmten Verzeichnis zugewiesen wird, in dem alle "erlaubten" php-Files liegen. Da gibt es dann keine Möglichkeit, auszubrechen, oder? Ich könnte ausserdem noch Testen, ob im übergebenen Namen nur Buchstaben vorkommen. Für richtige Datenbank"interfaces" wären aber wohl doch Spezialseiten besser. Ich schau mal, was sich da eher anbietet. EDIT: Cool, funktioniert! Wers kopieren will: (einen Ordner "includes" ist im Wiki-Rootverzeichnis zu erstellen, in dem alle gewünschen php-Includes unter dem Format include_irgendwas.php abgespeichert werden. Dem Plugin wird unter dem Namen Page dann "irgendwas" übergeben.) PHP-Code: __________________ Besucht mich doch mal auf meinen Webseiten: www.planeten.ch - Neun und mehr Planeten www.final-frontier.ch - Kommentare vom Rand des Universums |
#16
| ||||
| ||||
Zitat:
PHP-Code: __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#17
| ||||
| ||||
Du hast recht, daran hab ich gar nicht gedacht. Vielen Dank, habe das geändert. EDIT: Mir ist gerade aufgefallen, dass mein Skript zwar prüft, ob nur Buchstaben im übergebenen Text vorkommen - aber danach gar nichts damit macht. Korrekt sollte es also heissen: PHP-Code: __________________ Besucht mich doch mal auf meinen Webseiten: www.planeten.ch - Neun und mehr Planeten www.final-frontier.ch - Kommentare vom Rand des Universums Geändert von Bynaus (09.12.2005 um 13:08 Uhr). |
#18
| ||||
| ||||
PHP-Code: __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Forensoftware: Früher und heute | Maxboy | Forensoftware | 4 | 17.08.2005 00:12 |
Vergleichbare Systeme zu koobi und apexx(in Entwicklung) | amroth | Blog, CMS, Wiki und Sonstige | 9 | 01.09.2004 23:30 |