Seite 1 von 2

Wie CSS in andere Scripts einbinden?

Verfasst: 07.11.2002 11:18
von AxelN
Moin,

ich würde gerne die Styles - Einstellungen die der User im Forum gewählt hat, auch für andere, weitere PHP-Seiten verwenden.

Wie kann ich in den Header der "normalen" Seiten den Style (CSS-Link)vom Forum einfügen?

Thx.

Gruß
Axel

PS. Suche hat keine hilfreiche Antwort ergeben - oder ich habe
falsch gesucht.

Verfasst: 10.11.2002 12:06
von AxelN
Ist immer noch aktuell. Habe noch keine Lösung gefunden. :-?

Verfasst: 10.11.2002 12:17
von Mister_X
am einfachsten wäre wohl du stellst dein Forum wie du es haben willst ein rufst irgendeine Seite auf z.B. index.php, guckst dir den Quelltext an, kopierst alles zwischen

Code: Alles auswählen

<style type="text/css">
<!--
und

Code: Alles auswählen

-->
</style>
in eine Datei z.B. dumdum.css :) und includierst sie dann im Header der von dir gewünschten Dateien mit folgender Zeile:

Code: Alles auswählen

<link rel="stylesheet" href="templates/subSilver/subSilver.css" type="text/css" />
Natürlich die Pfad noch anpassen.

Noch einfacher wäre es, du stellst dein komplettes Forum auf die CSS Datei um, dann musst du nur noch eine CSS Datei editieren um das Forum und dann damit auch deine Seite anzupassen. Einziges Problem: Die Farbeinstellungen im Adminbereich werden dann wirkunglos! Wie das geht steht hier: http://www.phpbb.de/viewtopic.php?t=15984&highlight=css

Verfasst: 10.11.2002 12:20
von PhilippK
Man sollte natürlich nicht vergessen zu erwähnen, dass du die User-Authentifizierung auf all deinen Seiten mitschleppen musst...

Gruß, Philipp

Verfasst: 10.11.2002 13:44
von AxelN
Das mit der CSS ist kein Problem. ich habe da eh alles in die CSS zusammengewürfelt.

Ich habe nur das Problem, sagen wir mal, ich habe ein rotes, blaues und schwarzes design.

Damit müsste ja auch in meiner Header für die anderen PHP-Seiten die CSS sich ändern, wenn der User sich ein anderes Design aussucht. Also muss der CSS-Eintrag ja dynamisch sein.

Vermutlich wird die Usereinstellung zum Design ja in einem Cookie beim User gespeichert ?

Gib es da keine Möglichkeit, dass ich dies irgendwie auslese und dann das Design aus der vom User gewählten Style auch auf anderen Pages verwenden kann?

Etwas kompliziert - ich weiß. Ich hoffe es ist aber doch verständlich um was es geht.

Das ist so im Forenscript:

Code: Alles auswählen

<link rel="stylesheet" href="templates/subSilver/{T_HEAD_STYLESHEET}" type="text/css" />
Ich müsste es also irgendwie schaffen, auch auf den anderen Pages {T_HEAD_STYLESHEET} verwenden zu können.

Kann ich die Usereinstllung {T_HEAD_STYLESHEET} nicht im Script irgendwo in eine Variable schreiben und die dann an die anderen Seiten übergeben?

Keine Ahnung - irgendwie mit:
Im Forenscript:

Code: Alles auswählen

$sytle= "{T_HEAD_STYLESHEET}";
und dann in meine PHP-Seiten:

Code: Alles auswählen

<link rel="stylesheet" href="pfad/$style" type="text/css" />
Wenn es noch nicht klar ist, einfach fragen. Ich wäre froh, wenn es eine Lösung gäbe.

Danke.
Axel

Verfasst: 11.11.2002 18:39
von AxelN
Ihr wisst was ich meine?

Ansonsten versuche ch es mal irgendwie anders zu erklären.

