gemeinsamer header für phpbb und andere bereiche

Alles zu Styles, Templates, Icons und Smilies für phpBB 2.0, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
bobnunne
Mitglied
Beiträge: 114
Registriert: 23.09.2005 12:36
Wohnort: Aachen
Kontaktdaten:

gemeinsamer header für phpbb und andere bereiche

Beitrag von bobnunne »

hallo,

ich würde gerne den header des phpbb, also dem menü des subsilverheaders incl. des logos, auch für andere, nicht phpbb bezogene inhalte nutzen bzw. einbinden. besonders meine 4images galerie soll diesen header bekommen, damit alle bereiche einheitlich aussehen.
da ich in php nicht so bewandert bin wäre es großartig wenn mir jemand mit einem beispiel code eine anregung geben könnte wie soetwas zu realisieren wäre, vieleicht anhand meine 4homepages galerie.

link zu meinem board: http://www.nunne-design.de/forum
link zu meiner galerie: http://www.nunne-design.de/4images/index.php
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Damit kann man den phpBB Header bequem nutzen:

KB:phpbb_seite
Benutzeravatar
bobnunne
Mitglied
Beiträge: 114
Registriert: 23.09.2005 12:36
Wohnort: Aachen
Kontaktdaten:

Beitrag von bobnunne »

damit bin ich gerade am werke, nur leider funktioniert es irgendwie noch nicht so richtig. ich bekomme leider nur fehler meldungen.

ich versuche das php konstrukt um den html header code herumzubauen.

zur zeit siehts so aus:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = 'http://www.nunne-design.de/forum/template/subSilver/overal_header.tpl';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'http://www.nunne-design.de/forum/includes/page_header.'.$phpEx); 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{direction}">
<head>
<title>{site_name}</title>
<meta http-equiv="content-type" content="text/html; charset={charset}" />
<link rel="stylesheet" href="{template_url}/style.css" />
<script language="javascript" type="text/javascript">
<!--
  function opendetailwindow() { 
    window.open('','detailwindow','toolbar=no,scrollbars=yes,resizable=no,width=680,height=480');
  }
  
  function right(e) {
    if (navigator.appName == 'Netscape' && (e.which == 2 || e.which == 3)) {
      alert("© Copyright by {site_name}");
      return false;
    }
    else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button==2 || event.button == 3)) {
      alert("© Copyright by {site_name}");
      return false;
    }
    return true;
  }
  document.onmousedown=right;
  if (document.layers) window.captureEvents(Event.MOUSEDOWN);
  window.onmousedown=right;
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#0F5475" link="#0F5475" vlink="#0F5475" alink="#0F5475">
<br />
//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'http://www.nunne-design.de/forum/'includes/page_tail.'.$phpEx);
?>
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

Code: Alles auswählen

$phpbb_root_path = 'http://www.nunne-design.de/forum/template/subSilver/overal_header.tpl';
das muss so aussehen:

Code: Alles auswählen

$phpbb_root_path = 'http://www.nunne-design.de/forum/';
Benutzeravatar
bobnunne
Mitglied
Beiträge: 114
Registriert: 23.09.2005 12:36
Wohnort: Aachen
Kontaktdaten:

Beitrag von bobnunne »

vielen dank schonmal für deine antwort!
leider läuft es immer noch.

ich hab den code jetzt folgendermassen abgeändert:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = 'http://www.nunne-design.de/forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'http://www.nunne-design.de/forum/'); 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{direction}">
<head>
<title>{site_name}</title>
<meta http-equiv="content-type" content="text/html; charset={charset}" />
<link rel="stylesheet" href="{template_url}/style.css" />
<script language="javascript" type="text/javascript">
<!--
  function opendetailwindow() { 
    window.open('','detailwindow','toolbar=no,scrollbars=yes,resizable=no,width=680,height=480');
  }
  
  function right(e) {
    if (navigator.appName == 'Netscape' && (e.which == 2 || e.which == 3)) {
      alert("© Copyright by {site_name}");
      return false;
    }
    else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button==2 || event.button == 3)) {
      alert("© Copyright by {site_name}");
      return false;
    }
    return true;
  }
  document.onmousedown=right;
  if (document.layers) window.captureEvents(Event.MOUSEDOWN);
  window.onmousedown=right;
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#0F5475" link="#0F5475" vlink="#0F5475" alink="#0F5475">
<br />
//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'http://www.nunne-design.de/forum/.'.$phpEx);
?>
folgender fehler wird ausgegeben:

Parse error: parse error, unexpected '<' in /www/htdocs/w0058a8d/forum/4images/includes/template.php(101) : eval()'d code on line 18

ausserdem wird das ganze design ziemlich zerstückelt ausgegeben, hier zu sehen: http://www.nunne-design.de/4images/index.php

hier der quelltext der 4images template.php

Code: Alles auswählen

<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: template.php                                         *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.1                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die("Security violation");
}

class Template {

