InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: Seiten dynamisch mit PHP erstellen Artikel anzeigen

Peter schrieb am Donnerstag, den 5 Oktober 2017 #1
Ich konnte mit Hilfe der Anleitungen hier eine Glossar Datenbank (kann auch als Wörterbuch oder kleines Lexikon verwendet werden) gebaut.

Man kann auch gesamte Design im Backend in die Datenbank schreiben - die Daten werden dann in eine style.php geschrieben und dementsprechend eingebunden.

Alles funktioniert wunderbar, wenn man das Script als "Solo" laufen lässt.

Ich scheitere an der nahtlosen Einbindung in eine bestehende Website. Iframe kommt nicht in Frage.

Ich habe natürlich alles entfernt, sodass nur mehr der Code zwischen dem body übrig bleibt.

Wenn ich die Frontend Seite vom Glossar (Verzeichnis glossar/index.php) per include oder require einbinden, funktioniert das auch.

Das Problem kommt dann, dass die Linkpfade, Bildpfade usw auf der betreffenden Frontendseite nicht mehr stimmen, was auch logisch ist.

Gibt es einen Weg, dass die Pfade dynamisch ermittelt werden, egal in welchem Verzeichnis und auf welcher Seite man das Script per include einbindet, damit
man nicht dauernd die Linkpfade usw. händisch anpassen muss.

Ich wäre um einen Denkanstoße sehr dankbar - bitte keine fertige Lösung - möchte nämlich lernen.

PS: würde das Script dann gerne vorstellen und zur Verfügung stellen, wenn es fertig ist.

Beste Grüße Peter
Werner schrieb am Donnerstag, den 5 Oktober 2017 #2
Hallo Peter,
solche Probleme mit dem includen von Dateien habe ich immer vermieten, da meine include-Dateien max. eine Verzeichnis entfernt liegen. brauche da immer nur include "../menue/datei.php"; einzugeben.
Teste mal folgendes: $_SERVER['DOCUMENT_ROOT'].'verzeichnis/datei.php';
Siehe: de2.php.net/manual/de/reser[…]server.php
Peter schrieb am Freitag, den 6 Oktober 2017 #3
Danke Werner für den Tipp. Ich schau mir das in den nächsten Tagen an. Ich brauch da etwas Zeit zum Studieren.

Beste Grüße Peter
Peter schrieb am Freitag, den 6 Oktober 2017 #4
Ich habe für mich eine Lösung gefunden.

Beispiel:

Nehmen wir an, wir haben ein Script im Ordner "script" .

Im Ordner "script" befindet sich die Datei "a.php" mit einer Verlinkung auf die Datei "xy.php" im Unterordner "example-ordner" mit der verlinkten PNG Grafik namens "logo.png", die sich im Ordner "images" befindet.

Der Link sieht jetzt verkürzt so aus:
1<a href="example-ordner/xy.php"><img src="images/logo.png"></a>


Wir laden den Ordner "script" auf unseren Webserver und rufen die Datei
"www.deine-homepage.at/script/a.php" auf.

Die Grafik wird korrekt angezeigt und der Link funktioniert.

Nun wollen wir die Datei "a.php" per include in unsere bestehende Website nahtlos einbinden, ohne dafür unsaubere Frames verwenden zu müssen.

Häufig ist es ja so, dass ein Script nicht direkt verwendet wird, sondern in eine bereits bestehende Website eingebunden werden soll.

Dazu binden wir die Datei "a.php" per include oder require an die gewünschte Stelle
ein.

Der Inhalt der Datei "a.php" wird korrekt angezeigt. Blöderweise funktioniert
der Link zu "example-ordner/xy.php" nicht mehr und die Grafik wird auch nicht
mehr angezeigt, sondern nur mehr der Alternativtext. Ist eigentlich logisch, da die relativen Pfade nicht mehr stimmen. Wir müssen die Pfade anpassen, aber das ist recht mühsam.


Lösung - Verwendung von Variablen:

Beispiel, wie es aussehen könnte für die Datei "a.php"

1
2
3
4
5
6
7
$url_pfad = "/script/";
$pic_pfad = "/script/images/"; 

...weiterer Code und HTML

<a href="<?=$url_pfad?>example-ordner/xy.php"><img src="<?=$pic_pfad?>logo.png"></a>


Weiteres Beispiel für den Versand eines Formulars:

1<form action="<?=$url_pfad?>senden.php" method="post">



Wie gesagt, ich habe das für mich als Lösung gefunden, und kann das "script" sowohl
als Solo und als include verwenden. Natürlich kann man das Verzeichnis direkt im Link angeben, aber dann muss man sich wieder Gedanken mit "/", ohne oder nit Punkte usw machen - außerdem müsste man das Script dann für 2 Versionen anlegen (1x mal als Solo und 1x als Include-fahig". Weiters sind tiefere Verschachtelungen auch kein Problem, oder die Einbindung von Stylesheets.



Beste Grüße
Peter
Werner schrieb am Montag, den 9 Oktober 2017 #5
Danke Peter, das ist eine einfache und tolle Lösung :up:
Torty schrieb am Freitag, den 27 März 2020 #6
Ich hab meine Seite genau so aufgebaut und wollte nun je nachdem welche Seite geöffnet ist mit JS ein Attribut mit einer Bestimmten ID active setzen, damit man sieht wo man sich gerade auf der Seite befindet.

<script>
var element = document.getElementById("home");
element.classList.add("active");
</script>

Das Element mit der Id befindet sich in einer HTML Datei, die durch PHP geladen wird.

<?php
include('Training/menu.html');
?>

Leider funktioniert das nicht. Kann mir jemand sagen warum?
Werner schrieb am Freitag, den 27 März 2020 #7
Das Script musst du an das Ende der HTML-Seite einfügen. Dann sind alle Elemente der Seite geladen. Also kurz vor: </body></html>

Oder mit Hilfe von JavaScript nach dem laden des Dokuments die Funktion aufrufen:
Event-Handler mit JavaScript setzen

1
2
3
4
5
6
<script>
window.addEventListener("DOMContentLoaded", function() {
 var element = document.getElementById("home");
 element.classList.add("active");
});
</script>
Uwe schrieb am Mittwoch, den 17 November 2021 #8
Hallo Werner,

nach wie vor bin ich großer Fan und Nutzer der Tipps. Inzwischen erstelle ich am liebsten meine Webseiten nach diesem Tutorial. Perfekt!

Nur, wie kann ich ein vorhandenes (Worpdpress) Shopsystem einfach einbinden? Mittels Frames? Das ist doch sicher nicht richtig. Gibt es eine elegante und sinnvolle Lösung um externe Seiten (Beispiel Wordpress Shopsystem) einzubinden?

Fragende Grüße
Uwe 🙂
Werner schrieb am Donnerstag, den 18 November 2021 #9
Hallo Uwe,
das kommt auf das jeweilige Shopsystem an, include ist kein Problemlöser für alles.
Es gibt ja Funktionen in PHP (wie: header(), session(), cookie()) die nicht einfach so inkludiert werden können.

Da müsstest du in der Doku / Community des jeweiligen Shopsystems nachschauen. Und wenn es so etwas nicht gibt, würde ich ein anderes verwenden.
Uwe ✶✶✶✶✶ schrieb am Freitag, den 19 November 2021 #10
Hallo Werner,

stimmt, daran hatte ich nicht gedacht, also egal ob include oder require - das wird schwierig.
Wollte halt eine "fertige" Shoplösung auf einer meiner anderen Domains darüber einbinden.
Selbstgestrickte Shopssysteme sind mir zu gefährlich.
Werde dann mal versuchen was ich hinbekomme und ob. Wenns geht, schreib ich etwas dazu.

Viele Grüße
Uwe