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


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

сайт megainformatic - Главная
О чем сайт megainformatic.ru ? За годы его существования, а создан он был в июне 2010 года, цели значительно расширялись и углублялись. В феврале 2006 года я впервые озадачился проблемой создания сайта вообще. Кстати свой доступ в интернет у меня появился в это же время. Первые версии сайта были на бесплатных хостингах (narod, boom, pochta) и делал их на чистом html. Однако уже тогда,
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Создание модели броневика (Хэд)

megainformatic cms e-mailer

megainformatic cms e-mailer

megainformatic cms e-mailer

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

megainformatic - Путешествие в мир 3d

megainformatic - Путешествие в мир 3d - страница 2

megainformatic - Путешествие в мир 3d - страница 3

megainformatic - Путешествие в мир 3d - страница 4

megainformatic - Путешествие в мир 3d - страница 5

megainformatic - Путешествие в мир 3d - страница 6

megainformatic - Создание модели броневика (Хэд) - Анимация вращения колес

megainformatic cms express files

megainformatic cms express files

megainformatic cms express files

megainformatic - Уроки Photoshop - Чудеса

megainformatic cms express files - Развертывание сайта на Вашем хостинге

megainformatic - Настольная игра "Веселый Буквоежка"

megainformatic - Уроки delphi directx 8.1

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения.

megainformatic - Уроки delphi directx 8.1 - Урок 1 - Введение в Delphi DirectX 8.1. Создание шаблона стартового приложения. Страница 2

megainformatic - Урок 2 Создаем и обрабатываем команды меню.

megainformatic - Урок 2 Создаем и обрабатываем команды меню. Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 2

megainformatic - Урок 3 Оконный и полноэкранный режимы работы D3D-приложения. Управление игрой средствами DirectInput8 - Страница 3

megainformatic - Урок 4 Построение класса приложения

megainformatic - Урок 4 Построение класса приложения - Страница 2

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов

megainformatic - Урок 5 Построение классов игровых объектов и других необходимых классов - Страница 2

megainformatic - Урок 6 Игровая логика

megainformatic - Заметки по joomla - JFolder::create: Path not in open_basedir paths. Что это?

megainformatic cms express files - Добавление статей на сайт под управлением megainfromatic cms express files

megainformatic - Урок 7 2D-анимация

megainformatic - Урок 8 Загрузка/Сохранение текущей игры, режим паузы, режимы часов/будильника, запуск браузера Internet Explorer для показа сайта разработчика и других интернет-ресурсов

megainformatic - Урок 9 Тестирование и отладка приложения

megainformatic - Мои Музыкальные Миры

megainformatic - уроки Photoshop free

megainformatic cms express

megainformatic cms express

megainformatic cms express

megainformatic cms express files

megainformatic - Методы создания растровых изображений в Adobe Photoshop

megainformatic - Создание фотореалистичной текстуры травы

megainformatic - Рабочее пространство Adobe Photoshop

megainformatic - Бесшовные (тайловые) текстуры

megainformatic - Создание изображений огня, воды, неба

megainformatic - Создание текстур горных пород и суши (урок 5)

megainformatic - Рисование персонажей (урок 6)

megainformatic - Рисование фона (урок 6 часть 2)

megainformatic - Рельефные изображения

Добавление статей на сайт под управлением megainformatic cms express

megainformatic - Воспроизведение файлов в форматах it, xm, s3m, mod

megainformatic - Воспроизведение файлов в форматах it, xm, s3m, mod - страница 2

megainformatic - Воспроизведение в игре музыки в формате XM

megainformatic - Воспроизведение файлов в формате OGG Vorbis

подробнее

     
 
megainformatic cms admin

Административная часть сайта и основа вашей будущей социальной сети - megainformatic cms admin

Для входа на сайт используйте логин: admin и пароль: admin

megainformatic cms admin - это простое, быстрое и очень компактное решение для создания первого вашего сайта. Данная версия использует базы данных my sql. Система достаточно компакта и проста в установке.

Очень проста в установке - достаточно вам скопировать все файлы на ваш хостинг и создать базу данных и сайт готов к работе !!!

В комплект входят 5 готовых шаблонов, и набор модулей для административной части сайта:

- модуль входа в административную часть сайта, разделение пользователей по ролям;
- модуль профилей пользователей;
- модуль панели управления (+меню);
- модуль добавления/редактирования страниц сайта;

 

Стоимость: 250 руб.

 
     
 

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

Представляем вам - megainformatic cms admin

Она проста, компактна и надежна в использовании.

Это -

 
     
 

Административная часть сайта и основа вашей будущей социальной сети - megainformatic cms admin

Особенности:

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

- открытый исходный код на php;

- быстрая и простая установка;

- подробное описание возможностей;

- может использоваться как самостоятельная система для управления сайтом, так и в полном составе megainformatic cms той версии которую вы используете или планируете использовать:

megainformatic cms express

megainformatic cms

megainformatic cms e-pro

megainformatic cms e-shop

megainformatic cms e-mailer

 
     
 

 

Нет ничего проще, чтобы реализовать ваш личный сайт. Получив в своё распоряжение эту систему Вы получаете собственный готовый сайт и панель управления этим сайтом.

Имея дистрибутив, распакуйте его и скопируйте полученные файлы на свой хостинг. Создайте посредством phpMyAdmin базу данных и разверните базу данных сайта в соответствии с инструкцией.

Ваш сайт готов к работе !!!

 
     
     
 

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

megainformatic cms e-pro

 
     
  megainformatic cms e-shop  
     
  megainformatic cms e-mailer  
     
  Удачи вам в создании собственного виртуального интернет-пространства !!!  
     
     
     
подробнее

     
 
Урок 3 Оконный и полноэкранный режимы работы D3D-приложения
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 3] [далее] [к содержанию]
 
Ответим на вопросы заданные на предыдущей странице
 
Судя по исходному коду оригинальных примеров из DXSDK8, 9 правильно вызывать Clear до BeginScene ... EndScene, а не между этими методами. Возможно это влияет на производительность. Для простых примеров это может быть и не заметно, но в "тяжелых" приложениях это возможно даст некоторый прирост.
 

Ответ на второй вопрос:

procedure CMyD3DApplication.DrawGameScene;
begin
if backImage <> nil then
{backImage.Draw2(0, 0, 0, 0.83, 1,
DrawD3DImage2D_Filtered, 255);}

backImage.Draw(DrawD3DImage2D_Filtered, 255);

end;

теперь остается выяснить почему не работает backImage.Draw2

 

 

Если выполнить отладку и заглянуть в модуль D3DGUI.pas метод function TD3DImage2D.Draw2(x, y, z: Single; fXScale, fYScale: Single;
Flags: Cardinal; Alpha: Byte; UsePatterns: Boolean = False): HResult;

то, видно, что структура vp: TD3DViewport8;

при вызове метода m_pd3dDevice.GetViewport(vp);

дает совершенно необъяснимые размеры окна Viewport

Если протестировать вызов данного метода в коде примера VCLTex модуль VCLTexUnit.pas внутри метода CMyD3DApplication.InitDeviceObjects

то результат будет тот же.

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

Та же проблема при выводе масштабируемого текста D3DFont.pas CD3DFont.DrawTextScaled

Почему же в примере FullscreenMode всё работает как надо?

 

 

Ответ на этот вопрос Вы найдете проработав наш следующий - 4 урок, посвященный разработке класса D3D-приложения.

А коротко ответ на него звучит так -

 

модуль D3DApp.pas, метод CD3DApplication.Initialize3DEnvironment

// Create the device
{//**
hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus, pModeInfo^.dwBehavior, m_d3dpp,
m_pd3dDevice);
}

hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
m_d3dpp,
m_pd3dDevice);

В чём же причина? Если заглянуть в документацию по DirectX 8 ,то в описании IDirect3D8::CreateDevice вы найдете список значений параметра BehaviorFlags

среди них D3DCREATE_PUREDEVICE = $10; и D3DCREATE_HARDWARE_VERTEXPROCESSING = $40; именно то значение, которое имеет данный флаг если использовать строку кода, которая показана закомментированной (зеленого цвета)

Приведенный чуть ниже код исправляет данный недостаток! Причина объяснена в документации по DirectX 8 -

D3DCREATE_PUREDEVICE
Specifies that Direct3D does not support Get* calls for anything that can be stored in state blocks. It also tells Direct3D not to provide any emulation services for vertex processing. This means that if the device does not support vertex processing, then the application can use only post-transformed vertices.

Т. е. установка данного флага не позволяет вызывать методы Get* и требует использования только пост-трансформированных вершин. Метод GetViewport как раз и не выдает при этом нужной информации!

 
 
 
 
[назад] [страница 3] [далее] [к содержанию]
 
 
     
     
     
подробнее

     
  Что нужно для создания собственного сайта ? - Создаем Сайт Своими Руками - СССР  
     
     
     
 

Вы наверняка слышали что такое CMS (Content Management System) - Система Управления Контентом - а если нет, то скажу Вам - это то, что поможет Вам создать и организовать информацию на собственном сайте.

Хочу сразу предупредить Вас, что никакая CMS не может:

- сама создавать контент и изменять его;

- она не умеет создавать сайты такими, какие Вы придумаете;

- она не умеет выкладывать сайт на хостинг, продвигать сайт и многое другое.

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

Свой сайт Вам придется создавать самим или попросить об этом кого-либо.

Создание сайта включает следующие этапы:

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

2) Разработка макета сайта. Если Вы твёрдо решили создать сайт и определились с 1 пунктом, то на данном этапе нужно придумать и нарисовать схему сайта, по ней создать дизайн и сверстать макет.

3) Установка сайта на конкретную CMS и доработка функционала, удовлетворяющего задачам сайта. Данный этап частично может включать предыдущий, так как верстка макета сайта должна учитывать требования конкретной CMS. Этот этап может быть достаточно сложным и длинным, особенно если Вы задумали какой-то большой и обширный проект.

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

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

 
     
  Как видите современный сайт - это часть Вашего бизнеса или весь бизнес. При помощи него Вы можете решать большой спектр своих бизнес-задач, но конечно же только в том случае, если Вы успешно закончили работу по 1-5 этапам, и продолжаете заниматься постоянной поддержкой, улучшением и сопровождением своего сайта.  
     
  Теперь возникает вопрос: А под силу ли сделать всё это одному человеку ? И сколько для этого потребуется времени и средств ?  
     
  Отвечаю: конечно же, всё зависит от каждого конкретного случая, но почти наверняка, даже если Вы задумываете очень сложный и многогранный сайт, на начальном этапе можно остановить свой выбор на самом минимально-необходимом функционале, который под силу реализовать даже одному человеку - владельцу сайта.  
     
 

Как говорится, нужно начать с самого простого, ну а дальше - будет видно.

Что нужно для создания сайта прямо сейчас ?

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

1) скачать и установить на свой компьютер пакет Web-разработчика DENVER. Я не буду здесь приводить ссылку, найдите сами. Достаточно в любом поисковике набрать искомую фразу.

2) выбрать, скачать и установить локально (тоже на свой компьютер) CMS.

3) приступить к процессу создания своего сайта (см. выше - этапы 1 - 5).

 
     
  Мы не ставим сверх задач, мы научимся создавать простые и функциональные сайты, которые под силу создать даже одному человеку, причём затраты сил и времени будут минимальны, т. к. во многом вы получите готовые решения и подробное объяснение их смысла работы.  
     
  Вот и всё. Если Вы поняли, что можно и нужно создать собственный сайт, приступим прямо сейчас !  
     
  [далее] мы рассмотрим процесс создания макета нашего сайта (2 этап), этап 1 я надеюсь Вы уже для себя определили, т. е. какие специфичные задачи будет решать ваш сайт. Мы же решим общие задачи, которые может и должен решать любой сайт и на примере этой работы вы, надеюсь, научитесь решать и специфичные задачи, необходимые именно для вашего специфичного сайта !  
     
     
     
     
     
     
     
подробнее

     
  Создание компьютерных игр на основе DirectX в среде Delphi 6, 7  
     
   
     
 

Почему избраны DX8 и Delphi?

Если Вы знаете C++ или собираетесь изучать его, то - желаю Вам удачи! В свое время я тоже начинал изучение программирования с Cи. Но в 2002 году мне попался в руки, совершенно случайно, очень интересный диск "Большая Библиотека Delphi" от ИДДК. В нём была представлена очень интересная подборка исходников на Delphi. Тогда еще я не знал Delphi, а только учился программировать на ассемблере и basic'е.

Я решил взяться за Delphi.

Прошло 4 года. Теперь я уже неплохо знаю Delphi. Особенно программирование с VCL.

Однако программирование игр представляет несколько иную стезю. VCL здесь ничем не поможет, да и практически не нужно! Здесь самое главное знать программирование WinAPI - т.е. чистого Windows-приложения без использования VCL!!!

Большинство новичков для создания игр в Delphi могут найти неплохую библиотеку DelphiX, а также UnDelphiX. В частности, пример игры Дорога в Город представленный на этом сайте написан именно с использованием этих библиотек. Эта игра еще будет дорабатываться, а пока скажу лишь, что после DelphiX и UnDelphiX Вы захотите чего-то большего. Например, создать 3D-игру.

Делать это при помощи DelphiX при отсутствии документации по DX7 невозможно, да и зачем? Если есть уже DX8 и DX9!

Конечно, какие-то попытки обновить DelphiX для использования DX8, а не 7 уже ведутся, но ... есть и другой путь!

Можно взять DirectX 8.1 SDK и заняться созданием игр на Delphi!

Конечно же большим недостатком DX SDK является то, что все примеры даны на C++ (в DX9 SDK еще и на C#). К тому же Вам придется адаптировать все заголовочные файлы и вспомогательные модули под Delphi! Не зная C++ это невозможно. Однако к счастью часть этой долгой и кропотливой работы уже сделана другими людьми и Вы можете свободно пользоваться резальтатами этого труда. Это содержимое архива С ОБЩИМ КОДОМ можно

[downloads:10] здесь.

Также изучая адаптированные примеры и сопоставляя их с кодом на C++ из оригинального DX SDK можно постепенно самому научиться переводить с C++ на Delphi. (Или же подучить С++ :)))

Итак, перед Вами пример того, что мне уже удалось. Это примеры исходного кода из оригинального DirectX SDK 8.1, но адаптированные для Delphi. К слову сказать, языки Delphi и С++ (если брать не синтаксис и семантику, а алгоритмическое построение) имеют вообщем-то одну и ту же основу. В Delphi 7 к тому же, вся документация была под рукой. Все это и дало мне возможность адаптировать С++ примеры для Delphi.

Итак, засучив рукава, перейдем к изучению

Direct3D8

 
     
 

Видео урок посвященный созданию игры Ну, Погоди ! - рождение игры часть 3.

Покажет Вам простейшую элементарную игру и особенности её создания в delphi 7 на directx 8.1 api.

 

Как создать инсталлятор для собственной 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 или её производные и увидеть воочию каким образом развертывается сайт при помощи инсталлятора, ну и разумеется получить работающий сайт под ключ.

megainformatic live chat
Начать беседу
X
 

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



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


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