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

Member since:
26 marec 2008
Last activity:
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

Member since:
6 jún 2008
Last activity:
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.