Drupal Offline téma - web prístupný len pre prihlásených
Ak ladíte stránku na ostrej doméne a zatiaľ nechcete aby bola verejná, možno oceníte túto malú vychytávku.
Prepnúť stránku do offline režimu a zablokovať tak prístup všetkým okrem používateľa s ID=1 môže niekedy stačiť. Čo ak ale chcete stránku prezentovať klientovi, tak aby si mohol povedzme upravovať obsah - a pritom mu nechcete dať plný prístup (čo predpokladám nechcete).
1. Vytvorte si “Offline” tému
Tá okrem offline.info súboru:
core = “6.x”
description = “Site is offline theme.”
engine = “phptemplate”
name = “Offline”
bude obsahovať len page.tpl.php súbor, napr. v takomto znení:
<html>
<head>
<title>Stranka sa pripravuje</title>
</head>
<body>
<div class=”document”>
<div class=”text center”>
Stranka sa pripravuje
</div>
</div>
</body>
</html>
a page-user.tpl.php súbor, napr.:
<html>
<head>
<?php print $head ?>
<title><?php print $head_title ?></title>
<?php print $styles ?>
<?php print $scripts ?>
</head>
<body>
<?php if ($show_messages && $messages): print $messages; endif; ?>
<?php print $help; ?>
<?php print $content ?>
</body>
</html>
2. Zapnite modul “Role theme switcher”
http://drupal.org/project/role_theme_switcher
V jeho nastaveniach admin/user/themes zvoľte tému “Offline” pre Anonymných a svoju ostrú tému pre Prihlásených používateľov.
Takto bude každý náhodný návštevník odbavený hláškou, a pritom vy alebo váš klient, sa stále môžte prihlásiť cez stránku “/user” a vidieť plný web.
Samozrejme dá sa to vyriešiť aj inak (cez subdoménu, .httpswd), no sú situácie kedy je to problém.

Komentáre
No použití modulu role_theme_switcher mi přijde trochu jako kanón na vrabce. Ten use case, co je tu popsán, by imho zvládnul samotný Drupal.
Stačí přepnout Site status na offline (admin/settings/site-maintenance). Stránku s oznámením, že web je v údržbě, je možné ostylovat šablonou maintenance-page.tpl, pokud nestačí výchozí (garlandí v D6).
Pokud nemá uživatel nějaká vyšší práva (myslím stačí mít jen práva na vytváření obsahu), na živé stránky se nedostane.
Jinak pokud chceme stránku fakt schovat, doporučuju modul Secure Site (http://drupal.org/project/securesite). Tím je možné dát login přímo na úrovni HTTP protokolu a stránku tak zcela schovat pro nepřihlášené uživatele.
Další level je v .htaccess povolit jen konkrétní IP adresy...
Nicméně dík za tip na modul role_theme_switcher, můžou se tím ošetřit nějaké speciální případy, ale jinak myslím na 95% situací postačí Offline mód a Maintenance page jádra Drupalu...
Zdravim do Blavy ;-)
Vojta
26 marec 2008
3 dni 3 hod
V offline mode musi mat user povolene "Administer site configuration" a to nechcem. .htaccess pre konkretny web je v nasom multisite prostredi problem, navyse IP je dost relativna.
Secursite nepoznam, vyzera dobre )
Kazdopadne, cele toto carovanie riesi nova permission v Drupal 7 "Use the site in maintenance mode" http://drupal.org/node/201415
Diky
www.sven.sk / www.twitter.com/borgo
6 jún 2008
1 týždeň 1 deň
Tiez odporucam securesite, skvela vec aj preto, ze umozni pristup pre anonyma - tak si klient moze pozriet web ako bude vyzerat pre navstevnikov.