Simple Machines Community Forum

SMF Support => Hilfe zu SMF (German) => Language Specific Support => FAQ & Tutorials => Topic started by: noex on January 09, 2005, 01:07:03 PM

Title: BASIC SSI FAQ
Post by: noex on January 09, 2005, 01:07:03 PM
Orginal: Basic SSI FAQ (http://www.simplemachines.org/community/index.php?topic=12936.0)

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:

<?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:
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:

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


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:

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 (http://www.simplemachines.org/community/index.php?topic=13016.0)'.
Im Anhang finden Sie noch die zwei Code Beispiele die Ihnen möglicherweise helfen:


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 (http://www.simplemachines.org/community/index.php?action=dlattach;topic=12936.0;id=1913)
welcome.txt (http://www.simplemachines.org/community/index.php?action=dlattach;topic=12936.0;id=1914)

Deutsche Übersetzung von noex
Title: Re: BASIC SSI FAQ
Post by: bjp 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
Title: Re: BASIC SSI FAQ
Post by: Daniel D. on March 09, 2005, 02:09:27 PM
Quote from: bjp 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

This is the german board. Please ask in the english topic...
http://www.simplemachines.org/community/index.php?topic=12936.0
Title: Re: BASIC SSI FAQ
Post by: Sim Biggi 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
Title: Re: BASIC SSI FAQ
Post by: dieter4 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.
Title: Re: BASIC SSI FAQ
Post by: yasak_34 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
Title: Re: BASIC SSI FAQ
Post by: dieter4 on November 22, 2006, 02:42:12 PM
Schau dir einmal das hier an: http://www.simplemachines.org/community/ssi_examples.php
Title: Re: BASIC SSI FAQ
Post by: Maestro 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
Title: Re: BASIC SSI FAQ
Post by: xduugu 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.
Title: Re: BASIC SSI FAQ
Post by: bloodyRoots 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
Title: Re: BASIC SSI FAQ
Post by: dieter4 on December 27, 2006, 09:01:47 AM
Welche Datei?
Title: Re: BASIC SSI FAQ
Post by: bloodyRoots 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!
Title: Re: BASIC SSI FAQ
Post by: Blackbeard 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 ?
Title: Re: BASIC SSI FAQ
Post by: Dorte 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?
Title: Re: BASIC SSI FAQ
Post by: dieter4 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.
Title: Re: BASIC SSI FAQ
Post by: Dorte on February 05, 2007, 12:19:11 PM
Ah, vielen Dank!
Title: Re: BASIC SSI FAQ
Post by: Flitsch on August 17, 2007, 04:51:36 AM
Hallo,

kann man auch den Inhalt eines einzelnen Beitrages darstellen lassen, ohne irgendwelche Randinfos?
Title: Re: BASIC SSI FAQ
Post by: noex 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:

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

?>




Title: Re: BASIC SSI FAQ
Post by: Flitsch 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?


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


???
Title: Re: BASIC SSI FAQ
Post by: Cheffu on October 28, 2007, 10:49:01 AM
Hallo,
ich finde den Beispielcode:
<?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:
if ($context['allow_admin'])
  {
   Block of statements
  }
else
  {
   Block of statements
  }

Nur eben nicht auf den Admin sondern eine bestimmte Benutzergruppe bezogen.

mfg
Cheffu
Title: Re: BASIC SSI FAQ
Post by: Cheffu on December 18, 2007, 01:06:12 PM
Gibt es den keine Möglichkeit, dass sich dies auf Benutzergruppen bezieht?
Title: Re: BASIC SSI FAQ
Post by: DingDong on December 04, 2009, 06:23:36 PM
Quote from: Dorte 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?

Quote from: Neakro 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.

Sorry, aber das ist ja blöd gemacht....
Immer wenn ich neue Boards hinzufüge, muss ich ja die erst ausschließen
Title: Re: BASIC SSI FAQ
Post by: prosch on February 06, 2012, 05:48:59 PM
Es gibt doch auch andere Möglichkeiten, kennt jemand? Danke, für eine kurze Rückmeldung.

Ich habe vorhin etwas über die Benutzergruppen gelesen. Leider konnte mir das nicht weiter helfen.