Page 1 of 1
Embedding des gesamten Blogs in eine Seite
Posted: Thu Aug 10, 2006 6:51 pm
by Nexlamar
Hi!
Zunächst Kompliment an die Macher - Top-Software, bin von Installation bis Nutzung sehr begeistert!
Jetzt zu meiner Frage: Ich würde gerne s9y komplett in eine Seite einbauen (Ich weiß, andersherum ist es einfacher, aber ich will es eben so

). Die Anleitungen zum embedden habe ich befolgt und beim erstmaligen Aufruf der Blog-Startseite wird auch alles wunderbar gewrappt und eingebettet. Die Links innerhalb des Blog-Bereichs auf meiner Seite verweisen aber noch in mein s9y-Verzeichnis. Ich möchte aber dass sich alles (am besten auch der Admin-Bereich) auf eben meiner Seite öffnet. Wie stelle ich das an? Ich verwende auf meiner Seite kein Template System - es soll einfach alles in der Unterseite blog.php ausgegeben werden ...
Merci vielmals,
Markus
Posted: Fri Aug 11, 2006 12:52 am
by Nexlamar
Kleines Update:
Mein Problem entspricht exakt dem hier:
http://www.s9y.org/forums/viewtopic.php ... ht=wrapper
Hier wurde es irgendwie gelöst - ich stehe aber leider immer noch an dieser Stelle:
Grüße,
Markus
Posted: Fri Aug 11, 2006 10:05 am
by garvinhicking
Hi!
Um die Links auf deinen eigenen Wrapper zu leiten gibt es in der Konfiguration die "indexFile" option, die standardmäßig auf "index.php" steht. Diese musst Du dann nur auf deine wrapper.php umsetzen, dann müssten folgelinks auch deine webseite aufrufen.
Generell nochmal die Empfehlung, anstelle des embed Modes empfiehlt sich mittlerweile die Nutzung des Smarty Templatings. Einfach die eigene Webseite in das Smarty-Template einbinden (entweder per HTML, oder auch per eigener Smarty-Funktionen via config.inc.php im Template), das ist am Ende weitaus weniger schmerz als das Wrapping-Gedöns...
viele Grüße,
Garvin
Posted: Fri Aug 11, 2006 11:40 am
by Nexlamar
Hi!
Danke.
Das habe ich versucht, dann werden die Links zu:
http://www.markus-wichmann.de/serendipi ... 06/08.html
Richtig wäre aber:
http://www.markus-wichmann.de/index.php ... 06/08.html
Ok, ich schaue mir die Smarty-Templates Mal an, läßt sich damit denn auch mein Vorhaben realisieren das Blog nur in eine einzige Seite (index.php oder blog.php) zu integrieren ?
Danke für die Hilfe!
Grüße,
Markus
Posted: Fri Aug 11, 2006 11:43 am
by garvinhicking
Hi!
Die wrapper.php muss sich im s9y Verzeichnis befinden - ansonsten würden alle relativen Links nicht korrekt funktionieren [hauptsächlich die von den bildern]. Du musst also dafür Sorgen, dass deine wrapper.php auch in dem s9y verzeichnis liegt, oder s9y in das stammverzeichnis installieren.
Viele Grüße,
Garvin
Posted: Fri Aug 11, 2006 11:57 am
by Nexlamar
Ok, ich glaube ich behindere mich gerade selbst

- eigentlich habe ich doch die wrapper.php in das s9y-Verzeichnis kopiert (siehe Link-Beispiele oben) ?
Hier zur Sicherheit nochmal der Inhalt der wrapper.php
Code: Select all
<?php
ob_start();
$a = getcwd();
chdir($a."/serendipity");
require("index.php");
chdir($a);
$blog = ob_get_contents();
ob_end_clean();
?>
Eingebunden in meine index.php:
Code: Select all
require("serendipity/wrapper.php");
und dort auch ausgegeben
Code: Select all
<?php
echo $blog; // Print the variable
?>
Meine index.php liegt im root, s9y ist in root/serendipity/ installiert ...
Grüße,
Markus
Posted: Fri Aug 11, 2006 12:03 pm
by garvinhicking
Hi!
Bei Dir gibt es ja zwei Fälle:
1. Deine Seite ruft das Blog auf; deine index.php ruft also die wrapper.php auf.
2. Das Blog zeigt eine Unterseite mit einem blog-internen Link. Dazu ruft es die wrapper.php selbständig auf. Sprich, deine eigene index.php wird dabei übergangen.
Daher musst Du sicherstellen, dass wenn die wrapper.php direkt aufgerufen wird, dass deine index.php aufgerufen wird. In beide DAteien musst Du also eine Abfrage einbauen.
In deiner index.php:
Code: Select all
<?php
if (!defined('IS_BLOG')) {
define('IS_BLOG', true);
include 'serendipity/wrapper.php';
}
// Dein KRam
echo $blog;
und in deiner wrapper.php:
Code: Select all
<?php
ob_start();
chdir("/pfad/zu/serendipity");
require("index.php");
chdir($a);
$blog = ob_get_contents();
ob_end_clean();
if (!defined('IS_BLOG')) {
define('IS_BLOG', true);
include '../index.php';
}
?>
Durch die Konstante werden dann beide Fälle abdeckt: index.php ruft wrapper.php auf, oder wrapper.php ruft index.php auf. Und mittels der Konstante wird keine zirkuläre Referenz (aka Endlosschleife) erstellt.
Weiterhin musst Du dein getcwd()-Kommando anpassen. Denn wenn die wrapper.php direkt aufgerufen wird, bist Du ja schon im Serendipity-Verzeichnis.
Grüße,
Garvin
Posted: Fri Aug 11, 2006 5:11 pm
by Nexlamar
Hi Garvin,
danke für Deine Mühen.
Deine Auführungen verstehe ich, aber es funktioniert leider noch immer nicht

(
http://www.markus-wichmann.de/).
Beim Start ruft meine index den Wrapper. Der speichert das Blog in einer Variable, die ich danach in meiner index ausgebe. Wunderbar.
Zu diesem Zeitpunkt müssen die Links des in der Variablen gespeicherten Blogs aber eigentlich schon umgewandelt sein ...?
Muss es vielleicht eine Verbindung der Definitionen in wrapper.php und meiner index.php geben?
Sorry das ich Dich mit sowas aufhalte ...
Grüße,
Markus
Posted: Sat Aug 12, 2006 8:44 am
by Nexlamar
Morgen!
Habe alles nochmal durchprobiert und jetzt s9y in die Unterseite
www.markus-wichmann.de/blog.php integriert. Die Problematik mit den Links bleibt aber. Die .htaccess Datei wurde korrekt modifiziert (wrapper.php).
Vielleicht komme ich darauf wenn ich genau weiß wie die Links im gewrappten Blog entstehen?
Ich bin sicher dass es an irgendeiner Kleinigkeit hängt - wenn ich von s9y nicht so begeistert wäre, hätte ich es längst hingeschmissen
Grüße,
Markus
Posted: Sun Aug 13, 2006 2:24 pm
by garvinhicking
Hi!
Habe mir die Seite gerade mal schnell angesehen, aber das sieht doch prinzipiell okay aus? Wo genau hakt's noch? Würde natürlich gerne helfen, wo Du doch voll des Lobes bist
Viele Grüße,
Garvin
Posted: Sun Aug 13, 2006 10:16 pm
by Nexlamar
Hi Garvin!
Yes - habe es nun doch hinbekommen. Grundsätzlich bin ich davon weg s9y auf die Startseite zu bauen. Es ist jetzt auf der Unterseite blog.php. Und hier gleicht dann mein Problem dem von "Ganima" vor einiger Zeit. Mit ihm habe ich dann auch Kontakt aufgenommen und ebenfalls sehr nette und ausführliche Hilfe bekommen (Danke nochmal an dieser Stelle!!).
Zusammen mit Deinen Erläuterungen hat es dann funktioniert und zwar so:
s9y liegt im Unterverzeichnis /blog. Dort liegt auch die blog.php und die wrapper.php.
Letztere sieht so aus:
Code: Select all
<?php
ob_start();
chdir("/meinroot/www/blog/");
require("index.php");
chdir("../");
$serendipity_contents = ob_get_contents();
ob_end_clean();
?>
In der blog.php (quasi meine blog-index Seite) steht am Anfang
In der Konfiguration habe ich dann unter IndexFile "blog.php" eingetragen.
That´s it!
Da ich den embedding-mode verwende habe ich mir noch ein neues Stylesheet zurechtgebastelt und jetzt kann ich an das optische Feintuning gehen!
Nochmals vielen Dank für die Hilfe!
Grüße,
Markus
Posted: Mon Aug 14, 2006 6:56 pm
by garvinhicking
Hi!
Super, vielen Dank nochmal für deine Zusammenfassung hier! Ich hoffe Du wirst spaß mit s9y haben
Viele Grüße,
Garvin