закрыть

шаблоны для MaxSite CMS от RuTheme

Страница-заглушка для MaxSite CMS

Страница-заглушка для MaxSite CMS

Заглушка сайта в шаблонах MaxSite CMS для всех посетителей, кроме авторизованного Администратора.

Зачем нужна заглушка для сайта?

Представим, что у Вас уже есть домен и даже сверстан или куплен шаблон под управлением MaxSite CMS, а если Вы еще и понимаете немного в том, как работает MaxSite CMS, то вообще отлично.

И вот Вы установили движок, закинули шаблон, Ваш сайт стал доступен всем, НО показать посетителям пока особо нечего, да к тому же из-за каких-либо особенностей шаблона все как-то криво отображается и надо бы его настроить. Такая настройка и наполнение сайта у значительного числа людей, особенно у начинающих, может занять от пары дней до хз сколько недель. Для такого случая Вам и пригодится временная заглушка для сайта, чтобы не пугать посетителей. Причем заглушка будет показана всем, кроме авторизованного Администратора. Сам Админ будет видеть свой сайт целиком, без каких-либо ограничений.


А теперь по делу.

Расскажу о том, как сделать простенькую страницу заглушки в шаблонах для MaxSite CMS, которая будет включаться и отключаться непосредственно в админ-панели в настройках шаблона.


Шаг 1

Логично предположить, что первым делом надо создать опцию.

Идем в свой шаблон и в папке options создаем новый файл coming_soon.ini со следующим содержимым:

[Включить заглушку]
options_type = templates
options_key = dostup_k_site
type = checkbox
description = "Если Вкл., то вместо сайта будет показана Заглушка, а сам сайт будет доступен к просмотру только для авторизованного Администратора."
default = "0"
section = "ДОСТУП К САЙТУ"

Что мы сделали? Мы сделали новую вкладку в настройках шаблона под названием "ДОСТУП К САЙТУ", а в ней чекбокс "Включить заглушку", который будем отмечать, когда понадобится скрыть сайт от чужих глаз.

Опция включения страницы-заглушки в настройках MaxSite CMS

Ваш чекбокс скорее всего будет выглядеть так


Шаг 2

Перейдем к созданию самой заглушки.

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

Закидываем наше изображение в папку шаблона шаблон/images/placehold/coming_soon.png

И создаем папку "coming_soon" по пути шаблон/type/coming_soon/

В этой папке создадим одноименный файл coming_soon.php с произвольным содержанием, повествующем о закрытом сайте, или с таким кодом как у меня

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
/**
 * RuTheme
 * (c) http://rutheme.ru/
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
echo '
<style>
body {
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	position: fixed;
	background: #EAEAEA;
}
.block_cenrer {
	background: url("' . getinfo('template_url') . 'images/placehold/coming_soon.png") 50% center no-repeat;
	background-size: 100%;
	height: 100%;
	max-height: 550px;
	width: 100%;
	max-width: 1100px;
	margin: 20 auto;
	display: block;
	text-align: center;
	vertical-align: middle;
}
.block_text {
	width: 330px;
	margin: 0 auto;
	border-radius: 5px;
	background: rgba(255,255,255,0.5);
	padding: 10px;
	color: #666;
	display: block;
	top: 43%;
	position: relative;
}
</style>
';
echo '
<body>
<div class="block_cenrer">
	<div class="block_text">
		<span>Сайт временно закрыт.</span>
		<span>Приносим свои извинения!</span>
	</div>
</div>
</body>
';
# end file

Шаг 3

Теперь нужно объяснить шаблону, когда выводить нашу заглушку.

В каждом шаблоне для MaxSite CMS есть файл index.php и скорее всего со следующим содержанием:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 *
 * Диспетчер подключаемых type-файлов
 * 
 */
  
# глобальное кэширование выполняется на уровне хука при наличии соответствующего плагина
# если хук вернул true, значит данные выведены из кэша, то есть выходим
if (mso_hook('global_cache_start', false)) return;
  
# $MSO->language = 'en'; // можно изменить язык шаблона
  
# подключаем нужные библиотеки
require_once(getinfo('common_dir') . 'page.php'); // функции страниц 
require_once(getinfo('common_dir') . 'category.php'); // функции рубрик
  
# подключаем нужный type-файл
  
if ($fn = mso_dispatcher()) require($fn);
  
# хук глобального кэша
mso_hook('global_cache_end');
  
# end file

Вместо строки if ($fn = mso_dispatcher()) require($fn); прописываем следующее

# подключаем нужный type-файл
$dostup_k_site = mso_get_option('dostup_k_site', 'templates', '0');
if (($dostup_k_site == '1') and !is_login()) {
	require('type/coming_soon/coming_soon.php');
} elseif ((($dostup_k_site == '1') and is_login()) or ($dostup_k_site == '0')) {
if ($fn = mso_dispatcher()) require($fn);
}

Итак, мы смотрим значение нашей опции, если заглушка включена, то значение будет равно "1", если нет - "0".

Выше приведенный код можно перевести так: если значение опции равно "1" и это не админ, то отдаем посетителю нашу заглушку, но если значение опции "1" и это админ или заглушка отключена, т.е. значение опции "0", то выдаем весь сайт.


Вот что увидит посетитель, если Вы сделаете заглушку по моему примеру.

Заглушка сайта на MaxSite CMS


Файлы в архиве повторяют структуру стандартного шаблона для MaxSite CMS, поэтому, если Ваш index.php не отличается от того, что в примере, то просто закиньте содержимое архива в свой шаблон и все должно заработать.


При размещении данных материалов ссылка на данную статью обязательна.
Комментариев: 7 RSS
30 Июля 2013 в 07:20:29
1

Надеюсь такой функционал станет доступен в стандартной поставке движка. Заглушка - очень нужная штука.

А что за тема оформления админки видна на скриншоте? Вроде на стандартную похожа, но что-то не так smile

30 Июля 2013 в 20:03:17
2
Надеюсь такой функционал станет доступен в стандартной поставке движка.

Да, я присоединяюсь. А пока можно скачать наш архив с заглушкой или за небольшое вознаграждение заказать разработку собственной странички с подпиской, соц.иконками и редактированием текста из админ.панели. smile

А что за тема оформления админки

Так выглядит только страница настроек шаблона, который сейчас в разработке. Тема default, но независимо от темы страница настроек всегда у данного шаблона будет такой. Просто решили немного приукрасить и добавить динамики.

05 Августа 2013 в 22:45:39
3

Тестировал на локальном хостинге и у меня надпись съезжает в низ, а картинка видна только на половину Вот скрин >>> http://s019.radikal.ru/i608/1308/0f/2130a83e1754.png

06 Августа 2013 в 01:36:51
4

Александр, спасибо за замечание! Вы видимо тестили заглушку в опере.

Лень берет свое, даже не подумал такую простую вещь на кроссбраузерность проверять.

Поправил coming_soon.php.

Этот файл может содержать что угодно и думаю у каждого в нем должно быть что-то свое.grin

06 Августа 2013 в 17:10:14
5

Тестировал я на Firefox.

Этот файл может содержать что угодно и думаю у каждого в нем должно быть что-то свое.

Я ещё с php не в ладах!!!

19 Марта 2015 в 14:04:40
Геннадий
6

Здравствуйте! А что делать, еси в файле index.php подключение type-файлов происходит автоматически и последней строчке , как в шаге 3, у меня нет? Я ее самостоятельно добавил, но вместо заглушка с картинкой и текстом, сайт просто "застывает" и показывает только верхнюю часть и не прокручивается вниз

19 Марта 2015 в 19:18:27
7

Здравствуйте. Честно сказать не знаю ответа. Сейчас мало занимаюсь макссайтом. У вас какая версия движка? и что за шаблон используете? Если в index.php этой строчки нет, то все равно что-то другое должно быть. Какие-то файлы или функция вместо этой строчки должны быть прописаны, потому как index.php вроде бы дожен быть основным файлом с которого начинается отработка шаблона.

Поделиться мнением!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Вы можете войти под своим логином или зарегистрироваться на сайте.

Авторизация MaxSiteAuth. Loginza

(обязательно)