Jeg tror det ville være smartere om man kørte 'begge' fora (adresser) på ét sæt kode i stedet for at skulle rode med 2 sæt, da de nu skal dele alt på nær udseende.
Dvs. at din webhost/du skal sætte det op med noget som flg. i Apache's opsætning (eller tilsvarende hvis anden webserver)
- Kode: Vælg alt
# Følgende 3 linjer har din server nok i forvejen i en eller anden form, x.x.x.x er serverens IP
<VirtualHost xx.xx.xx.xx:80>
ServerName et-eller-andet.dk:80
ServerAlias www.et-eller-andet.dk
# Denne linje er tilføjelsen
ServerAlias sub.et-eller-andet.dk
- det er muligt at du selv kan administrere dette fra dit admin-kontrolpanel hos din webhost. Dette gør at subdomænet peges på præcis samme kode som den overordnede adresse.
Derefter adskiller man det i selve phpBB's kode. Jeg vil gætte på at det smarteste er at indsætte det i common.php i phpBB, da det er en af de første filer der kaldes hver gang en side i phpBB kaldes.
Du kan få den nødvendige information om hvor adressekaldet kommer fra, fra selve serveren via
$_SERVER(); - der er 2 variabler som enten begge eller i hvert fald den ene af dem, skulle indeholde navnet i kaldet fra brugeren.
Lav en fil som følgende og læg den på din server, og test dig frem:
- Kode: Vælg alt
<?php
echo "<table border=\"1\">";
echo "<tr><td>" .$_SERVER['SERVER_NAME'] ."</td><td>SERVER_NAME</td></tr>";
echo "<tr><td>" .$_SERVER['HTTP_HOST'] ."</td><td>HTTP_HOST</td></tr>";
echo "</table>"
?>
- det er ret forskelligt hvordan en given server er sat op til at behandle disse variabler og én af dem kan risikere altid at indeholde f.eks. VirtualHost-navnet i stedet for hostnavnet fra brugerens kald. Med ovenstående kan du prøve dig frem til hvilken variabel der skal bruges på din server.
Herefter kan du bruge
explode() til at splitte strengen ad, og bruge noget IF eller CASE til at håndtere resultatet, i stil med:
- Kode: Vælg alt
$brugerdomain = $_SERVER['SERVER_NAME']; // brug den variabel der virker (bedst) her!!
$brugersubdomain = explode ('.', $brugerdomain, 1);
if ( $brugersubdomain[0] == "sub" )
(
$brugertema = "sub";
) else (
$brugertema = "ikkesub";
)
- resten af opgaven går så på at fortælle phpBB at den ikke skal vælge tema ud fra brugeren eller boardets indstillinger (det meste foregår vistnok i includes\functions.php), men jeg har ærligt talt ingen ide om præcis hvad der skal stilles hvor. Der må til gengæld være nogle mods der beskæftiger sig med emnet, så der er garanteret mere hjælp at hente på phpBB.com.
Når du har færdiggjort moddet og testet at det virker perfekt, er du meget velkommen til at dele det med andre - også gerne hér på siden.