Verfasst: 11.11.2002 19:00
von Mister_X
Hilft dir der Code von Acid?:

Code: Alles auswählen

<?php
define('IN_PHPBB', true);

$phpbb_root_path = './'; // <--
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

//include($phpbb_root_path . 'includes/page_header.'.$phpEx);
?>

hier könntest Du HTML einfügen<br />

Hier die CSS Datei des Templates des Users:
<?php echo $theme['head_stylesheet'] ?>

<?
//include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>

Verfasst: 11.11.2002 19:17
von AxelN
Also ich habe da von PHP kaum ne Ahnung. Vielleicht ist es das was ich brauche. Dann weiß ich jedoch nicht wie ich das umsetze.

Vielleicht kannst Du mir da mal mit konkreten Angaben weiterhelfen?

Domain: www.domain.tld
Forum: www.domain.tld/forum/script
Header der normalen PHP-Seiten: www.domain.tld/page/basis/header.php

In die header.php müsste ich nun die css - Einstellung des Users reinbekommen.
Also in der Art:

Code: Alles auswählen

<link rel="stylesheet" href="pfad/userstyle.css" type="text/css" />
Wie sollte nun der Code für meine header.php aussehen, damit immer das sytle vom User genommen wird?

Danke schon mal.

Verfasst: 11.11.2002 20:21
von Mister_X
Kopiere das einfach mal dahin wo die Zeile <link rel=... usw angezeigt werden soll.

Code: Alles auswählen

<?php
define('IN_PHPBB', true);

$phpbb_root_path = '../../forum/script';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

if ($userdata[user_style] != '')
{$style_id = $userdata[user_style];}
else
{$style_id = "1";}

$sql = "SELECT themes_id, style_name
		FROM " . THEMES_TABLE . "
		WHERE themes_id = $style_id";
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql);
	}

	while ( $row = $db->sql_fetchrow($result) )
	{
	$styleordner = $row['style_name'];
	}

$stylecss = $theme['head_stylesheet'];

echo "<link rel=\"stylesheet\" href=\"forum/script/templates/$styleordner/$stylecss\" type=\"text/css\" />";

?>
wie ich mich kenne ist sicher irgendwo nen Denkfehler drin, also das ganze ist NOCH NICHT ausgetestet, setze das ganze NOCH NICHT auf deiner richtigen Homepage ein.

Verfasst: 12.11.2002 12:19
von AxelN
So, ich habe das nun mal eingefügt

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 

$phpbb_root_path = '../../forum/script/'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 

if ($userdata[user_style] != '') 
{$style_id = $userdata[user_style];} 
else 
{$style_id = "1";} 

$sql = "SELECT themes_id, style_name 
      FROM " . THEMES_TABLE . " 
      WHERE themes_id = $style_id"; 
   if ( !($result = $db->sql_query($sql)) ) 
   { 
      message_die(GENERAL_ERROR, "Couldn't query themes table", "", __LINE__, __FILE__, $sql); 
   } 

   while ( $row = $db->sql_fetchrow($result) ) 
   { 
   $styleordner = $row['style_name']; 
   } 

$stylecss = $theme['head_stylesheet']; 

echo "<link rel=\"stylesheet\" href=\"forum/script/templates/$styleordner/$stylecss\" type=\"text/css\" />"; 

?>
Beim Seitenaufruf kommen die Fehlermeldungen:

Code: Alles auswählen

Warning: Failed opening '../../forum/script/extension.inc' for inclusion (include_path='.:/usr/local/lib/php') in /home/vhosts/.../page/basis/header.inc.php on line 34

Warning: Failed opening '../../forum/script/common.' for inclusion (include_path='.:/usr/local/lib/php') in /home/vhosts/.../page/basis/header.inc.php on line 35

Fatal error: Call to undefined function: session_pagestart() in /home/vhosts/.../page/basis/header.inc.php on line 37
Ich hoffe du gibst jetzt nicht auf. :wink: