• Welcome to Simple Machines Community Forum. Please login or sign up.
January 16, 2022, 08:08:03 PM

News:

Want to get involved in developing SMF, then why not lend a hand on our github!


BASIC SSI FAQ

Started by noex, January 09, 2005, 01:07:03 PM

Previous topic - Next topic

noex

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:

<?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'.
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"

bjp

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

Daniel D.

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

Sim Biggi

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

dieter4

Ohne HTML bist du im Web ziemlich aufgeschmissen.

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

yasak_34

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

dieter4


Maestro

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

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.

bloodyRoots

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

dieter4


bloodyRoots

... 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!

Blackbeard

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 ?

Dorte

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?

dieter4

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.

Dorte


Flitsch

Hallo,

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

noex

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

?>




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

Flitsch

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/");


???

Cheffu

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

Advertisement: