Advertisement:

Author Topic: BASIC SSI FAQ  (Read 48059 times)

Offline noex

  • Language Moderator
  • Local Moderator
  • SMF Hero
  • *
  • Posts: 1,764
  • Gender: Male
  • Der Mensch denkt und Gott lacht...
    • inveoo.com
BASIC SSI FAQ
« on: January 09, 2005, 01:07:03 PM »
Orginal: Basic SSI FAQ

Basic SSI FAQ

Hallo und herzlich Willkommen zu den Basic SSI FAQ, in diesem FAQ werden Sie lernen was SSI ist und ob bzw. wie Sie es für Ihre Zwecke verwenden können. Wir beschäftigen uns in diesem FAQ mit den Standardfragen zu SSI, außerdem finden Sie weiter unten im Anhang Beispielskripte. Wenn Sie am Ende noch Fragen haben freue ich mich auf Ihr Feedback.

**BITTE ÄNDERN SIE IHRE 'SSI.PHP' NICHT**
Alles was hier erklärt wird ist ohne einer Änderung der SSI.php möglich!



Was ist SSI?
SSI – Server Side Include – ist eine Möglichkeit Inahlte Ihres Forums in Ihre Seite zu integrieren. Es besteht außerdem die Möglichkeit Forum Statistiken, News, neueste Beiträge, usw. auf Ihrer Homepage einzubinden.


Wie kann mir SSI helfen?
Auch Sie können SSI verwenden, hier ein Beispiel:
Sie haben eine Homepage und ein Forum, und Sie möchten Benutzern die eingeloggt sind die Möglichkeit bieten spezielle Downloads anzuzeigen.

Für diese und ähnliche Dinge wird SSI benötigt und ist in nur wenigen Minuten erledigt.


Okay, SSI ist super, aber wie (bzw. wo) fange ich an?
Als erstes müssen Sie eine neue Datei auf Ihrer Homepage mit der Dateierweiterung .php erstellen. Um diese Datei zu öffnen verwenden Sie einen Texteditor und schreiben folgenden Code:

Code: [Select]
<?php
require("/home/simple/public_html/forum/SSI.php"); 
?>

Aber stellen Sie sicher das der Pfad zu Ihrer SSI.php korrekt ist! Diese Datei finden Sie im Verzeichnis Ihres Forums. Als hilfe können Sie auch die Datei 'ssi_examples.php' in Ihrem Browser aufrufen dort wird der Pfad ebenfalls angezeigt.


Ich habe nun den korrekten Pfad zur SSI.php, was nun?
Okay, wenn Sie nun den korrekten Pfad zu Ihrer SSI.php habe und diesen in Ihre Datei geschrieben haben, dann haben Sie den ersten Schritt bereits geschafft.

Als nächstes werden wir Funktionen (Erweiterungen) zu Ihrer Homepage hinzufügen (z.B.: Menü-Leiste, Wer ist Online, etc.) dieser Code kommt zwischen Ihrem require… Befehl und dem ?>.
Fügen Sie folgenden Code hinzu:
Code: [Select]
ssi_menubar();
So nun öffnen Sie diese Datei in Ihrem Browser, wenn alles geklappt hat sollten Sie nun die Menüleiste ihres Forums sehen. Wenn Sie dort nichts sehen oder eine Fehlermeldung bekommen dann kann dies daran liegen das der Pfad zur SSI.php nicht korrekt ist.

Wenn es funktioniert können Sie nun weitere Funktionen zu Ihrer Datei hinzufügen. Sämtliche Funktionen finden Sie in der 'ssi_examples.php' Datei.


Das war cool, gibt's noch mehr?
Ja, da gibt es noch mehr als diese Funktionen, ich will Ihnen nun zeigen wie das mit Benutzerberechtigungen funktioniert, dafür ein kleines Beispiel:

Beispiel:
Sie haben eine Homepage und ein Forum und möchten nur Benutzern die eingeloggt sind erlauben spezielle Downloads zu sehen.
Das ist einfach zu realisieren, hier nun der PHP Code mit dem Sie das lösen können:

Code: [Select]
<?php
require("YOUR_PATH_TO_SSI.php"); 

if (
$context[&#39;user&#39;][&#39;is_guest&#39;])
{
   echo 
   
&#39;<h5>Zugriff verweigert </h5>
   Es tut uns leid Gastaber Sie haben nicht die Berechtigung diese Downloads einzusehen.&#39;;
}
else
{
   echo
   
&#39;<h5>Willkommen, &#39;, $context[&#39;user&#39;][&#39;name&#39;], &#39;!</h5>
   Hier sind Ihre Downloads:&#39;;
}
?>

So nun zur Erklärung dieses Codes:
Das 'if' Argument arbeitet mit true und false (wahr und falsch), wenn das Argument (in unserem Fall ($context['user']['is_guest'])) true (wahr) ist, dann gilt der erste Block, wenn es jedoch false (falsch) ist tritt die else Bedingung in Kraft.
In unserem Fall also, wenn der Benutzer nicht eingeloggt ist bekommt er die Fehlermeldung mit "Zugriff verweigert", und wenn der Benutzer eingeloggt ist sieht er die Liste der Downloads. Sie können das verwenden für was immer Sie möchten.

Sie können dasselbe auch mit dem Admin machen:

Code: [Select]
if ($context['allow_admin'])
  {
   Block of statements
  }
else
  {
   Block of statements
  }

Das reicht erst mal für die Basic SSI FAQ, die nächste Anleitung (FAQ) ist die 'Advanced SSI FAQ'.
Im Anhang finden Sie noch die zwei Code Beispiele die Ihnen möglicherweise helfen:

  • membergroups.txt  Speichert die Benutzergruppe in einer Variable die Sie später verwenden können.
  • welcome.txt  Wenn Sie ein "Gast" sind zeigt es den Benutzer-Login, andernfalls die Willkommensmeldung

Hoffentlich haben Ihnen diese FAQ weitergeholfen. Wenn Fragen offen geblieben sind oder Dinge verwirrend waren, schreiben Sie mir bitte.
Ihr Feedback ist mir sehr wichtig!

Danke
-Lamper

membergroups.txt
welcome.txt

Deutsche Übersetzung von noex
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Offline bjp

  • Jr. Member
  • **
  • Posts: 163
Re: BASIC SSI FAQ
« Reply #1 on: March 09, 2005, 09:06:21 AM »
Sorry for my anglish.
I want to do display 10 last topics from my forum on ma home page like on this picture :
forum name (bold): topic subject (with link).
And if possible alternate colors
Can someone help me, I have been trying for such a long time.

http://www.simplemachines.org/community/index.php?topic=27359.msg211497#msg211497

Offline Daniel D.

  • SMF Friend
  • SMF Hero
  • *
  • Posts: 4,426
  • Gender: Male
Re: BASIC SSI FAQ
« Reply #2 on: March 09, 2005, 02:09:27 PM »
Sorry for my anglish.
I want to do display 10 last topics from my forum on ma home page like on this picture :
forum name (bold): topic subject (with link).
And if possible alternate colors
Can someone help me, I have been trying for such a long time.

http://www.simplemachines.org/community/index.php?topic=27359.msg211497#msg211497

This is the german board. Please ask in the english topic...
http://www.simplemachines.org/community/index.php?topic=12936.0

Offline Sim Biggi

  • Semi-Newbie
  • *
  • Posts: 17
  • Gender: Female
    • Sim Biggis Gallery
Re: BASIC SSI FAQ
« Reply #3 on: November 13, 2006, 09:05:46 AM »
Sorry, leider kenne ich mich mit HTML nicht aus und möchte gerne das Forum mit meiner HP verknüpfen so das die Besucher ins Forum gehen können und ohne Probleme zu den Downloads zurück gehen können. :'(

Zur Zeit ist es so das wer im Forum sich bewegt nicht mit einem Klick zu den Downloads kommt oder zu der Startseite gehen kann.

Habe ein Button direkt als externen Link zum Forum verknüpft, nur das zurück gehen ist sehr umständlich.

Gibt es eine Möglichkeit das zu ändern ohne HTML

Glg Sim Biggi

Offline dieter4

  • SMF Hero
  • ******
  • Posts: 2,855
Re: BASIC SSI FAQ
« Reply #4 on: November 13, 2006, 10:35:43 AM »
Ohne HTML bist du im Web ziemlich aufgeschmissen.

Man kann einen Link in der SMF-Navigation hinzufügen. Suche einmal danach hier im Forum.

Offline yasak_34

  • Semi-Newbie
  • *
  • Posts: 11
Re: BASIC SSI FAQ
« Reply #5 on: November 21, 2006, 07:50:48 AM »
wie wie kann ich genau die top10 nachrichten auf meine start seite der homepage( also nicht auf der forum siete) zeigen
was soll ich machen.
bin anfänger
danke für hilfe

Offline dieter4

  • SMF Hero
  • ******
  • Posts: 2,855
Re: BASIC SSI FAQ
« Reply #6 on: November 22, 2006, 02:42:12 PM »

Offline Maestro

  • Newbie
  • *
  • Posts: 4
Re: BASIC SSI FAQ
« Reply #7 on: November 27, 2006, 04:21:33 AM »
Hallo, das bringt mich zur Frage der Codierung der Umlaute bei den SSI.
Sowohl hier im Board, als auch auf meiner RC3-Installation will das nicht so recht hinhauen.

Grüße

xduugu

  • Guest
Re: BASIC SSI FAQ
« Reply #8 on: November 27, 2006, 06:07:52 AM »
Bei den Beispielen wird keine HTTP-Header bzgl. Encoding versendet, weswegen es automatisch ISO-8859-1 angenommen wird. Bei UTF-8 Boards ist das dann natürlich die falsche Kodierung und die Umlaute und Sonderzeichen werden falsch angezeigt.

Offline bloodyRoots

  • Newbie
  • *
  • Posts: 2
Re: BASIC SSI FAQ
« Reply #9 on: December 26, 2006, 01:56:47 PM »
oi!
ich hab mal ne frage,
 was soll ich machen wenn ich die datei net runterladen kann?
(die um es auf meinem server zu installieren)

mfg Roots

Offline dieter4

  • SMF Hero
  • ******
  • Posts: 2,855
Re: BASIC SSI FAQ
« Reply #10 on: December 27, 2006, 09:01:47 AM »
Welche Datei?

Offline bloodyRoots

  • Newbie
  • *
  • Posts: 2
Re: BASIC SSI FAQ
« Reply #11 on: December 27, 2006, 12:47:55 PM »
... ich habs jetzt über nen kumpel runtergeladen!

kann mit einer sagen wo ich ne shoutbox für die 1.1.1 version
die nneonneo's Shoutbox 1.02geht bei mir nicht!

Offline Blackbeard

  • Semi-Newbie
  • *
  • Posts: 25
Re: BASIC SSI FAQ
« Reply #12 on: January 03, 2007, 04:37:49 PM »
Wahnsinn...versteh zwar ein wenig PHP und CGI etc...raff aber manche sachen net auf anhieb......woll besser die sachen zweimal durchlesen..*gg..bin aber trotzdem richtig erstaunt was es so für möglichkeiten gibt....nur weiter so.....

MfG Blackbeard

P.S.: was mich mal interessieren würde wie sieht es aus ein ferdigen chat ins forum zu integrieren ?

Offline Dorte

  • Semi-Newbie
  • *
  • Posts: 63
  • Gender: Female
Re: BASIC SSI FAQ
« Reply #13 on: February 04, 2007, 08:42:55 AM »
Kann ich eigentlich über recentTopics auch nur ein bestimmtes Boards auslesen lassen, also meinetwegen die 10 aktuellsten Threads eines Boards? (Wenn ja, wie?) Oder bezieht sich das immer aufs gesamte Forum?

Offline dieter4

  • SMF Hero
  • ******
  • Posts: 2,855
Re: BASIC SSI FAQ
« Reply #14 on: February 04, 2007, 08:58:29 AM »
Man kann Board ausschließen, aber keine konkreten nennen. Also einfach alle ungewollten Board ausschließen (als Array übergeben). Wo welches Argument hin muss kannst du in der SSI.php nachsehen.

Offline Dorte

  • Semi-Newbie
  • *
  • Posts: 63
  • Gender: Female
Re: BASIC SSI FAQ
« Reply #15 on: February 05, 2007, 12:19:11 PM »
Ah, vielen Dank!

Offline Flitsch

  • Jr. Member
  • **
  • Posts: 213
  • Gender: Male
Re: BASIC SSI FAQ
« Reply #16 on: August 17, 2007, 04:51:36 AM »
Hallo,

kann man auch den Inhalt eines einzelnen Beitrages darstellen lassen, ohne irgendwelche Randinfos?

Offline noex

  • Language Moderator
  • Local Moderator
  • SMF Hero
  • *
  • Posts: 1,764
  • Gender: Male
  • Der Mensch denkt und Gott lacht...
    • inveoo.com
Re: BASIC SSI FAQ
« Reply #17 on: August 17, 2007, 01:47:06 PM »
Ja klar, gutes Beispiel hierfür wäre:
http://www.simplemachines.org/community/index.php?topic=13016.0

Vorallem dieses Beispiel:

Code: [Select]
<?php

$array 
ssi_boardNews(5.05null250'array');

foreach (
$array as $news)
{
echo 
'
<table border="0" width="100%" align="center" class="ssi_table">
<tr>
<td><b>'
$news['subject'], '</b></td>
</tr>
<tr>
<td>'
$news['body'], '<br /><br /></td>
</tr>
</table>
<br />'
;

if (!
$news['is_last'])
echo 
'
<hr width="100%" />
<br />'
;
}

?>



"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Offline Flitsch

  • Jr. Member
  • **
  • Posts: 213
  • Gender: Male
Re: BASIC SSI FAQ
« Reply #18 on: August 18, 2007, 09:41:07 AM »
Oh Super, um die Seiten extern anzeigen zu können, muss ich mit sowas php-Code einleiten?

Code: [Select]
<?php require("http://www.mein_forum.de/der_Pfad_zum_Forum/");

 ???

Offline Cheffu

  • Jr. Member
  • **
  • Posts: 140
  • Gender: Male
  • Immer locker bleiben
    • Meine Homepage
Re: BASIC SSI FAQ
« Reply #19 on: October 28, 2007, 10:49:01 AM »
Hallo,
ich finde den Beispielcode:
Code: [Select]
<?php
require("YOUR_PATH_TO_SSI.php"); 

if (
$context['user']['is_guest'])
{
   echo 
   
'<h5>Zugriff verweigert </h5>
   Es tut uns leid Gast, aber Sie haben nicht die Berechtigung diese Downloads einzusehen.'
;
}
else
{
   echo
   
'<h5>Willkommen, '$context['user']['name'], '!</h5>
   Hier sind Ihre Downloads:'
;
}
?>
sehr interessant und nützlich. Nur bräuchte ich ihn so, das z.b. die Benutzergruppe "Freunde" den Inhalt sieht und nicht im allgemeinen einfach jeder der angemeldet ist.
Also:
entweder man ist nicht angemeldet und nicht in der Gruppe -> Zugriff verweigert
oder man ist in der Benutzergruppe -> Downloads

Im Prinzip also sowas wie der andere Beispielcode:
Code: [Select]
if ($context['allow_admin'])
  {
   Block of statements
  }
else
  {
   Block of statements
  }
Nur eben nicht auf den Admin sondern eine bestimmte Benutzergruppe bezogen.

mfg
Cheffu