Neminem id agere, ut ex alterius...

Neminem id agere, ut ex alterius praedetur inscitia. — Никто не должен извлекать выгоду из неразумия другого.

Мишель Монтень

«Опыты»

Рейтинг@Mail.ru Rambler's Top100 Каталог webplus.info Яндекс.Метрика

Сейчас на сайте 0 пользователей.

«Они считали чувство вины ошибкой, а угрызения совести — слабостью. Они всегда были практичны и никогда — сентиментальны. Но дружба их не имела границ.»

темизация сообщений об офлайне и недоступности базы данных (4.7, 5.0) | [Харзах]-[РУ]

Аватар пользователя B.X

В template.php в вашей теме (если нет, то создаём), добавляем:



<?php
function phptemplate_maintenance_page($content) {
  return 
_phptemplate_callback('maintenance_page', array('content' => $content));
}</
p>

<
p>function _phptemplate_variables($hook$vars) {
  switch(
$hook) {
    case 
'maintenance_page' :
      
$vars['site_name'] = variable_get('site_name''') ;
    break;
  }
  return 
$vars;
}
?>

В созданный файл maintenance_page.tpl.php добавляем (замените заголовки):

<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>::: Harzah.Net | Сайт на обслуживании</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="Shortcut Icon" type="image/x-icon" href="http://harzah.ru/favicon.ico" />
  <meta name="generator" content="Drupal" />
  <base href="http://harzah.ru/<?php global $base_url; print $base_url;?>" />
  <style type="text/css" media="all">@import "themes/slash/maintenance.css";</style>
  <!--[if IE 6]>
  <script type="text/javascript" src="http://harzah.ru/themes/slash/mata_pngfix.js"></script>
  <![endif]-->
</head>
<body>

<div id="message-box">
	<?php if ($site_name != ""): ?>
    <h2><?php print $site_name ?><br />503 - Сервис Недоступен</h2>
    <?php else: ?>
    <h2>503 - Сервис Недоступен<br />Приносим Извинения за Неудобство</h2>
  <?php endif; ?>
	<div id="message"><?php print $content ?></div>
</div>

<div>
  <img src="http://harzah.ru/themes/slash/maintenance-drupalicon.png" width="359" height="460" alt="Drupal Logo" id="drupal-logo" />
</div>

</body>
</html>

Для того, чтобы изменить ещё и сообщение о недоступности к базе данных, нужно изменить код includes/database.mysql.inc на строке 105:



<?php
drupal_set_header
('HTTP/1.1 503 Service Unavailable');
    
drupal_set_title('Unable to connect to database server');
    print 
theme('maintenance_page''<p>If you still have to install Drupal, proceed to the <a href="http://harzah.ru/'base_path() .'install.php">installation page</a>.</p>
<p>If you have already finished installed Drupal, this either means that the username and password information in your <code>settings.php</code> file is incorrect or that we can'
t connect to the MySQL database serverThis could mean your hosting provider's database server is down.</p>
<p>The MySQL error was: '
theme('placeholder'mysql_error()) .'.</p>
<p>Currently, the username is '
theme('placeholder'$url['user']) .' and the database server is 'theme('placeholder'$url['host']) .'.</p>
<ul>
  <li>Are you sure you have the correct username and password?</li>
  <li>Are you sure that you have typed the correct hostname?</li>
  <li>Are you sure that the database server is running?</li>
</ul>
<p>For more help, see the <a href="http://drupal.org/node/258">Installation and upgrading handbook</a>. If you are unsure what these terms mean you should probably contact your hosting provider.</p>'
);
    exit;
?>

На этот код (убраны данные, которые могут быть использованы злоумышленниками, незачем кому-то знать где у вас находится база данных, под каким пользователем используется... измените также заголовки и пути связанные с сайтом harzah.net, пути должны быть абсолютные, иначе работает не всегда):



<?php
drupal_set_header
('HTTP/1.1 503 Сервис Недоступен');
    
drupal_set_title('::: Harzah.Net | Нет соединения с сервером базы данных');
    print 
theme('maintenance_page''<head><style type="text/css" media="all">@import "http://harzah.net/themes/slash/maintenance.css";</style><link rel="Shortcut Icon" type="image/x-icon" href="http://harzah.net/files/favicon.ico" /></head><div id="message-box"><h2>::: Harzah.Net503 - Сервис Недоступен</h2><div id="message">Нет соединения с базой данных. Подождите, пожалуйста, некоторое время. Мы скоро вернёмся. Спасибо за ваше терпение. </div></div><div><img src="http://harzah.net/themes/slash/maintenance-drupalicon.png" width="359" height="460" alt="Drupal Logo" id="drupal-logo" />
</div>'
);
    exit;
?>

Несколько неправильно, с точки зрения стандартов, но работает и показывается одинаково во всех трёх браузерах. Для версии 4.7 всё также, только номера строк не везде совпадают и имена функций могут быть немного не те (смотрите по аналогии). Ну и последнее, добавьте в папку вашей темы прикреплённые файлы.

Аватар пользователя RISK

Супер! Обязательно попробую на днях.

Аватар пользователя B.X

с этим изменением по ширине надо что-то делать, всё никак руки не дойдут...
модуль кто бы сделал, что ли?

Аватар пользователя Гость

2 дня искал на drupal.ru, а оно вот оно где я его видел ))))

Аватар пользователя B.X

хех, всегда пожалуйста...
сам искал везде где только можно, не нашёл конкретного решения, пришлось делать самому...
а часть нашёл в Метатеме, правда она что-то не развивается...
вариант не независимый от настроек, поэтому на Друпал.Ру не стал добавлять...

Аватар пользователя Гость

в php 5 не работает =(

Fatal error: Cannot redeclare _phptemplate_variables() 

Аватар пользователя B.X

проблема явно не в пхп5, так как у меня всё работало как раз на нём...

комментировать

Plain text

  • Вы можете использовать BBCode-теги в тексте. Адреса будут автоматически показаны как ссылки.
Проверка
Ответ должен быть написан на английском языке. Например: какого цвета небо? Ответ: blue
Введите ответ в это поле.