1 Blog - 2 Webseiten
1 Blog - 2 Webseiten
Hallo zusammen,
nachdem ich erfolgreich mein erstes Serendipity aufgesetzt habe, bin ich auf den Geschmack gekommen. Ich betreibe Privat 2 Seiten, um mir die Arbeit ein wenig zu vereinfachen, würde ich gerne das bestehende Newssystem durch Serendipity ersetzen.
Demnach müsste man auf den Webseiten Serendipity includen, d.h Header und Footer "ersetzen"?
Oder, RSS mit PHP auslesen (zfeeder) und auf die Seite packen?
Oder, gibt es eventuell schon ein Plugin, das dies für mich erledigt?
Many Thanx. Frank.
nachdem ich erfolgreich mein erstes Serendipity aufgesetzt habe, bin ich auf den Geschmack gekommen. Ich betreibe Privat 2 Seiten, um mir die Arbeit ein wenig zu vereinfachen, würde ich gerne das bestehende Newssystem durch Serendipity ersetzen.
Demnach müsste man auf den Webseiten Serendipity includen, d.h Header und Footer "ersetzen"?
Oder, RSS mit PHP auslesen (zfeeder) und auf die Seite packen?
Oder, gibt es eventuell schon ein Plugin, das dies für mich erledigt?
Many Thanx. Frank.
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: 1 Blog - 2 Webseiten
Wie Du schon anmerkst, gibt es dazu verschiedenste Möglichkeiten.
1. Die einfachste, wenn Du etwas PHP kannst, ist das Du folgendes in Dein Framework einbaust:
Mit den paar Zeilen kann dann dein Standard-Template ausgegeben werden. Alternativ kannst Du aber die SErendipity Funktionen serendipity_fetchEntries() selber ansprechen und dann das zurückgegebene Array mit eigenem Layout ausgeben.
2. Mit etwas Smarty Magie bearbeitest Du Dein Blog-Template und sorgst dafür, dass Du deinen Inhalt auch mittels iframe() woanders einbinden kannst. Dir den "Embed" Modus (siehe Doku) anzusehen könnte evtl. auch nicht schaden.
3. Du nutzt das Plugin "serendipity_event_backend" von dma147 (im Plugin-Verzeichnis) mit dem Du einen einfachen Javascript-Block nutzen kannst der Deine Inhalte einbettet.
4. Die RSS-Methode, wobei hier am meisten Flexibilität flöten geht und der meiste Netzwerk-Traffic verursacht würde.
Wenn Du also Ahnung von PHP hast, empfehle ich Methode 1. Wenn Du's schnell und einfach haben willst, Methode 3. Wenn Du es immer noch einfach haben willst aber mit etwas Layoutkontrolle, nutze Möglichkeit 4 mit einem gängigen RSS Parser wie Magpie oder Onyx.
Viele Grüße,
Garvin
1. Die einfachste, wenn Du etwas PHP kannst, ist das Du folgendes in Dein Framework einbaust:
Code: Select all
<?php
$olddir = getcwd();
chdir('/path/to/s9y');
include_once('serendipity_config.inc.php');
include_once('include/genpage.inc.php');
chdir($olddir);
?>
2. Mit etwas Smarty Magie bearbeitest Du Dein Blog-Template und sorgst dafür, dass Du deinen Inhalt auch mittels iframe() woanders einbinden kannst. Dir den "Embed" Modus (siehe Doku) anzusehen könnte evtl. auch nicht schaden.
3. Du nutzt das Plugin "serendipity_event_backend" von dma147 (im Plugin-Verzeichnis) mit dem Du einen einfachen Javascript-Block nutzen kannst der Deine Inhalte einbettet.
4. Die RSS-Methode, wobei hier am meisten Flexibilität flöten geht und der meiste Netzwerk-Traffic verursacht würde.
Wenn Du also Ahnung von PHP hast, empfehle ich Methode 1. Wenn Du's schnell und einfach haben willst, Methode 3. Wenn Du es immer noch einfach haben willst aber mit etwas Layoutkontrolle, nutze Möglichkeit 4 mit einem gängigen RSS Parser wie Magpie oder Onyx.
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/
# 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/
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi Frank,
Die kannst Du recht leicht einschränken, indem Du vor dem serendipity_fetchEntries() aufruf ein $serendipity['GET']['category'] = 4711; setzt, also die ID der KAtegorie die Du haben willst.
Aus Backwards-Compatibility-Gründen kann man diese KategorieID leider nicht als Parameter in der Funktion angeben.
Viele Grüße,
Garvin
Die kannst Du recht leicht einschränken, indem Du vor dem serendipity_fetchEntries() aufruf ein $serendipity['GET']['category'] = 4711; setzt, also die ID der KAtegorie die Du haben willst.
Aus Backwards-Compatibility-Gründen kann man diese KategorieID leider nicht als Parameter in der Funktion angeben.
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/
# 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/
Hi Garvin,
besten Dank mal wieder
für die schnelle und ausführliche Antwort. Echt genial, was Du hier leistest!
Allerdings muss ich noch mal Deine Hilfe in Anspruch nehmen.
Also ich habe mich mal an die PHP Umsetzung gemacht, aber ich bin scheinbar mehr Admin als Programmierer!
Vielleicht kannst Du mir noch einen kleinen Tip in die richtige Richtung geben.
Also mein Quellcode:
Und das ist der Output!
Please help! Frank.
besten Dank mal wieder
Allerdings muss ich noch mal Deine Hilfe in Anspruch nehmen.
Also ich habe mich mal an die PHP Umsetzung gemacht, aber ich bin scheinbar mehr Admin als Programmierer!
Also mein Quellcode:
Code: Select all
<html>
<head><title>.:BLOGimport:.</title></head>
<body bgcolor="#eeeeee">
<?php
$olddir = getcwd();
chdir('blog/');
include_once('blog/serendipity_config.inc.php');
include_once('blog/include/genpage.inc.php');
serendipity_smarty_init();
print_r(serendipity_fetchEntries(null, true, 15));
chdir($olddir);
?>
</body>
</html>
Please help! Frank.
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Sorry, hab Dein Posting hier nicht gesehen.
Du hast ja den Output schon, jetzt kannst Du ihn ganz einfach ausgeben:
Viele Grüße,
Garvin
Du hast ja den Output schon, jetzt kannst Du ihn ganz einfach ausgeben:
Code: Select all
<html>
<head><title>.:BLOGimport:.</title></head>
<body bgcolor="#eeeeee">
<?php
$olddir = getcwd();
chdir('blog/');
include_once('blog/serendipity_config.inc.php');
include_once('blog/include/genpage.inc.php');
serendipity_smarty_init();
$entries = serendipity_fetchEntries(null, true, 15);
foreach($entries AS $entry) {
echo '<h3>' . $entry['title'] . '</h3>';
echo '<div>' . $entry['body'] . '</div>';
}
chdir($olddir);
?>
</body>
</html>
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/
# 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/
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Klar, Du kannst in Deinem HTML Kopfbereich einfach folgendes einfügen:
Damit lädst Du das CSS von Serendipity. URL natürlich richtig einfügen. 
Grüße,
Garvin
Code: Select all
<link rel="stylesheet" type="text/css" href="http://localhost/serendipity/trunk/index.php?/serendipity.css" />
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/
# 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/
Besten Dank, darauf hätte ich auch selbst kommen können!
Allerdings gibt es dann Probleme mit meinem CSS. Ich habe jetzt versucht, die CSS Syntax, die von mir benötigt wird in mein CSS File mit aufzunehmen.
Doch ein Problem habe ich noch
und zwar mit dem Layout, will heißen, beim "Import" fehlen Absätze und Leerzeilen! Kannst Du mir die Klasse nennen, die dafür verantwortlich ist?
Ach ja, wo ich gerade dabei bin. Bei Deinem Quellcode - Vorschlag hast Du folgende Zeilen verwandt:
Ich nehme mal an, das die Variablen für Überschrift und Hauptteil stehen. Kannst Du mir eventuell sagen, wo ich die Variablen für die Kommentare bzw. des Autors her bekomme?
Vielen, vielen Dank!!! Frank.
Allerdings gibt es dann Probleme mit meinem CSS. Ich habe jetzt versucht, die CSS Syntax, die von mir benötigt wird in mein CSS File mit aufzunehmen.
Doch ein Problem habe ich noch
Ach ja, wo ich gerade dabei bin. Bei Deinem Quellcode - Vorschlag hast Du folgende Zeilen verwandt:
Code: Select all
echo '<h3>' . $entry['title'] . '</h3>';
echo '<div>' . $entry['body'] . '</div>';
Vielen, vielen Dank!!! Frank.
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Wenn Du quasi das s9y layout nachstellen willst, würde es sich eventuell lohnen, wenn Du mit der serendipity_printEntries() funktion arbeiten würdest:
Wie Du siehst, kommen am Ende zwei Funktionsaufrufe dazu, die den foreach-Loop ersetzen. Auch ganz wichtig am Anfang die ob_start() Funktion.
Wenn Du es aber mit eigenem Inhalt probieren willst, kannst Du das richtige Layout wie folgt erzwingen, innerhalb deines foreach-loops
Dadurch werden nämlich die Plugins, die Dir nl2br und Smilies umwandeln auch alles ausgeführt.
Zusätzliche Infos, welche Variablen Dir zur Verfügung stehen, kannst Du mit einem print_r($entry) auslösen.
Viele Grüße,
Garvin
Code: Select all
<?php ob_start(); ?>
<html>
<head><title>.:BLOGimport:.</title></head>
<body bgcolor="#eeeeee">
<?php
include_once('blog/serendipity_config.inc.php');
include_once('blog/include/genpage.inc.php');
serendipity_smarty_init();
$entries = serendipity_fetchEntries(null, true, 15);
serendipity_printEntries($entries);
echo serendipity_smarty_fetch('ENTRIES', 'entries.tpl', true);
?>
</body>
</html>
Wenn Du es aber mit eigenem Inhalt probieren willst, kannst Du das richtige Layout wie folgt erzwingen, innerhalb deines foreach-loops
Code: Select all
foreach($entries AS $entry) {
$entry['display_dat'] = '';
serendipity_plugin_api::hook_event('frontend_display', $entry);
serendipity_plugin_api::hook_event('frontend_display:html:per_entry', $entry);
$entry['plugin_display_dat'] =& $entry['display_dat'];
echo '<h3>' . $entry['title'] . '</h3>';
echo '<div>' . $entry['body'] . '</div>';
}
Zusätzliche Infos, welche Variablen Dir zur Verfügung stehen, kannst Du mit einem print_r($entry) auslösen.
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/
# 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/
-
bart_the1st
- Posts: 3
- Joined: Fri Nov 30, 2007 6:57 pm
Das hat mir doch schon mal sehr weiter geholfen!
Ich habe es nun so gemacht:
Ich habe nur noch 2 "Probleme"
- die umlaute (äöü) werden nicht richtig dargestellt (z.b. ä = ä)
- ich würde die Titel gerne als link haben
Ich habe es nun so gemacht:
Code: Select all
<?php ob_start(); ?>
<html>
<head><title>.:BLOGimport:.</title></head>
<body bgcolor="#eeeeee">
<?php
include_once('serendipity_config.inc.php');
include_once('include/genpage.inc.php');
serendipity_smarty_init();
$entries = serendipity_fetchEntries(null, true, 5);
serendipity_printEntries($entries);
foreach($entries AS $entry) {
$entry['display_dat'] = '';
serendipity_plugin_api::hook_event('frontend_display', $entry);
serendipity_plugin_api::hook_event('frontend_display:html:per_entry', $entry);
$entry['plugin_display_dat'] =& $entry['display_dat'];
echo '<h3>' . $entry['title'] . '</h3>';
}
?>
</body>
</html>- die umlaute (äöü) werden nicht richtig dargestellt (z.b. ä = ä)
- ich würde die Titel gerne als link haben
-
garvinhicking
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
1. Wenn du dein blog mit UTF-8Zeichensatz laufen lässt, musst DU im <head> Bereich ebenfalls den Content-Type als UTf-8 deklarieren, oder alternativ mittels PHP header('Content-Type: text/html; charset=UTF-8') setzen.
2. Dann nutze statt
Grüße,
Garvin
1. Wenn du dein blog mit UTF-8Zeichensatz laufen lässt, musst DU im <head> Bereich ebenfalls den Content-Type als UTf-8 deklarieren, oder alternativ mittels PHP header('Content-Type: text/html; charset=UTF-8') setzen.
2. Dann nutze statt
Code: Select all
echo '<h3>' . $entry['title'] . '</h3>';
Code: Select all
echo '<h3><a href="' . $entry['link'] . '">' . $entry['title'] . '</a></h3>';
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/
# 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/