  var $no_error = 0;
  var $val_cache = array();
  var $missing_val_cache = array();
  var $template_cache = array();
  var $template_path;
  var $template_extension = "html";
  var $start = "{";
  var $end = "}";

  function Template($template_path = "") {
    if (!@is_dir($template_path)) {
      $this->error("Couldn't open Template-Pack ".$template_path, 1);
    }
    $this->template_path = $template_path;
  }

  function register_vars($var_name, $value = "") {
    if (!is_array($var_name)) {
      $this->val_cache[$var_name] = $value;
    }
    else {
      $this->val_cache = array_merge($this->val_cache, $var_name);
    }
  }

  function un_register_vars($var_list) {
    $vars = explode(",", $var_list);
    foreach ($vars as $val) {
      unset($this->val_cache[trim($val)]);
    }
  }

  function cache_templates($template_list) {
    $template_list = explode(",", $template_list);
    foreach ($template_list as $val) {
      $val = trim($val);
      if (!isset($this->template_cache[$val])) {
        $this->get_template($val);
      }
    }
  }

  function get_template($template) {
    if (!isset($this->template_cache[$template])) {
      $path = $this->template_path."/".$template.".".$this->template_extension;
      $line = @implode("", @file($path));
      if (empty($line)) {
        $this->error("Couldn't open Template ".$path, 1);
      }

      if (defined('EXEC_PHP_CODE') && EXEC_PHP_CODE == 0) {
        $line = preg_replace("/<[\?|%]+(php|=)?(.*)[\?|%]+>/siU", "", $line);
        $line = preg_replace("/<script\s+language\s?=\s?[\"|']?php[\"|']?>(.*)<\/script>/siU", "", $line);
      }

      $line = $this->compile_template($line);

      $this->template_cache[$template] = $line;
    }
    return $this->template_cache[$template];
  }

  function parse_template($template) {
    $template = $this->get_template($template);

    // Don't show error notices
    $old = error_reporting(E_ALL ^ E_NOTICE);

    extract($this->val_cache);
    ob_start();
    //echo $template;
    eval("?>".$template."<?php return 1;");

    $str = ob_get_contents();
    ob_end_clean();

    // Reset error_reporting
    error_reporting($old);

    return $str;
  }

  function compile_template($template)
  {
    // Compile variables in PHP code
    preg_match_all(
        "/<[\?|%]+(php|=)?(.*)[\?|%]+>/siU",
        $template,
        $regs,
        PREG_SET_ORDER
    );

    for ($i = 0; isset($regs[$i]); $i++) {
      // Fix single quotes
      $parsed = preg_replace_callback(
        "/=\s*'(.*)".preg_quote($this->start)."([A-Z0-9_]+)".preg_quote($this->end)."(.*)';/Usi",
        array(&$this, '_fix_php_quotes'),
        $regs[$i][0]
      );

      $parsed = preg_replace_callback(
        '='.preg_quote($this->start).'([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
        array(&$this, '_compile_php_var'),
        $parsed
      );

      $template = str_replace($regs[$i][0], $parsed, $template);
    }

    // Compile variables
    $template = preg_replace_callback(
        '='.preg_quote($this->start).'([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
        array(&$this, '_compile_var'),
        $template
    );

    // Compile condition tags
    $template = preg_replace_callback(
        '='.preg_quote($this->start).'if\s+([A-Z0-9_]+)'.preg_quote($this->end).'(.*)'.preg_quote($this->start).'endif\s+(\\1+)'.preg_quote($this->end).'=Usi',
        array(&$this, '_compile_condition'),
        $template
    );

    return $template;
  }

  function _compile_php_var(&$matches) {
    return '{$' . trim($matches[1]) . '}';
  }

  function _fix_php_quotes(&$matches) {
    return '= "' . str_replace('"', '\\"', $matches[1])
           . $this->start.$matches[2].$this->end
           . str_replace('"', '\\"', $matches[3]) . '";';
  }

  function _compile_var(&$matches) {
    return '<?php echo $' . trim($matches[1]) . '; ?>';
  }

  function _compile_condition(&$matches) {
    return '<?php if (!empty($' . trim($matches[1]) . ') && $' . trim($matches[1]) . ' != REPLACE_EMPTY): ?>' . $matches[2] . '<?php endif; ?>';
  }

  function parse_array($array) {
    static $keys;

    foreach ($array as $key => $val) {
      if (is_array($val)) {
        $array[$key] = $this->parse_array($val);
      }
      else {
        if (!isset($keys) || count($keys) != count($this->val_cache)) {
          $keys = array_keys($this->val_cache);
          array_walk($keys, array(&$this, '_prepare_key'));
        }

        $array[$key] = str_replace($keys, $this->val_cache, $val);
      }
    }
    return $array;
  }

  function _prepare_key(&$item)
  {
    $item = $this->start.$item.$this->end;
  }

  function print_template($template) {
    print $this->clean_template($template);
  }

