Serendipity-Buch

Handbuch für Serendipity bestellen

Das offizielle, umfassende Serendipity-Handbuch für Einsteiger und Profis ist nun im Handel und kann online bei Amazon oder OpenSourcePress, oder auch bei jedem Buchhändler, bestellt werden!

Forum-Information

Before posting about errors, make sure that the answer cannot already be found in our FAQ or by searching this forum!
Posting is restricted to registered users (registering is free and simple!) due to recent spam attacks. When having trouble with this board, contact garvin(-at)s9y(-dot)org.

Board index Generelles in Deutsch 1 Blog - 2 Webseiten

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Thu Oct 13, 2005 4:43 pm

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.

User avatar
garvinhicking
Core Developer
 
Posts: 26675
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Thu Oct 13, 2005 4:51 pm

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:

Code: Select all
<?php
$olddir = getcwd();
chdir('/path/to/s9y');
include_once('serendipity_config.inc.php');
include_once('include/genpage.inc.php');
chdir($olddir);
?>


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
# 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/

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Thu Oct 13, 2005 6:04 pm

Hallo Garvin,

besten Dank für die schnelle und seeeehr ausführliche Antwort! :shock: Ich gehe die Punkte mal durch und schaue, was für mich am ehesten in Frage kommt!

Eine Frage noch zu der PHP Geschichte! Wie kann ich zum Beispiel nur News von einer Kategorie anzeigen lassen?

Vielen Dank. Frank.

User avatar
garvinhicking
Core Developer
 
Posts: 26675
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Fri Oct 14, 2005 1:45 pm

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
# 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/

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Fri Oct 14, 2005 7:13 pm

Hi Garvin,

besten Dank mal wieder :oops: für die schnelle und ausführliche Antwort. Echt genial, was Du hier leistest! :lol:

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! :oops: Vielleicht kannst Du mir noch einen kleinen Tip in die richtige Richtung geben.

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>


Und das ist der Output!

Please help! Frank.

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Fri Oct 21, 2005 11:42 am

Hallo zusammen,

also irgendwie komme ich nicht so richtig weiter! Hat vielleicht jemand noch eine Tip für mich, wie ich meiner Lösung ein wenig näher komme? :roll:

Vielen Dank schon mal!

Frank.

User avatar
garvinhicking
Core Developer
 
Posts: 26675
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Fri Oct 21, 2005 12:13 pm

Sorry, hab Dein Posting hier nicht gesehen.

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>


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/

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Fri Oct 21, 2005 6:13 pm

Mensch Garvin,

Du bist heute mein persönlicher Held! :D

Vielen Dank und ein schönes Wochenende!

Gruß. Frank.

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Mon Oct 24, 2005 12:28 pm

Hallo Garvin,

könntest Du mir noch einen Tip geben, wie ich das CSS von Serendipity für meine Zwecke nutzen kann? :roll:

Danach hast Du auch betsimmt Deine Ruhe (zumindest vor mir)! :lol:

Gruß. Frank.

User avatar
garvinhicking
Core Developer
 
Posts: 26675
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Mon Oct 24, 2005 12:31 pm

Klar, Du kannst in Deinem HTML Kopfbereich einfach folgendes einfügen:

Code: Select all
<link rel="stylesheet" type="text/css" href="http://localhost/serendipity/trunk/index.php?/serendipity.css" />


Damit lädst Du das CSS von Serendipity. URL natürlich richtig einfügen. :)

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/

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Mon Oct 24, 2005 1:23 pm

Besten Dank, darauf hätte ich auch selbst kommen können! :oops:

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 :roll: 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:
Code: Select all
echo '<h3>' . $entry['title'] . '</h3>';
echo '<div>' . $entry['body'] . '</div>';

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.

User avatar
garvinhicking
Core Developer
 
Posts: 26675
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Mon Oct 24, 2005 1:36 pm

Wenn Du quasi das s9y layout nachstellen willst, würde es sich eventuell lohnen, wenn Du mit der serendipity_printEntries() funktion arbeiten würdest:

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>


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

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>';
}


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
# 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/

fwe77
Regular
 
Posts: 136
Joined: Wed Sep 21, 2005 11:17 pm

Postby fwe77 » Mon Oct 24, 2005 2:05 pm

Genau das war es was ich gesucht habe!!! :lol:

Vielen vielen Dank! Gruß Frank.

bart_the1st
 
Posts: 3
Joined: Fri Nov 30, 2007 7:57 pm

Postby bart_the1st » Sat Dec 01, 2007 12:16 am

Das hat mir doch schon mal sehr weiter geholfen!

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>


Ich habe nur noch 2 "Probleme"
- die umlaute (äöü) werden nicht richtig dargestellt (z.b. ä = ä)
- ich würde die Titel gerne als link haben

User avatar
garvinhicking
Core Developer
 
Posts: 26675
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany

Postby garvinhicking » Sat Dec 01, 2007 12:22 am

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

Code: Select all
  echo '<h3>' . $entry['title'] . '</h3>';


Code: Select all
  echo '<h3><a href="' . $entry['link'] . '">' . $entry['title'] . '</a></h3>';


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/



Return to Generelles in Deutsch

Who is online

Users browsing this forum: No registered users and 0 guests

cron