Portal > Foren > PHP > PHP-Programmierung > Page Modular aufbauen!
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 08.04.2007, 00:12 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 08.04.2007
Beiträge: 5
Standard Page Modular aufbauen!

Hallo,
ich würd gerne eine Seite modular aufbauen (ich denke das ist das falsche Wort dafür)

Also ich hab zb. 4 Links (Home, Produkte, Impressum, Kontakt) und die Seiten sind alle in verschiedenen Templates beschrieben. (arbeite mit Smarty)

Da soll einfach die templates geladen werden die grad für die Seite gebraucht werden.

Wenn ich zb. auf den Link Produkte klicke soll die Domain etwa so außen www.domain.tld/produkte und da soll er eben die eine template anzeigen.

Versteht ihr was ich meine?
artis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 00:31 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Willkommen erstmal im Forum.
---

Jau, habe nicht so ganz verstanden, was du willst, aber ich kann mir denken, was du meinst.

Allerdings hast du jetzt ja keine konkrete Frage gestellt, so dass ich nochmal nachhaken muss. Wo genau liegt dein Problem?
Fehlt dir ein Weg an die Herangehensweise oder hakt es bei der technischen Umsetzung, ...?

Schau vielleicht auch mal hier rein.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 00:40 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 08.04.2007
Beiträge: 5
Standard

Hey,
danke dir
--------

Ja mir fehlt der Weg an die Harangehensweise

Ich hab nun 5 Templates:
#header.tpl
#index.tpl
#main.tpl (soll dynamisch sein)
#footer.tpl
#sidebar.tpl

Wenn ich jetzt domain.tld aufufe soll er die main.tpl anzeigen, und wenn ich auf produkte klicke soll man die produkte.tpl sehen.

Und zur gleich soll die URL eben dann nicht so lauten domain.tld/index.php?pid=1 sondern eher domain.tld/produkte
artis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 00:45 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Hallo,
generell kannst du diese Art des URL via .htaccess und sogenannten "RewriteRules" erreichen. Benutze am besten mal den Suchdienst deiner Wahl, um etwas mehr über das Apache-Modul "mod_rewrite" und dessen Anwendung zu erfahren.

Das, was du letztlich machen willst, ist mit etwas Basiswissen diesbzgl. glaube ich nicht wirklich schwer.
Bei Fragen kannst du die gerne stellen. Fertigen Code ohne Eigenleistung wirst du hier nicht erhalten.

Grüße, Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 00:51 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 08.04.2007
Beiträge: 5
Standard

Huhu,

also das mit den RewriteRules hab ich auch gerade gelesen. Werd ich mir nachher genauer anschauen Ich hab schon seit langem nimmer mit PHP gearbeitet deswegen hab ich einiges vergessen.

Also die Navilinks sollte ich mit new switch machen oder?

Beispiel wäre sowas!
PHP-Code:
<?php
$ident 
'show';
if(isset(
$_GET[$ident])) {
switch(
$_GET[$ident]) {
case 
'news' :
include(
'./pfad/zur/news.php');
break;
case 
'imprint' :
include(
'./pfad/zur/imprint.php');
break;
default :
include(
'./error404.php');
break;
}
}
else {
include(
'./startseite.php');
}
?>
Code:
http://domain.tld/index.php?show=news
Aber hab keine Idee wie ich da mit Smarty zusammenarbeiten soll!
artis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 01:56 Nach oben    #6
Neuer Benutzer
 
Registriert seit: 08.04.2007
Beiträge: 5
Standard

Hallo,
sry wegen doppelpost

Ich habe es jetzt so gelöst:

index.php
PHP-Code:
//get:page
  
if($_GET['pid']=="") {
    
$view->assign('file'"pages/main.tpl");
  } else {
    
$view->assign('file'"pages/".$_GET['pid'].".tpl");
  } 
und die links habe ich so bennant
index.php?pid=news

so funktonierts jedenfalls!

Findest du das so in Ordnung?
artis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 02:13 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Abgesehen davon, dass man GET-Parameter nicht einfach so verwenden sollte, ohne sie vorher auf Ihren Inhalt überprüft zu haben und davon, dass ich hier nicht wirklich etwas modulares sehe .. musst du ganz alleine entscheiden, ob du das so gut findest.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 02:35 Nach oben    #8
Neuer Benutzer
 
Registriert seit: 08.04.2007
Beiträge: 5
Standard

Ok dann kannst du mir sicherlich ne andere Lösung empfehlen oder?! (eine bessere/intelligentere/sichere Lösung)
artis ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.04.2007, 02:52 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Generell machst du es ja richtig. Hatte da auch mal was zum Prinzip geschrieben:
Layout, PHP und "Frames"

Merke dir einfach, dass du keiner Userangabe ($_GET, $_POST, ...) glauben darfst. Du musst immer überprüfen, was in den Variablen steht und ob das nicht irgendwelche Sachen sind, die du eigentlich gar nicht haben willst!

Aber das hat mit diesem Thread hier nichts zu tun oder hast du den Titel einfach nur falsch gewählt?
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.04.2007, 10:30 Nach oben    #10
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 853
Standard

Erweitere das einfach etwa so:
PHP-Code:
$sTemplateDir '/path/to/templates/';

$sPageTemplate 'main';

if (!empty(
$_GET['pid']))
    
$sPageTemplate basename($_GET['pid']);

$sPageTemplateFile $sTemplateDir $sPageTemplate '.tpl';

if (
file_exists($sPageTemplateFile)) {

    
$view->assign('file'$sPageTemplateFile);

} else {

    
$view->assign('file''404');
    
header("HTTP/1.0 404 Not Found");

Allerdings wundert es mich, dass jede Seite ihr eigenes Template haben soll. Mehr Sinn macht es i.d.R. verschiedene Seitentypen (die man Module nennen könnte) zu definieren und die Seiten auf die Typen zu mappen:

PHP-Code:
// config...

$sModuleDir   '/path/to/modules/';
$sTemplateDir '/path/to/templates/';

// data from database or ...

$aPages = array(

    
'home'      => array('type' => 'News'),
    
'kontakt'   => array('type' => 'ContactForm'),
    
'ueber_uns' => array('type' => 'Article'),
    
'angebot'   => array('type' => 'Article')
);

// handle request

$sDefaultPage key(reset($aPages));

$sPageId $sDefaultPage;

if (!empty(
$_GET['page'])) {

    if (!
array_key_exists($_GET['page'], $aPages))
        
throw_an_error();

    
$sPageId $_GET['pid'];
}

$aPageData $aPages[$sPageId];

$sModule $aPageData['type'];

// run module

$sModuleFile $sModuleDir $sModule '.php';

if (
file_exists($sModuleFile)) {

    include 
$sModuleFile;

} else {

    
error();
}

// output

$sPageTemplateFile $sTemplateDir $sPageTemplate '.tpl';

if (
file_exists($sPageTemplateFile)) {

    
$view->assign('file'$sPageTemplateFile);

} else {

    
error();
}

$view->display(); 
Mit Objekten geht das natürlich "schöner", da du dort fest definierte Schnittstellen hast. Aber mit dem Prinzip an sich fährst du sicher ganz gut.

Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Eclipse Plugin - Search Preference Page Ben Eclipse 5 06.02.2007 16:20
Staat will Internet-Archiv aufbauen Jann Hendrik Interessante Diskussionsthemen 33 04.01.2007 11:46
"Your about page is a robot", by alistapart.com Ben Plauderecke 0 08.09.2006 17:13
Wie kann ich meinen Server aufbauen? felix Allgemeine Java-Programmierung 6 06.08.2005 21:26


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:59 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45