Embedding des gesamten Blogs in eine Seite

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Embedding des gesamten Blogs in eine Seite

Post 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
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Post 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:
However, if I click on any entries within the page, they take me to a page with the serendipity directory:

i.e.

http://127.0.0.1/testsite/serendipity/a ... -post.html

Same thing happens if I click on 'archives', reply, etc.

I guess I am nearly there, but how do I bind all these links to the page blog.php

what I guess I need is:

http://127.0.0.1/testsite/blog.php?page ... -post.html
Grüße,
Markus
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Post by Nexlamar »

Hi Garvin,

danke für Deine Mühen.

Deine Auführungen verstehe ich, aber es funktioniert leider noch immer nicht :oops: (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
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Nexlamar
Regular
Posts: 7
Joined: Thu Aug 10, 2006 6:41 pm

Post 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

Code: Select all

require ('wrapper.php');
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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Super, vielen Dank nochmal für deine Zusammenfassung hier! Ich hoffe Du wirst spaß mit s9y haben :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply