ria pc game
translate to English   translate to Chinese
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
24 марта 2019 18:24
Вход Регистрация Забыли пароль ?

megainformatic - Рабочее пространство Adobe Photoshop
        [к содержанию] [далее]         &nbs
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 9

megainformatic - Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 10

роман Eternity Вечность - автор Синицин Андрей megainformatic - В чём отличие в применении символов & и * в языке c++ ? также продолжаем изучать Windows Sockets 2 и пример simple - страница 5

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 11

megainformatic - игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 12

роман Eternity - страница 6 + решение по анимации закрывающихся дверей лифта

megainformatic - Сообщить об ошибке

Balls on Lift Table of Records / Шарики на лифте Таблица рекордов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 13

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Рисуем шарик / How make the game - series of lessons - draw ball

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Содержание / How make the game - series of lessons - Index

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Разные шарики / How make the game - series of lessons - Different balls

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Анимация прыжков шарика / How make the game - series of lessons - Animation ball jumps

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Создание фона заднего плана / How make the game - series of lessons - Creating background for back plane

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Вставка созданной графики, звуков и музыки в игру - Inserting created graphics, sounds and music in the game.

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Развитие проекта fle game engine

Бинарная философия / Binary Philosofy

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 14

Вакансии

Коллекция php скриптов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 15

megainformatic - Приключения Кости Коробкина - В гостях у тёти Светы часть 1 - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 16

megainformatic Создание и размещение видео баннера mp4

megainformatic Использование баннер-ротатора

megainformatic fle game engine Simple game / Пример простой игры

megainformatic fle game engine Simple game / Пример простой игры - страница 1 - Спрайты

Creating game on fle game engine - Draw Line - This can be helpful/ Создание игры на fle game engine - Рисование линий - Это может пригодиться.

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 2 - Объекты / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 3 - Объекты / Пример простой игры

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 6 - Загрузка игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 7 - Перемещения игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 10 - Проверка столкновений / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 11 - Игровой счёт, звуки, музыка / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game extended - страница 1 - Создание новой сцены (уровня, комнаты), добавление новых возможностей / Пример простой игры - расширенная версия

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Советы копирайтеру - как не обмануть и не быть обманутым

Balls and Holes игра скачать + как создать игру на fle game engine

Balls and Holes игра скачать + как создать игру на fle game engine

Something: Unexplained 2 captive of desires

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 17

подробнее


Как создать инсталлятор для собственной cms ?

Итак, Вы написали свою cms. Если нет - можете взять мою бесплатную - megainformatic cms free

Правда для megainformatic cms free инсталлятор не требуется вообще !!! Сайт созданный на базе неё работает без my sql только на файлах. Поэтому вся установка сводится к копированию файлов системы на ваш хостинг.

Для более продвинутых вариантов cms, использующих базы данных my sql - а такие более распространены (megainformatic cms, megainformatic cms express и производные), в задачу инсталлятора будет входить создание первоначальной структуры базы данных будущего сайта без участия пользователя.

Пользователь должен будет лишь создать новую пустую базу данных и передать данные доступа к ней в инсталлятор.

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

В данном уроке мы создадим такой простейший инсталлятор, который будет:

1.) запрашивать пользователя данные доступа к новой базе данных для сайта
2.) создавать первоначальную структуру базы данных нового сайта
3.) обновлять содержимое файла настроек settings.php


Рассмотрим теперь более подробно как организуется процесс установки сайта с помощью инсталлятора.

Во-первых в дистрибутив вашей cms добавляется папка install, которая будет содержать как минимум файл install.php выполняющий все необходимые шаги процесса установки.

В нашем примере таких шагов будет даже 4:

1) Краткая инструкция для пользователя о том, как создать новую базу данных для сайта (поскольку инсталлятор этот шаг выполнить сам не сможет, тут требуется участие пользователя);

2) Поля для ввода данных доступа к созданной базе данных и адрес сайта (тут думаю всё тоже понятно - пользователь должен ввести некоторую информацию о имени базы данных, имени пользователя, пароле, сервере и адресе сайта) - эту информацию инсталлятор будет использовать для автоматического создания структуры базы данных и заполнения её необходимыми данными

3) Непосредственная работа инсталлятора по созданию структуры базы данных и заполнению её необходимыми данными (это собственно скрипт в файле install.php, который будет делать всю необходимую работу уже без прямого участия пользователя);

4) Завершающий шаг установки - инсталлятор создаст файл settings.php, содержащий все необходимые настройки для правильной работы сайта, а также создаст необходимые данные, которые будут свидетельствовать об успешном выполнении установки. (суть работы скрипта install.php тут сводится к созданию файла settings.php с необходимым содержимым, а также созданию специального файла-флага успешного окончания установки, пользователю также выдается сообщение об успешном окончании установки и необходимости удаления папки install с сайта, т. к. её присутствие после успешного выполнения установки сайта становится крайне нежелательным, а сам инсталлятор естественно эту операцию сделать не может).



Мы рассмотрели то, что нужно сделать в теории, а теперь перейдём к практике.

В папке дистрибутива вашей cms создаем подпапку install и помещаем в неё файл install.php.

В файл install.php заносим следующий код -

<?php $install_system_name = 'megainformatic cms express'; ?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Установка <?php echo $install_system_name; ?></title>

<style>

#main {

width: 100%;

margin: 0;

padding: 0;

font-size: 12px;

color: #000000;

background: #ffffff;

font-family: Verdana, Arial, sans-serif;

font-weight: normal;

text-align: center;

}

#container {

width: 800px;

background: #fae3a6;

margin: 0 auto;

}

#desc {

width: 600px;

text-align: left;

margin: 0 auto;

}

#db_connect_form {

width: 480px;

text-align: left;

margin: 0 auto;

background: #cecece;

}

.blue_text {

color: #1c71ad;

}

.orange_bold_text {

color: #ff8e15;

font-weight: bold;

}

.start_install_btn {

color: #ffffff;

border: 2px #ffffff solid;

background: #12be16;

}

</style>

</head>

<body>

<div id="main">

<div id="container">

<?php

/////////////////////////////////// функции

//разворачиваем данные в базе данных сайта

function deploy_database_data()

{

$result = 0;

global $dbhost;

global $dbuser;

global $dbpassw;

global $dbsite;

$papers = array();

if ($rc = mysql_connect($dbhost, $dbuser, $dbpassw))

{

mysql_select_db($dbsite);

//$table = PAPERS_TABLE;

/*$sql = 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";';

$s = mysql_query($sql);

if ( !$s )

{

die('Invalid query: ' . mysql_error());

return $result;

}*/

$sql = 'CREATE TABLE IF NOT EXISTS papers (

pageid int(11) NOT NULL AUTO_INCREMENT,

pagetitle varchar(255) NOT NULL,

pagefile varchar(255) NOT NULL,

UNIQUE KEY pageid (pageid)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;';

$s = mysql_query($sql);

if ( !$s )

{

die('Invalid query: ' . mysql_error());

return $result;

}

mysql_close($rc);

}

if ($rc = mysql_connect($dbhost, $dbuser, $dbpassw))

{

mysql_select_db($dbsite);

$sql = "INSERT INTO papers (pageid, pagetitle, pagefile) VALUES

(1, 'CMS Мега Информатик', 'papers/home.txt'),

(2, 'Подготовка макета сайта', 'papers/maket/maket.txt'),

(3, 'Верстка созданного макета', 'papers/verstka/verstka.txt'),

(4, 'Добавление модулей обеспечивающих функционал', 'papers/modules/modules.txt'),

(5, 'Основы добавления контента на сайт, управления и поддержки сайта', 'papers/content/content.txt'),

(6, 'Проверка работы сайта, установка на хостинг', 'papers/hosting/hosting.txt'),

(7, 'Основы продвижения созданного сайт', 'papers/promo/promo.txt'),

(8, 'Мега Информатик - Создание шаблонов', 'papers/templates/templates.txt'),

(9, 'Создание интернет-магазина', 'papers/shop/shop.txt');";

$s = mysql_query($sql);

if ( !$s )

{

die('Invalid query: ' . mysql_error());

return $result;

}

mysql_close($rc);

$result = 1;

}

return $result;

}

//создаем файл settings.php с конфигурацией сайта

function create_config()

{

$result = 0;

global $dbhost;

global $dbuser;

global $dbpassw;

global $dbsite;

global $site_url;

$data = '<?php'.PHP_EOL;

$data .= '/* ====================================================='.PHP_EOL;

$data .= 'megainformatic cms express 14.04.2012'.PHP_EOL;

$data .= 'http://www.megainformatic.ru'.PHP_EOL;

$data .= 'Автор: Синицин Андрей Сергеевич (megainformatic)'.PHP_EOL;

$data .= '***************************'.PHP_EOL;

$data .= 'файл настроек'.PHP_EOL;

$data .= '====================================================

*/'.PHP_EOL;

$data .= '//настройки доступа к бд'.PHP_EOL;

$data .= '$site_url = \''.$site_url.'\'; //пропишите адрес к вашему сайту'.PHP_EOL;

$data .= '$dbhost = "'.$dbhost.'"; //сервер базы данных обычно 127.0.0.1 либо localhost'.PHP_EOL;

$data .= '$dbsite = "'.$dbsite.'"; //сюда нужно вписать имя созданной вами для сайта базы данных'.PHP_EOL;

$data .= '$dbuser = "'.$dbuser.'"; //это имя пользователя базы данных - для локального сайта можно вписать root'.PHP_EOL;

$data .= '$dbpassw = "'.$dbpassw.'"; //пароль доступа к базе данных, для локального сайта можно не использовать'.PHP_EOL;

$data .= '//набор доступных шаблонов'.PHP_EOL;

$data .= '$templates = array(\'magic\', \'orange\', \'green\', \'blue\');'.PHP_EOL;

$data .= '//имя шаблона по-умолчанию'.PHP_EOL;

$data .= '$template_name = "magic";'.PHP_EOL;

$data .= 'if ( isset($_POST[\'template\']) && $_POST[\'template\'] != "" )'.PHP_EOL;

$data .= '{'.PHP_EOL;

$data .= ' if ( in_array($_POST[\'template\'], $templates) )'.PHP_EOL;

$data .= ' $template_name = $_POST[\'template\'];'.PHP_EOL;

$data .= '}'.PHP_EOL;

$data .= '$template_path = "design/".$template_name;'.PHP_EOL;

$data .= '?>'.PHP_EOL;

$config_filename = 'settings.php';

//выводим данные в файл

$cfg_handler = fopen($config_filename, "w");

$result = fwrite($cfg_handler, $data);

fclose($cfg_handler);

return $result;

}

//создаем файл-флаг успешного завершения установки

function create_install_end_flag_file()

{

$result = 0;

global $istall_ended_filename;

$data = 'installation ended ok'.PHP_EOL;

//выводим данные в файл

$flg_handler = fopen($istall_ended_filename, "w");

$result = fwrite($flg_handler, $data);

fclose($flg_handler);

return $result;

}

/////////////////////////////////// исполнение

//логика работы установщика сайта

/*

0) НАЧАЛО УСТАНОВКИ

1) проверяем была ли нажата кнопка start_install

2) если да, то пробуем получить доступ к базе данных с указанными параметрами

3) если доступа нет - выводим предупреждение

4) если доступ есть - в базе данных сайта создаем все необходимые таблицы и заносим в них информацию

5) создаем в корне сайта файл settings.php и заносим в него всю необходимую информацию

6) после успешного выполнения шагов 4 и 5 выдаем сообщение об окончании установки и предупреждение о необходимости полностью удалить

с сайта папку install, в папке install создаем файл install_ended.txt - если при запуске index.php в корне сайта он проверит и

обнаружит в папке install данный файл - то нужно выдать в браузер предупреждение о необходимости полного удаления папки install

с сайта. Пока папка не будет удалена - не давать доступ к сайту не продолжая выполнение кода в index.php а выводить

только сообщение с предупреждением !!!

*/

error_reporting(E_ERROR);

//1) проверяем была ли нажата кнопка start_install

$start_install_action = isset($_POST['start_install']);

//запоминаем введенные данные доступа к базе данных и сайту (если они были введены)

$dbhost = $_POST['database_server'];

if ( !isset($dbhost) || $dbhost == "" )

$dbhost = '127.0.0.1';

$dbuser = $_POST['database_user'];

if ( !isset($dbuser) || $dbuser == "" )

$dbuser = 'root';

$dbpassw = $_POST['database_pass'];

if ( !isset($dbpassw) /*|| $dbpassw == ""*/ )

$dbpassw = '';

$dbsite = $_POST['database_name'];

if ( !isset($dbsite) || $dbsite == "" )

$dbsite = 'my_database';

$site_url = $_POST['site_url'];

if ( !isset($site_url) || $site_url == "" )

$site_url = 'http://localhost/megainformatic_cms_express';

if ( $start_install_action )

{

//2) да! , пробуем получить доступ к базе данных с указанными параметрами

$result = TRUE;

$rc = mysql_connect($dbhost, $dbuser, $dbpassw);

if ( !$rc )

{

$result = FALSE;

}

$s = mysql_select_db($dbsite);

if ( !$s )

{

$result = FALSE;

}

if ( !$result )

{

//3) если доступа нет - выводим предупреждение

echo '<br><span style="color: #ff0000;">Ошибка !!! Невозможно получить доступ к базе данных !!! Пожалуйста еще раз проверьте

правильность введенных данных и нажмите кнопку НАЧАТЬ УСТАНОВКУ еще раз</span><br><br><br>';

}

else {

mysql_close($rc);

//include_once "includes/constants.php";

//4) если доступ есть - в базе данных сайта создаем все необходимые таблицы и заносим в них информацию

$result = deploy_database_data();

//5) создаем в корне сайта файл settings.php и заносим в него всю необходимую информацию

$result = $result && create_config();

//6) в папке install создаем файл install_ended.txt - он служит флагом успешного окончания установки

//!!! предупреждает ситуацию повторной установки уже установленного сайта !!!

$result = $result && create_install_end_flag_file();

echo 'установка успешно завершена !!! <br><br>Теперь сайт будет работать в штатном режиме и Вы можете обратиться к нему по адресу - '.'<a href="'.$site_url.'">'.$site_url.'</a><br><br>

<br><span style="color: #ff0000;">ВНИМАНИЕ !!! УСТАНОВКА САЙТА ПОЛНОСТЬЮ ЗАВЕРШЕНА И ВАМ НЕОБХОДИМО УДАЛИТЬ ПАПКУ install с вашего сайта. Пока Вы это не сделаете дальнейшая работа невозможна. После удаления папки install просто обратитесь по адресу сайта и сайт заработает.</span>';

}

}

//else

//0) НАЧАЛО УСТАНОВКИ

//выводим начальную страницу установщика

if ( !$result )

{

echo '<img src="install/images/installer.png" border="0" alt="установка '.$install_system_name.'" title="установка '.$install_system_name.'" width="320" height="240">

<br><br>

Добро пожаловать в установщик системы <strong>'.$install_system_name.'</strong><br><br>

<div id="desc">

1) Создайте <span class="blue_text">новую базу данных</span><br><br>

Если Вы выполняете установку на DENVER то,<br><br> в отдельном окне (вкладке) браузера обратитесь по адресу <span class="blue_text">http://localhost/Tools/phpmyadmin/index.php</span><br><br>

или кликните

эту ссылку - <a href="http://localhost/Tools/phpmyadmin/index.php" target="_blank">http://localhost/Tools/phpmyadmin/index.php</a><br><br><br>

<span class="orange_bold_text">!!! ОБРАТИТЕ ВНИМАНИЕ DENVER ДОЛЖЕН БЫТЬ ЗАПУЩЕН !!!<br><br></span>

Если Вы выполняете установку сайта на хостинг, то используйте панель управления Вашим хостингом, для создания новой базы данных сайта. При этом выполнение шага 1.1 будет отличаться, т. к. это действие Вы будете выполнять через панель управления Вашим хостингом. За более подробной информацией обращайтесь к вашему хостинг-провайдеру.<br><br>

1.1) В открывшейся странице phpMyAdmin введите имя для новой базы данных, например, <span class="blue_text">my_database</span> и укажите кодировку для новой базы данных <span class="blue_text">cp1251_general_ci</span> как показано на рисунке<br><br> <img src="install/images/create_new_database.jpg" border="0" alt="создание новой базы данных" title="создание новой базы данных" width="512" height="353"><br><br>

после этого нажмите кнопку <span class="blue_text">Create</span><br><br>

2) в поля указанные ниже, введите необходимую для доступа к созданной базе данных информацию, а затем нажмите кнопку НАЧАТЬ УСТАНОВКУ<br><br>

<div id="db_connect_form"><br><br><strong>Доступ к новой базе данных сайта</strong><br><br>

<form name="site_installer" id="site_installer" action="index.php" method="post">

<strong>Адрес сервера:</strong><br> <input type="text" name="database_server" value="'.$dbhost.'" >(обычно <span class="blue_text">localhost</span> или <span class="blue_text">127.0.0.1</span>)<br><br>

<strong>Имя базы данных:</strong><br> <input type="text" name="database_name" value="'.$dbsite.'" >(введите обязательно такое же имя, которое использовали при создании новой базы данных)<br><br>

<strong>Имя пользователя:</strong><br><input type="text" name="database_user" value="'.$dbuser.'" > (для локальной базы данных на DENVER можно использовать <span class="blue_text">root</span>)<br><br>

<strong>Пароль:</strong><br><input type="text" name="database_pass" value="'.$dbpassw.'" > (для локальной базы данных на DENVER можно не вводить)<br><br>

<strong>Доступ к сайту</strong><br><br>

<strong>Адрес сайта:</strong><br><input type="text" name="site_url" size="60" value="'.$site_url.'" > (укажите адес сайта - для локального сайта на DENVER установленного в папку <strong>megainformatic_cms_express</strong> можно использовать адрес <span class="blue_text">http://localhost/megainformatic_cms_express</span>)<br><br>

<input class="start_install_btn" type="submit" name="start_install" value="Начать установку"><br><br> </form>

</div><!-- end of #db_connect_form -->

В процессе установки созданная база данных будет заполнена необходимыми данными, а также в файл <strong>settings.php</strong> будут занесены

правильные настройки для работы вашего сайта.<br><br>

</div><!-- end of #desc -->';

}

?>

</div><?php /* end of #container */ ?>

</div><?php /* end of #main */ ?>

</body>

</html>

Приведенный код описывает выполнение всех указанных 4 шагов.

В коде страницы инсталлятора используются 2 изображения - 1 в качестве логотипа инсталлятора, а второе - поясняющее шаг создания новой базы данных для пользователя.

Оба эти изображения можно разместить в папке install/images/

Приведенный код, чтобы лучше его понять Вы можете вставить в собственный файл install.php и протестировать как он работает.

Второй важный момент, который надо учитывать - это код, который нужно вставить в файл index.php вашей cms.

Поскольку любой сайт начинает свою работу именно с файла index.php размещенного в корне сайта, то активировать процесс установки сайта достаточно просто.

В самом начале файла index.php мы разместим такой код -

//выполняем установку сайта

//была ли успешно завершена установка ?

$istall_ended_filename = 'install/install_ended.txt';

if ( file_exists($istall_ended_filename ) )

{

//ДА! Поэтому нужно полностью удалить папку install

echo '
<span style="color: #ff0000;">ВНИМАНИЕ !!! УСТАНОВКА САЙТА ПОЛНОСТЬЮ ЗАВЕРШЕНА И ВАМ НЕОБХОДИМО УДАЛИТЬ ПАПКУ install с вашего сайта. Пока<br><br> Вы это не сделаете дальнейшая работа невозможна. После удаления папки install просто обратитесь по адресу сайта и сайт заработает.</span>';

exit();

}

else {

//НЕТ! Тогда выполняем процедуру установки сайта

$installer = 'install/install.php';

if ( file_exists($installer ) )

{

require_once $installer;

}

}

//конец установки

По сути это всё.

Работать это будет следующим образом - Вы (или пользователь, который хочет установить сайт) после копирования всех файлов и папок сайта на хостинг обращается к сайту по его адресу.

При этом код, который мы внедрили в index.php будет проверять наличие файла-флага успешной установки.

Если такого файла в папке install еще нет - будет проверяться наличие папки install и файла install.php в ней.

Если такая папка и файл есть - управление будет передаваться ему и будет открыта страница ИНСТАЛЛЯТОРА в браузере.

Соответственно пользователь выполнит все необходимые действия следуя инстукциям, после чего install.php успешно выполнит свою задачу.

По окончании этого процесса пользователь будет уведомлен о необходимости удаления с сайта папки install. Пока пользователь не сделает этого - он будет получать предупреждение, а сайт работать не будет.

Как только пользователь удалит или хотя бы просто переименует папку install, то никаких помех к дальнейшей работе установленного сайта уже не будет и сайт при обращении к нему будет уже работать в обычном режиме.

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

Спасибо за внимание !

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

Вы также можете заказать систему megainformatic cms express или её производные и увидеть воочию каким образом развертывается сайт при помощи инсталлятора, ну и разумеется получить работающий сайт под ключ.

подробнее

Получить комплект игра Шарики на лифте + Как создать игру

продукт представляет комплект из бесплатной игры Шарики на лифте / Balls on Lift + сборник уроков Как создать игру !

Более подробно ознакомиться с содержанием уроков комплекта игра Шарики на лифте + Как создать игру.

комплект из бесплатной игры Шарики на лифте / Balls on Lift + сборник уроков Как создать игру !

Сборник уроков покажет и расскажет Вам как создать игру и Вы сможете не только
в теории, но и на практике сделать это вставив своё творчество - графику, звуки
и музыку в игру Шарики на лифте и играть в неё !!!

БЕСПЛАТНОЕ ПРИЛОЖЕНИЕ К КОМПЛЕКТУ - игра Шарики на лифте. Так что вы сможете не только
изучить уроки, но и играть в свою игру.
Особенности продукта:

- Вы не только играете, но и творите;
- Уроки по созданию графики;
- Уроки по созданию звуков;
- Уроки по созданию музыки;
- Вставка созданных наработок в игру;
- Уроки по программированию на c++ для directx 9c и созданию дополнений для игры - в ближайших планах - следите за обновлениями !;


Стоимость комплекта: 250 руб





подробнее

Костя Коробкин - В гостях у тёти Светы (kk as) - онлайн комикс - страница 4

Предлагаем вашему вниманию онлайн-комикс Костя Коробкин - В гостях у тёти Светы - интерактивный комикс (kk as).

А чем ты занимаешься помимо тренировок ?

Костя Коробкин - В гостях у тёти Светы (- интерактивный комикс (kk as) - онлайн комикс - страница 4

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1][страница 2] [страница 3] [страница 4] [страница 5] 

подробнее

     
     
  уроки Photoshop - чудеса  
     
  Уроки Photoshop - Чудеса  
     
  Нет никого и ничего мудрее природы. Человек - дитя природы.  
     
 

Вот и пришло время чудес. Попробуем сотворить что-нибудь красивое и интересное. В этом нам поможет профессиональная программа для обработки графики - Adobe Photoshop.

Какую версию использовать ? Любую доступную Вам - можно 6, 7, 8 (CS), 9 (CS 2), 10 (CS 3), CS4, CS5 и т.д. Кому что нравится.

Принципы рассмотренные здесь справедливы для любой из этих версий.

 
     
 

Какие специальные знания потребуются ? Думаю, что никаких особых знаний не потребуется, единственное, я надеюсь, что Вы обладаете хотя бы базовыми знаниями работы на ПК, т. е. Вам не нужно объяснять как установить Photoshop, как запустить его, как создать папку или файл, открыть изображение из Photoshop.

Во всём остальном можно будет разобраться, по ходу работы.

 
     
  В этом сборнике статей мы рассмотрим следующие темы:  
     
  - Коллаж от нуля; Коллаж от нулявозьмем фото и на его примере создадим пейзаж, затем добавим еще новых элементов и превратим в коллаж  
     
  - Рисуем девушку; Рисуем девушкукак нарисовать девушку взяв за основу одну или несколько фотографий  
     
  - Считаем звезды; Считаем звездысоздаем изображения космоса, звёзд и туманностей  
     
  - О, эта морская стихия; как создать коллаж на морскую тематикукак создать коллаж на морскую тематику  
     
  - Подводный мир; Подводный мирпродолжаем погружение в морские пучины  
     
  - Сны наяву; рисуем сказочный пейзаж райских лазурных берегов рисуем сказочный пейзаж райских лазурных берегов  
     
  - Дорогами исканий; дороги поисков приведут нас к созданию таинственного леса дороги поисков приведут нас к созданию таинственного леса  
     
  - Путешествие; Путешествиеотправляемся в путешествие по 2d- и 3d-мирам  
     
   
     
     
     
     
 

Надеюсь, что эти статьи помогли Вам узнать еще больше о возможностях Photoshop и научили более профессиональной работе в этой программе.

Спасибо за внимание и желаю Вам творческих успехов !!!

 
     
 

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Урок 1 Основные операторы языка C++

 
     
     
     
 

Данный небольшой урок является введением в программирование на C++ в MSVS 2008

Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал)

 
     
  [назад] [далее] [к содержанию]  
     
  Мы рассматриваем основные конструкции языка C++ на примере работы в Microsoft Visual Studio 2008  
     
  В предыдущем уроке мы создали небольшой калькулятор. Этот урок позволил нам бегло познакомиться с некоторыми из конструкций языка C++ и некоторыми функциями.  
     
 

Теперь пришло время начать освещение основных базовых конструкций языка C++ на конкретных примерах

Основные операторы (statements) языка - этой теме посвящен следующий раздел MSVS 2008 Documentation (далее просто Help) - Development Tools and Languages > Visual Studio > Visual C++ > Reference > C/C++ Languages

- использование операторов помеченных меткой;

- построение выражений;

- пустой оператор;

- операторы наполнения (логические скобки);

- операторы выбора (ветвлений);

- операторы организации циклов;

- операторы перехода (передачи управления);

- операторы объявления переменных;

- операторы обработки исключений;

 
     
 

- использование операторов помеченных меткой;

метка (label) это особый тип идентификатора, который позволяет пометить нужную строку кода в программе содержащую исполнимый оператор, а затем использовать имя этой метки в операторах передачи управления и выбора.

Пример из MSVS 2008 Help

// labels_with_goto.cpp
// compile with: /EHsc
#include <iostream>
int main() {
using namespace std;
goto Test2;

cout << "testing" << endl;

Test2:
cerr << "At Test2 label." << endl;
}

 
     
 

данный пример рассчитан на консольное приложение. Как видим в отличие от delphi метка не требует предварительного объявления. Достаточно лишь указать допустимый идентификатор метки (Слово начинающееся с буквы) и закончить его двоеточием указав в нужном месте программы. Метка всегда указывает на исполнимый оператор! Даже если в этом месте будет записана строка комментария например так -

Test2:

//
cerr << "At Test2 label." << endl;

будет считаться, что метка указывает именно на исполнимый оператор, все незначащие строки (комментарии) при этом игнорируются.

 
     
 

- построение выражений;

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

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

Примеры выражений:

coord_x = coord_x + 10 * MoveSpeed * TimeCounter;

absc2 = sqrt( abs ( c1 ) );

 
     
 

- пустой оператор;

Это строка содержащая лишь точку с запятой, т.е.

;

 
     
 

- операторы наполнения (логические скобки);

это пара фигурных скобок { и }. Применяется как блок операторов там, где вместо одного оператора нужно использовать целую группу. Блок может не содержать ни одного оператора вообще, тогда это просто пустой блок.

Пример:

if( Amount > 100 )
{

cout << "Amount was too large to handle\n";
Alert();

}
else

Balance -= Amount;

Все переменные объявленные внутри блока без префикса static являются локальными для данного блока.

 
     
 

- операторы выбора (ветвлений);

оператор switch - оператор ветвлений

мы уже сталкивались с этим оператором в предыдущем уроке, когда писали пример простейшего калькулятора

форма записи этого оператора

switch ( expression )
case constant-expression : statement
[default : statement]

выражение в скобках должно давать целочисленный результат

каждый оператор case позволяет выполнять заданный блок кода в зависимости от указанного целочисленного значения

блок кода при default выполняется когда значению выражения не соответствует ни одна строка с оператором case

Пример:

// switch_statement2.cpp
// C2360 expected
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
switch( tolower( *argv[1] ) )
{
// Error. Unreachable declaration.
char szChEntered[] = "Character entered was: ";

case 'a' :
{
// Declaration of szChEntered OK. Local scope.
char szChEntered[] = "Character entered was: ";
cout << szChEntered << "a\n";
}
break;

case 'b' :
// Value of szChEntered undefined.
cout << szChEntered << "b\n";
break;

default:
// Value of szChEntered undefined.
cout << szChEntered << "neither a nor b\n";
break;
}
}


заметьте, что в каждом блоке кода оператора case, а также в блок default применяется оператор break. Он позволяет закончить исполнение оператора switch, в противном случае может быть дополнительно выполнен блок кода в ветви default. Если это действительно требуется, то оператор break не нужен, в противном случае его нужно применять всегда!

Если Вы программировали на Delphi, то заметите, что аналогом оператора switch в delphi является оператор case. Т.е. switch в C++ и case в Delphi это одно и то же. Отличия состоят в синтаксисе, наличие строки default (в C++) и применении оператора break (в C++).

к операторам выбора также относится оператор условия if

if ( expression )
statement1
[else
statement2]

как видим он похож на использование оператора if в delphi, с тем лишь отличием, что слово then не используется.

Пример:

// if_else_statement.cpp
#include <stdio.h>

int main() {
int x = 0;
if ( 1 ) // if statement #1
// {
if ( !x ) // if statement #2
printf_s("!x\n");
else // paired with if statement #2
printf_s("x\n");
// }
}

существенное отличие оператора if в C++ состоит в том, что выражение при if может принимать не логические значения (тип boolean), а целые - 0 и 1. Нулю соответствует логический FALSE (ложь), единице TRUE - истина.

Поэтому в C++ аналогом delphi-конструкции

if SomeObject <> nil then {...}

else {...};

будет являться

if SomeObject

{

}

else

{

}

 
     
 

- операторы организации циклов;

служат для выполнения одной и той же группы операторов итеративно.

Различают циклы с предусловием while, пост условием do и цикл с заданным количеством итераций for

while ( expression )
statement

в цикле while группа операторов statement выполняется пока значение выражения expression не достигнет нуля

Пример:

кусок кода на delphi7

aCurrentCharnum := 0;
SomeParamStr = 'param1; param2;';
ParamDelimeter = ';';
ParamStr := '';
while aCurrentStr[aCurrentCharnum] <> ParamDelimeter do begin
ParamStr := ParamStr + aCurrentStr[aCurrentCharNum];
Inc(aCurrentCharNum);
end;

при условии, что требуемые переменные объявлены, на C++ будет выглядеть так

int aCurrentCharnum = 0;
String^ SomeParamStr = L"param1; param2;";
Char ParamDelimeter = ';';
String^ ParamStr = L"";
String^ aCurrentStr = SomeParamStr;
while (aCurrentStr[aCurrentCharnum] != ParamDelimeter)
{
ParamStr = ParamStr + aCurrentStr[aCurrentCharnum];
aCurrentCharnum++;
}

 
     
  Обязательно напишите и проверьте работу этого кода в приложении наподобие HelloWorldCLR  
     
 

оператор цикла с пост-условием do

do
statement
while ( expression ) ;

оператор do является аналогом цикла repeat..until в delphi

Пример:

int i = 0;
String^ SomeStr = L"";

do
{
SomeStr = SomeStr + Convert::ToString(i);
i++;
} while (i < 3);
button1->Text = SomeStr;

по нажатию на кнопку на ее поверхности выводится 012

 
     
 

цикл for

for ( init-expression ; cond-expression ; loop-expression )
statement

про цикл for в документации по MSVS рассказано много интересных вещей, так что за подробностями обратитесь к ней.

Кратко же использование цикла for выглядит так -

Пример:

String^ SomeStr = L"";

for (int i = 0; i<5; i++)
{
SomeStr = SomeStr + Convert::ToString(i);
}
button1->Text = SomeStr;

на поверхности кнопки появляется текст 01234

 
     
 

- операторы перехода (передачи управления);

к операторам перехода относятся операторы изменяющие обычный последовательный ход исполнения программы -

break, continue, return, goto

оператор break аналогичен оператору break в delphi - служит для немедленного выхода из цикла for, while и do, кроме того используется для выхода из ветви оператора switch (в delphi для этих целей не применяется)

оператор continue аналогичен оператору continue в delphi - служит для немедленного перехода к следующей итерации цикла for, while и do

оператор return

return [expression]

служит для возврата из функции или процедуры. Если выполняется возврат из функции, то значение выражения expression возвращается в качестве результата. Для функций void (процедур) никакого результата не возвращается.

Для возврата из процедуры (функция с результатом void) специального вызова return не требуется. Выполнение процедуры будет закончено там, где кончаются ее логические скобки.

оператор goto служит для безусловной передачи управления на указанную метку -

goto identifier ;

Примеры:

для корректного выполнения примера в приложении Windows Forms добавьте на форму поле ввода textBox1

int somenum = Convert::ToInt32(textBox1->Text);

for (int i = somenum; i < (somenum+3); i++)
{
if (i == (somenum+1))
{
textBox1->Text = Convert::ToString(i);
break;
}
}

данный код добавьте в обработчик нажатия на кнопку button1 размещенную на форме Form1

по нажатию на кнопку в поле textBox1 вместо введенного значения появляется значение на 1 большее

в случае когда поля textBox1 пусто вырабатывается исключительная ситуация. Ее можно избежать, если для свойства Text у textBox1 задать любое числовое значение, которое будет значением по умолчанию

// continue_statement.cpp
#include <stdio.h>
int main()
{
int i = 0;
do
{
i++;
printf_s("before the continue\n");
continue;
printf("after the continue, should never print\n");
} while (i < 3);

printf_s("after the do loop\n");
}

пример с использованием continue показывает как строка after the continue, should never print никогда не будет выведена на консоль

// return_statement2.cpp
#include <stdio.h>

int max ( int a, int b )
{
return ( a > b ? a : b );
}

int main()
{
int nOne = 5;
int nTwo = 7;

printf_s("\n%d is bigger\n", max( nOne, nTwo ));
}

пример функции выбора максимального числа из двух заданных

// goto_statement.cpp
#include <stdio.h>
int main()
{
int i, j;

for ( i = 0; i < 10; i++ )
{
printf_s( "Outer loop executing. i = %d\n", i );
for ( j = 0; j < 2; j++ )
{
printf_s( " Inner loop executing. j = %d\n", j );
if ( i == 3 )
goto stop;
}
}

// This message does not print:
printf_s( "Loop exited. i = %d\n", i );

stop:
printf_s( "Jumped to stop. i = %d\n", i );
}

а это был пример использования оператора goto

 
     
  в следующем уроке мы рассмотрим операторы объявления переменных и обработки исключений  
     
  [назад] [далее] [к содержанию]  
megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 1,1232