XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Template System und HTML5 mit Bootstrap - Problem!? (http://xhtmlforum.de/showthread.php?t=68003)

SourceSkyBoxer 24.08.2012 23:51

Template System und HTML5 mit Bootstrap - Problem!?
 
Hallo Users,

habe ich komische Probleme mit Template System mit HTML 5 mit der Komponent von Bootstrap ( Klick hier )

Und eigene nette Tutorial habe ich im Internet gefunden. ( Klick hier )

PHP Skript: /Template.Class.php
PHP-Code:

<?php
class Template
{
    
/**
     * Der Ordner in dem sich die Templates befinden.
     *
     * @access    private
     * @var       string
     */
    
private $templateDir "templates/";

    
/**
     * Der Ordner in dem sich die Sprach-Dateien befinden.
     *
     * @access    private
     * @var       string
     */
    
private $languageDir "language/";

    
/**
     * Der linke Delimter für einen Standard-Platzhalter.
     *
     * @access    private
     * @var       string
     */
    
private $leftDelimiter '{$';

    
/**
     * Der rechte Delimter für einen Standard-Platzhalter.
     *
     * @access    private
     * @var       string
     */
    
private $rightDelimiter '}';

    
/**
     * Der linke Delimter für eine Funktion.
     *
     * @access    private
     * @var       string
     */
    
private $leftDelimiterF '{';

    
/**
     * Der rechte Delimter für eine Funktion.
     *
     * @access    private
     * @var       string
     */
    
private $rightDelimiterF '}';

    
/**
     * Der linke Delimter für ein Kommentar.
     * Sonderzeichen müssen escapt werden, weil der Delimter in einem regulärem
     * Ausdruck verwendet wird.
     *
     * @access    private
     * @var       string
     */
    
private $leftDelimiterC '\{\*';

    
/**
     * Der rechte Delimter für ein Kommentar.
     * Sonderzeichen müssen escapt werden, weil der Delimter in einem regulärem
     * Ausdruck verwendet wird.
     *
     * @access    private
     * @var       string
     */
    
private $rightDelimiterC '\*\}';

    
/**
     * Der linke Delimter für eine Sprachvariable
     * Sonderzeichen müssen escapt werden, weil der Delimter in einem regulärem
     * Ausdruck verwendet wird.
     *
     * @access    private
     * @var       string
     */
    
private $leftDelimiterL '\{L_';

    
/**
     * Der rechte Delimter für eine Sprachvariable
     * Sonderzeichen müssen escapt werden, weil der Delimter in einem regulärem
     * Ausdruck verwendet wird.
     *
     * @access    private
     * @var       string
     */
    
private $rightDelimiterL '\}';

    
/**
     * Der komplette Pfad der Templatedatei.
     *
     * @access    private
     * @var       string
     */
    
private $templateFile "";

    
/**
     * Der komplette Pfad der Sprachdatei.
     *
     * @access    private
     * @var       string
     */
    
private $languageFile "";

    
/**
     * Der Dateiname der Templatedatei.
     *
     * @access    private
     * @var       string
     */
    
private $templateName "";

    
/**
     * Der Inhalt des Templates.
     *
     * @access    private
     * @var       string
     */
    
private $template "";


    
/**
     * Die Pfade festlegen.
     *
     * @access    public
     */
    
public function __construct($tpl_dir ""$lang_dir "") {
        
// Template Ordner
        
if ( !empty($tpl_dir) ) {
            
$this->templateDir $tpl_dir;
        }

        
// Sprachdatei Ordner
        
if ( !empty($lang_dir) ) {
            
$this->languageDir $lang_dir;
        }
    }

    
/**
     * Eine Templatedatei öffnen.
     *
     * @access    public
     * @param     string $file Dateiname des Templates.
     * @uses      $templateName
     * @uses      $templateFile
     * @uses      $templateDir
     * @uses      parseFunctions()
     * @return    boolean
     */
    
public function load($file)    {
        
// Eigenschaften zuweisen
        
$this->templateName $file;
        
$this->templateFile $this->templateDir.$file;

        
// Wenn ein Dateiname übergeben wurde, versuchen, die Datei zu öffnen
        
if( !empty($this->templateFile) ) {
            if( 
file_exists($this->templateFile) ) {
                
$this->template file_get_contents($this->templateFile);
            } else {
                return 
false;
            }
        } else {
           return 
false;
        }

        
// Funktionen parsen
        
$this->parseFunctions();
    }

    
/**
     * Einen Standard-Platzhalter ersetzen.
     *
     * @access    public
     * @param     string $replace     Name des Platzhalters.
     * @param     string $replacement Der Text, mit dem der Platzhalter ersetzt
     *                                werden soll.
     * @uses      $leftDelimiter
     * @uses      $rightDelimiter
     * @uses      $template
     */
    
public function assign($replace$replacement) {
        
$this->template str_replace$this->leftDelimiter .$replace.$this->rightDelimiter,
                                       
$replacement$this->template );
    }

    
/**
     * Die Sprachdateien öffnen und Sprachvariablem im Template ersetzen.
     *
     * @access    public
     * @param     array $files Dateinamen der Sprachdateien.
     * @uses      $languageFiles
     * @uses      $languageDir
     * @uses      replaceLangVars()
     * @return    array
     */
    
public function loadLanguage($files) {
        
$this->languageFiles $files;

        
// Versuchen, alle Sprachdateien einzubinden
        
for( $i 0$i count$this->languageFiles ); $i++ ) {
            if ( !
file_exists$this->languageDir .$this->languageFiles[$i] ) ) {
                return 
false;
            } else {
                 include_once( 
$this->languageDir .$this->languageFiles[$i] );
                 
// Jetzt steht das Array $lang zur Verfügung
            
}
        }

        
// Die Sprachvariablen mit dem Text ersetzen
        
$this->replaceLangVars($lang);

        
// $lang zurückgeben, damit $lang auch im PHP-Code verwendet werden kann
        
return $lang;
    }

    
/**
     * Sprachvariablen im Template ersetzen.
     *
     * @access    private
     * @param     string $lang Die Sprachvariablen.
     * @uses      $template
     */
    
private function replaceLangVars($lang) {
        
$this->template preg_replace("/\{L_(.*)\}/isUe""\$lang[strtolower('\\1')]"$this->template);
    }

    
/**
     * Includes parsen und Kommentare aus dem Template entfernen.
     *
     * @access    private
     * @uses      $leftDelimiterF
     * @uses      $rightDelimiterF
     * @uses      $template
     * @uses      $leftDelimiterC
     * @uses      $rightDelimiterC
     */
    
private function parseFunctions() {
        
// Includes ersetzen ( {include file="..."} )
        
while( preg_match"/" .$this->leftDelimiterF ."include file=\"(.*)\.(.*)\""
                           
.$this->rightDelimiterF ."/isUe"$this->template) )
        {
            
$this->template preg_replace"/" .$this->leftDelimiterF ."include file=\"(.*)\.(.*)\""
                                            
.$this->rightDelimiterF."/isUe",
                                            
"file_get_contents(\$this->templateDir.'\\1'.'.'.'\\2')",
                                            
$this->template );
        }


        
// Kommentare löschen
        
$this->template preg_replace"/" .$this->leftDelimiterC ."(.*)" .$this->rightDelimiterC ."/isUe",
                                        
""$this->template );
    }

    
/**
     * Das "fertige Template" ausgeben.
     *
     * @access    public
     * @uses      $template
     */
    
public function display() {
        echo 
$this->template;
    }
}
?>

Und ich erstelle eigene HTML5 mit der Verteilung Bootstrap:
/templates/header_body.html:
HTML-Code:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>{$website_title}</title>
<link href="../distirbution/css/bootstrap.css" rel="stylesheet">
</head>

<body>
<div class="page-header">
{include file="navi_body.html"}
</div>
<script src="../distirbution/js/bootstrap.min.js"></script>
</body>
</html>

/templates/navi_body.html:
HTML-Code:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link href="../distirbution/css/bootstrap.css" rel="stylesheet">
</head>
<body>
<div class="btn-group">
  <button class="btn">{L_HOME}</button>
  <button class="btn">{L_LINKS}</button>
  <button class="btn">{L_ABOUT}</button>
</div>
<script src="../distirbution/js/bootstrap.min.js"></script>
</body>
</html>

/templates/index_body.html
HTML-Code:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<link href="../distirbution/css/bootstrap.css" rel="stylesheet">
</head>
<body>
{include file="header_body.html"}
<h1>{L_START}</h1>
{L_THE_TIME_IS}: {$time}

<br /><br />

{$test}
<script src="../distirbution/js/bootstrap.min.js"></script>
</body>
</html>

/languages/de/lang_main.php:
PHP-Code:

<?php
$lang
['start']       = "Startseite";
$lang['the_time_is'] = "Die aktuelle Uhrzeit ist";
$lang['test']        = "Dies ist ein Test.";
$lang['home']         = "Start";
$lang['links']          = "Links";
$lang['about']         = "Über uns!";
?>

/index.php:
PHP-Code:

<?php
include("Template.class.php");

// Das Template laden
$tpl = new Template();
$tpl->load("index_body.html");

// Die Sprachdatei laden
$langs[] = "de/lang_main.php";
$lang $tpl->loadLanguage($langs);

// Platzhalter ersetzen
$tpl->assign"website_title""MyHomepage" );
$tpl->assign"time",          date("H:i") );

// Zugriff auf eine Sprachvariable
$tpl->assign"test",          $lang['test'] );

// Und die Seite anzeigen
$tpl->display();
?>

Und ich versuche mit Xampp Server. Ich habe schon mit Adobe Dreamweaver CS5.5 alles in die Ordnung mitgebracht. Wieso will CSS3 nicht mehr angezeigt werden? Und Javascript? Merkwürdig?
Schau mal Bild:
http://my.funpic.de/show-photo/661632-PIC.png

Ich habe deutlich genau gelesen, dass ich richtige Verbindung direkt
Bootstrap Verzeichnis als /distirbution vorgelegt habe.
http://my.funpic.de/show-photo/661633-PIC.png

Wie kann ich Problem lösen?

Vielen Dank für Antwort!

Thielo 26.08.2012 15:52

CSS und JS-Datein falsch verlinkt?

fox 27.08.2012 10:41

Code:

<link href="../distirbution/css/bootstrap.css" rel="stylesheet">
Bist du sicher, dass du distirbution meinst? Diesen Fehler hast du auch beim Javascript. Was kommt denn im Browser an?

SourceSkyBoxer 27.08.2012 21:53

Zitat:

Zitat von Thielo (Beitrag 519812)
CSS und JS-Datein falsch verlinkt?

Zitat:

Zitat von fox (Beitrag 519825)
Code:

<link href="../distirbution/css/bootstrap.css" rel="stylesheet">
Bist du sicher, dass du distirbution meinst? Diesen Fehler hast du auch beim Javascript. Was kommt denn im Browser an?

Ich habe schon richtig dargestellt. Merkwürdig kann Template-System direkt PHP nicht mit HTML5 unterstützen?

Gibt es möglich?

Ich würde euch geben, ob ihr meine Datei herunterladen wollt und meine Webseite testet, wenn meine Webseite nicht funktioniert.

Hier herunterladen!

Vielen Dank!

Thielo 27.08.2012 22:52

Zitat:

Zitat von SourceSkyBoxer (Beitrag 519854)
Ich habe schon richtig dargestellt. Merkwürdig kann Template-System direkt PHP nicht mit HTML5 unterstützen?

Gibt es möglich?

Ich würde euch geben, ob ihr meine Datei herunterladen wollt und meine Webseite testet, wenn meine Webseite nicht funktioniert.

Hier herunterladen!

Vielen Dank!

Ein Link kommt immer besser als eine Datei zum herunterladen.
Aber bevor du jetzt hier nen Link online stellen musst.. entferne mal das "../" bei der Einbindung von CSS und JS.

Dein Template liegt zwar woanders, aber es wird aus dem Hauptverzeichnis aufgerufen.

fox 27.08.2012 23:08

Als erstes solltest du dir vielleicht eine Browser-Erweiterung wie Firebug installieren oder einfach mal die Fehlerkonsole aufrufen. Dort werden auch Fehler angezeigt, wenn Dateien nicht gefunden werden, wenn ich das richtig in Erinnerung habe.

SourceSkyBoxer 30.08.2012 21:30

Zitat:

Zitat von Thielo (Beitrag 519855)
Ein Link kommt immer besser als eine Datei zum herunterladen.
Aber bevor du jetzt hier nen Link online stellen musst.. entferne mal das "../" bei der Einbindung von CSS und JS.

Dein Template liegt zwar woanders, aber es wird aus dem Hauptverzeichnis aufgerufen.

Oh mein Gott, du bist ja richtiger Exzellenter.

Ich wusste nicht, dass phpBB2/3 manchmal nicht direkt Ordner Style einhängen sollen.

Danke für Tipp! Meine schöne Webseite werde ich mehr ausüben und möchte ich gern nur HTML5- und CSS3- PHP Template Paket zum Beispiel. eigenes Blog-System hübsch darzustellen.

Schau mal einem Bild!
http://my.funpic.de/show-photo/663875-PIC.png

@fox, nein danke! Ich nehme standardmäßig mit Chrome und Opera Fehlerkonsole am besten. :)

Wofür soll ich Firebug installieren? Es tut mir leid. Ich bin kein Fan für Firefox :( Ich habe früher schon mit Firefox getestet, da finde ich leider sehr schade, dass Firefox bisschen langsamer als Chrome und Opera sei. Sei bitte mir nicht böse! Fuchse müssen rausgehen. Und die Pinguinen müssen hier kommen. :D

Vielen Dank für Hilfe. Jetzt bin ich klar gekommen und werde ich eigenes schönes Forum- und Blog-System basteln. :)

Edit: //
Wo soll ich dich bewerten / bedanken?

Liebe Grüße!

Thielo 30.08.2012 23:20

Zitat:

Zitat von SourceSkyBoxer (Beitrag 520028)
Oh mein Gott, du bist ja richtiger Exzellenter.

Würden das bloß mehr Leute so sehen ;)

Zitat:

Zitat von SourceSkyBoxer (Beitrag 520028)
@fox, nein danke! Ich nehme standardmäßig mit Chrome und Opera Fehlerkonsole am besten. :)

Auch dort hättest du dann sehen können, das Dateien fehlerhaft verlinkt waren. Deshalb auch der Hinweis auf Firebug.

SourceSkyBoxer 31.08.2012 07:12

@Thielo,

Danke für netter Erklärung! ;) Ich weiß jetzt klar. Es wäre eine elegante Lösung des Template-Systems mit HTML5 und CSS3, das entwirft schöner als alter Version?

Wie sind Nachteule und Vorteile mit HTML5 und CSS3 direkt Template-System PHP 5.x?

Wir haben schon HTML4 und CSS2 mit Template-System genutzt. z.B. phpBB2/3 oder Joomla CMS usw..

Was passiert die Webseite mit HTML5 und CSS3 von morgen?

Zufall mit der Elegant!
Eine gute Frage, die können die Webentwickler endlich elegante und schöne Webseite verwalten/basteln, wie eigene Frau hat auch schöne Kleidung getragen :) Normalerweise tragen die Männer oft Geschickte mit Krawatten. Stimmt es etwa richtig?

SourceSkyBoxer 03.09.2012 19:36

So wollte ich kleine Frage für der Seite beim Laden / Entladen wie phpBB3 Seite oder vBulletin Seite stellen:

Ich habe überhaupt nichts gefunden. Wenn ich eigene Seite dargestellt habe, dann würde ich genau wissen, wie funktioniert der Klick ( Link ) bei der Seite mit Template System und Link- oder Navigationssystem ( Menüleiste )?

Als ich kenne über eigene selbstgemachte Seite beim phpBB3-Verzeichnis. ( Customized page into phpBB3 )

Aber ich habe bisschen vergessen, was soll ich mit der Menü direkt header_body.html beachten? z.B.

index.php = Startseite
- Templates:
-- index_body.html
-- header_body.html
-- navi_body.html
-- home_body.html <- Standard für der Startseite gezeigt werden.
-- impress_body.html <- Impressum
-- *_body.html <- beispielerweise für eigene andere Seite soll man direkt navi_body.html angeklickt werden.

Muss ich div Tags einschreiben, um der Menü über div tags zu navigieren / drücken / ausgeführt zu sein?

Vielen Dank für Hilfe! :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:03 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023