  function clean_template($template) {
    $template = preg_replace(
      "/".preg_quote($this->start)."[^".preg_quote($this->end)."\s]+".preg_quote($this->end)."/",
      '',
      $template
    );
    return $template;
  }

  function error($errmsg, $halt = 0) {
    if (!$this->no_error) {
      echo "<br /><font color='#FF0000'><b>Template Error</b></font>: ".$errmsg."<br />";
      if ($halt) {
        exit;
      }
    }
  }
} // end of class
?>
ich weiss nicht so genau wie ich das was verändern soll, der fehler will einfach nicht verschwinden. vieliecht würde sich wer erbarmen und mir bei der fehler behebung helfen? mein ewiger dank wäre sicher!
webazubi
Mitglied
Beiträge: 96
Registriert: 30.07.2005 01:13

Beitrag von webazubi »

Bei meinen Versuchen und Anfragen zu dem Thema "Seite ums Forum herumbauen" bin ich jetzt zu folgender unschönen "Lösung" gekommen:

Das Forum liegt im Stammverzeichnis meiner Webseite. Also mit www.xyz.de/index.php kommst Du direkt auf die Forumsstartseite. Alle anderen, nicht-Forumsseiten, werden so eingebunden: Ich habe beispielsweise einen Ordner "Archiv", in dem alte Texte mit einer eigenen HTM bzw. PHP-Index-Seite liegen. Nun lege ich im Stammverzeichnis eine Datei achiv.php (mit der hier bekannten und herunterladbaren php-Generalvorlage) an, die nach Aufruf aus der Forums-Startseite die index.php aus dem Archivordner includiert.
Alle Unterordner haben also ihre Startseite im root!

Nicht schön, aber scheint zu klappen, selbst wenn Du noch Links in die Unterordner-indes.php reinschreibst und noch tiefer in der Ordnerstruktur verweisen willst.
thompson
Mitglied
Beiträge: 797
Registriert: 14.11.2002 14:04
Wohnort: irgendwo im süden
Kontaktdaten:

Beitrag von thompson »

du solltest die php tags ordentlich setzen.

vor dem html... gehört ein

Code: Alles auswählen

 
?php>
und vor dem footerteil ein öffnender tag:

Code: Alles auswählen

 <?php 
dann sollte erstmal der php-technische teil korrekt funktionieren.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag von fanrpg »

thompson hat geschrieben:du solltest die php tags ordentlich setzen.

vor dem html... gehört ein

Code: Alles auswählen

 
?php>
und vor dem footerteil ein öffnender tag:

Code: Alles auswählen

 <?php 
dann sollte erstmal der php-technische teil korrekt funktionieren.
Das würde in parse error's enden :roll:

vor html nach html wenn wieder PHP beginnt oder

Code: Alles auswählen

<?php
Benutzeravatar
bobnunne
Mitglied
Beiträge: 114
Registriert: 23.09.2005 12:36
Wohnort: Aachen
Kontaktdaten:

Beitrag von bobnunne »

danke :oops: werde ich jetzt mal umsetzen :roll:
Benutzeravatar
bobnunne
Mitglied
Beiträge: 114
Registriert: 23.09.2005 12:36
Wohnort: Aachen
Kontaktdaten:

Beitrag von bobnunne »

em, ich hoffe ich hab jetzt alles richtig gesetzt, jedenfalls bekomm ich jetzt ne ganz neue fehler meldung. ich hoffe, ich stell mich nicht all zu blöd an :oops:

also der code, mit den phptags:

Code: Alles auswählen

<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = 'http://www.nunne-design.de/forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'http://www.nunne-design.de/forum/'); 

?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{direction}">
<head>
<title>{site_name}</title>
<meta http-equiv="content-type" content="text/html; charset={charset}" />
<link rel="stylesheet" href="{template_url}/style.css" />
<script language="javascript" type="text/javascript">
<!--
  function opendetailwindow() { 
    window.open('','detailwindow','toolbar=no,scrollbars=yes,resizable=no,width=680,height=480');
  }
  
  function right(e) {
    if (navigator.appName == 'Netscape' && (e.which == 2 || e.which == 3)) {
      alert("© Copyright by {site_name}");
      return false;
    }
    else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button==2 || event.button == 3)) {
      alert("© Copyright by {site_name}");
      return false;
    }
    return true;
  }
  document.onmousedown=right;
  if (document.layers) window.captureEvents(Event.MOUSEDOWN);
  window.onmousedown=right;
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#0F5475" link="#0F5475" vlink="#0F5475" alink="#0F5475">
<br /><?
//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'http://www.nunne-design.de/forum/.'.$phpEx);
?>
die neue fehlermeldung:

Code: Alles auswählen

Hacking attempt
Fatal error: Call to undefined function: session_pagestart() in /www/htdocs/w0058a8d/forum/4images/includes/template.php(101) : eval()'d code on line 10
Antworten

Zurück zu „phpBB 2.0: Styles, Templates und Grafiken“