|
how to transform a classic postNuke into a multi sites one. There is almost nothing
in the folder NS-Multisites, it is normal, almost everything is already in the
core of postNuke, and some manipulations has to be done by someone qualified (not
too much).
Our example is going to talk about
several domain names, and one server. These are going to be:
www.domain1.com, www.domain1.net,
www.domain1.org, essai.domain1.net
www.domain2.com, www.domain2.net, www.domain2.org, othersubdomain.domain2.net
We would like to have all the domain1
having the same content, all the domain2 but "othersubdomain.domain2.net"
with the same content, and "othersubdomain.domain2.net" with a different
content.
Create a folder in the main folder.
Name it "parameters"
create, in the folder parameters
a source: whoisit.inc.php
Sources of parameters/whoisit.inc.php:
<?
/* things could be changed here, SERVER_NAME may be useless in certain
configurations. For instance, instead of using SERVER_NAME, you may have to
use HTTP_HOST. Also, with subdomains, you may want to suppress the first level
of the domain name, and, to continue with my example of "linux.mouzaia", you
may rather use "mouzaia". */
global $SERVER_NAME;
$serverName = $SERVER_NAME;
$serverName = str_replace("www","",$serverName);
$serverName = str_replace("essai","",$serverName);
$serverName = str_replace(".org","",$serverName);
$serverName = str_replace(".net","",$serverName);
$serverName = str_replace(".com","",$serverName); ?>
You may find a "whoisit.inc.php" in the folder NS-Multisites/installation. Copy it in the folder "parameters".
In that folder, create a folder
with the name domain1, an other one with the name domain2, and a third
one with the name "othersubdomain.domain2".
In these folders, copy the original
config.php, and modify each of them as you want, especially $dbname, or $prefix.
Create a folder in each of these
folders, name it "images"
If you use a multi sites configuration,
it is normal the logos are in these personal folder. The logo is a minimum.
In that folder, put the image you want to use as a logo for that site. IT
IS MANDATORY.
I did modified the scrip print.php
to go and get it there. The themes has to be modified accordingly, ie I did
correct the theme "extralite", and that is all.
The modification is:
img src=\"".WHERE_IS_PERSO."images/logo.gif\"
alt=\""._WELCOMETO." $sit
I dont really understand why this
"logo.gif" appears here, it should obviously be "$site_logo"
...
Replace original config.php in the
root with:
<?
include("parameters/whoisit.inc.php");
if (!(empty($serverName)))
{ include("parameters/".$serverName."/config.php"); }
/* this next defined
is coming before the one I put in mainfile2.php. So there are 2 possibilities,
to destroy the one I put in mainfile2.php, or to let it, as it is coming after
the one below, it wont affect WHERE_IS_PERSO. */
define("WHERE_IS_PERSO","parameters/".$serverName."/");
?>
You may find a config.php in "NS-Multisites/installation".
Copy it in your root of postNuke, but please, dont forget to copy the original
config.php as explained above, before you copy that one !
With this, your site is multi site.
Now, you may want give the possibility to your sub sites to have personnal (exclusive)
themes.
Explication: your site is "multi
site". You can modifiy anything in each config.php, it will affect only
the corresponding site. But: the themes are still the themes available in
your top themes folder. The images topics are still the one in your top images/topics
... We are going to personalyze these also.
In the folders "domain1",
"domain2", "othersubdomain.domain2":
Create a folder themes in
each of them.
In that folder, you have to create
an empty "index.html", for security reasons. Then you may copy a
complete theme, like the one you may find in the principal themes folder (with
its sub folders, css ...). The themes you put there HAS TO HAVE A DIFFERENT
NAME. For Instance, I did my tests with a copy of PostNuke theme, renaming
it in PostNuke2. That is all, since now on, you should see that PostNuke2
theme in your change folder list, beside the themes present in the main folder.
That is all for the personal themes.
A personal pntables.php ?
Easy ! just copy pntables.php into
your "parametes/linux.mouzaia" folder. Then you can modify it. If
the system does not find a pntables.php in that folder, it uses the master
one.
Personal Images.
Since config.php is not used so much in .71, but a table in the database, I
presume it is possible to modify the content of ex-tipath directly in the database:
SELECT nuke_module_vars.pn_value FROM nuke_module_vars WHERE nuke_module_vars.pn_modname='/PNConfig'
AND nuke_module_vars.pn_name='tipath'
Since tables belongs to a domain, you can modify pn_value, changing the path
to the images there.
It does not work !
A problem could be with the way your
server is configured. In particular, in whoisit.inc.php, I use SERVER_NAME.
It is maybe not the good system variable to use. You can check this with a phpinfo().
And change what you need in whoisit.inc.php.
Also, in whatisit.inc.php, I just
treat .com, .net, .org, but of course, you may have to treat .fr or .co.uk,
or dont treat them at all, then use a folder named linux.mouzaia.org for instance,
or whatever you want ....
|