Code44free's Blog

Сайт для продвижения Android приложений

Posted in android, html by code44free on Ноябрь 19, 2013

Для продвижения Android приложений решил запустить специальный сайт. Встречайте — fasthamster.com

fasthamster.com - Android apps

В «движке» сайта применено несколько решений, которые возможно покажутся интересными. Подробности ниже.

Все записи сайта выложены на двух языках: русском и английском. Но возможности выбора языка у пользователя нет. Сделано для того, что бы избавится от меню или кнопок переключения языка.
«Движок» сайта автоматически показывает пользователю сайт на предпочтительном языке. Трюк сделан на основе статьи http://habrahabr.ru/post/159129, но поскольку языков на сайте всего 2, алгоритм упрощен до следующего:

if (preg_match("/ru/i", $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
...
} else {
...
}

Второй трюк заключается в примитивном механизме шаблонов. Созданы файлы заголовка header_ru.tpl и header_en.tpl, содержащие начало каждой страницы на соотв. языке

<html>
<head>
	<meta charset="windows-1251">
	<title>FastHamster</title>
	<link rel="stylesheet" href="css/style.css" type="text/css" />
</head>
<body>
	<center>
	<table cellspacing="0" cellpadding="0">
		<tr><td colspan=3><a href="index.php"><img src="img/header.png"></a></td></tr>
		<tr><td colspan=3><a href="index.php"><img src="img/introduce_en.png"></a></td></tr>
		<tr>
			<td class="td_border_left"></td>
			<td class="td_content">

                        <!-- Content start--!>

и шаблон окончания страницы

                        <!-- Content end--!>
			</td>
			<td class="td_border_right"></td>
		</tr>

		<tr><td colspan=3><img src="img/footer.png"></td></tr>
	</table>	
	</center>
</body>
</html>

В результате сделана табличная верстка. Первая строка таблицы — заголовок страницы. Вторая строка первая колонка — левый бордюр, вторая строка третья колонка — правый бордюр. Третья строка — конец страницы. Вторая строка вторая колонка — содержание сайта. Между тегами content start и content end.

В ячейку с содержанием можно вставлять текст, таблицы, блоки div’ов и т.д. они автоматически впишутся в шаблон сайта.

Загрузка шаблонов заголовка, содержания и окончания страницы выполняется с помощью php механизма include. Имя требуемой страницы $PAGE передается через GET запрос.

	if (preg_match("/ru/i", $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
		include("tpl/header_ru.tpl");
		include("tpl/".$PAGE."_ru.tpl");
	} else {
		include("tpl/header_en.tpl");
		include("tpl/".$PAGE."_en.tpl");
	}

	include("tpl/footer.tpl");	

Для приведения адреса страницы из вида domain/index.php?page=astro52 к виду domain/astro52.html, настроен mod_rewrite через файл .htaccess:

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /index.php?page=$1 [L]

Механизм загрузки страниц PHP include является небезопасным. Для предотвращения возможности загрузки «хакером» файлов конфигурации сервера и др. конфиденциальных данных, в index.php сделана простая проверка.
Все разрешенные страницы указаны в массиве $ALLOWED_PAGES, перед загрузкой скрипт проверяет есть ли переданная в GET запросе страница в списке разрешенных, если имя страницы не указано, скрипт загружает главную страницу сайта:

$ALLOWED_PAGES = array("index", "astro52");
$PAGE = "";

if(empty($_GET["page"])) {
	$PAGE = "index";
} else {
	if(in_array($_GET["page"], $ALLOWED_PAGES)) {
		$PAGE = $_GET["page"];
	} else {
		$PAGE = "index";
	}
}

Все. Прошу посетить сайт fasthamster.com

Реклама
Tagged with: , , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: