Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Seitenspezifischen Inhalt einbinden
#1
Hallo,

ich stehe grad noch auf dem Schlauch.

Ich müsste für eine Website auf jeder Seite spezifischen Inhalt einbinden. Möglichkeit 1) wäre sicher JEDER Seite ein eigenes Template zu verpassen. Das fände ich aber arg umständlich.

Jetzt wäre meine Idee Möglichkeit 2) Den Inhalt per include bzw. require einbinden. ich würde den Inhalt also jeweils als page_slug.inc.php anlegen. Jetzt komme ich aber nicht drauf, wie ich da den Namen des Includes rein bekomme, also wie ich das get_page_slug (oder das return_page_slug) in das include/require einbinde.

Danke schon mal,

Chris
Reply
#2
hallo Chris,

es gibt mehrere Möglichkeiten:

1)

du kannst ein Component anlegen, das du im Template einbindest
im Component fragst du ab, auf welcher Seite man gerade ist (Slug abfragen) und dann entsprechend Inhalt einbinden

2)
du kannst im Template selbst den "slug" abfragen und spezifische Inhalte einbinden

das geht z.B. so:
PHP Code:
    <!-- Nur auf der Startseite die Feature-Liste anzeigen -->
    <?
php

        
if (return_page_slug()=='index') {

            echo 
'<div id="features" class="section">';
            
get_component('sidebar');
            echo 
'</div>';

        } else {

        echo 
'';

        }

    
?>

3)
du kannst pro Seite eine inc-Datei anlegen die so heißt wie der slug der jeweiligen Seite
dann mit
PHP Code:
<?php return_page_slug(); ?>
einfach diese INC-Datei in dein Template einbinden

also abfragen: gibt es ein return_page_slug();.inc.php (ich hab jetzt nicht auf korrekte Schreibweise geachtet), dann binde es ein...

ich hoffe diese Anregungen helfen dir ein bißchen weiter

Cheers, Connie
|--

Das deutschsprachige GetSimple-(Unter-)Forum:   http://get-simple.info/forums/forumdisplay.php?fid=18
Reply
#3
Danke schön...

der Syntax müsste dann doch eigentlich sein:

<?php include (return_page_slug();".inc.php");

oder?

Und wo müsste ich denn die includes hinpacken, damit er sie findet?

Bzw. wenn ich in einer Komponente (was ja die elegantere Lösung zu sein scheint) includes aufrufen will, wo müssten die dann liegen?

Schon mal noch mal danke vorab...
Reply
#4
So... die grundsätzlichen Probleme sind gelöst. Allerdings würde ich gerne vor dem includieren, wie Du ja vorgeschlagen hast, prüfen ob die Datei vorhanden ist. Also quasi:

PHP Code:
<?php
if (file_exists('beispielseite.inc.php')) {
   include(
'beispielseite.inc.php');
} else {
   echo 
'Hier steht gar nix!';
}
?>

Nun findet er die Seite so ja nicht, da er ja nicht weiss WO er nach ihr suchen soll.
Meine Lösung
PHP Code:
$eins=return_page_slug(); 
$einschluss=$eins.'.inc.php';

if (
file_exists('theme/Themename/'.$einschluss)) {
   include(
$einschluss);
} else {
   echo 
'Hier steht nix!';

ist suboptimal, weil der Themename statisch ist.
PHP Code:
<?php get_theme_url(); ?>
hilft mir ja als echo funktion nicht weiter.
gibt es eine Variable in der der Themename steht?

Ganz herzlichen Dank im Voraus, wenn ich die Seite durch habe, werde ich meine Lösungsansätze hier auch gern dokumentieren, vielleicht hilft es ja dem nächsten.

Chris
Reply
#5
hast dus mal hiermit versucht??

es ist ein "conditional by template" möglich, was für mich so ausschaut als wird dann schon im aktuellen Theme-Verzeichnis nachgeschaut:

sieh hier:
http://get-simple.info/wiki/theme:templa...e_snippets

das löst vielleicht dein Problem

Connie
|--

Das deutschsprachige GetSimple-(Unter-)Forum:   http://get-simple.info/forums/forumdisplay.php?fid=18
Reply
#6
Ist das, was Sie wollen?
Ich war es im Wiki gerade letzte Nacht schreiben

http://get-simple.info/wiki/components-d...rent_pages
Reply
#7
Hallo Connie,

das gibt leider nur den Namen der tatsächlichen template.php zurück und nicht den Namen des Themes...

Der nette Nebeneffekt des ganzen ist, dass ich mein PHP grad echt entroste...

Hallo Timbow,

das würde es über Komponenten lösen... Das muss ich mir näher anschauen... Danke!

Cheers,

Chris
Reply
#8
ich hatte dich aber so verstanden, dass du prüfen möchtest ob im aktiven Theme-Verzeichnis das template xyz.php vorhanden ist und wenn ja, dann das template xyz.php aufrufen
und dieses Conditional scheint im aktiven Theme-Verzeichnis nach dem Template zus chauen

probiers doch aus, geht doch schnell
|--

Das deutschsprachige GetSimple-(Unter-)Forum:   http://get-simple.info/forums/forumdisplay.php?fid=18
Reply
#9
Ach so rum meinst Du... Dann müsste ich ja doch wieder mit if Abfragen für jedes Spezifische Include arbeiten. Ich hab mir jetzt die Variante von Timbow angepasst, damit habe ich die funktionalität der Submenüs ja sogar über Templates hinweg...

Aber ich werd's auch noch mal über den anderen Weg versuchen...

Danke Connie & Thanks a bunch Timbow
Reply




Users browsing this thread: 1 Guest(s)