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


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

megainformatic - Модуль content php performer для megainformatic cms
Модуль content php performer для megainformatic cms Данный модуль позволяет вам использовать блоки php кода, вставляемые прямо в текст статьи сайта и исполняемые, также как и обычный php-код. Для вставки используется стандартный синтаксис php. Между тегами <?php и ?> Вы записываете нужный php код, а при обращении к странице сайта п
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - бесплатная флеш игра freeway fury 2 - разработчик Serius Games

megainformatic - бесплатные флеш игры сторонних разработчиков

megainformatic - Как я осваивал Flash

megainformatic - Список уроков на тему создания flash приложений и игр

megainformatic - Как я осваивал Flash - шаг 2 - Основы создания простейших flash - игр

проект портала Идеи Комфорта

megainformatic - игра Веселый Буквоежка

megainformatic - игра Веселый Буквоежка

megainformatic - Использование cron, crontab и планировщика задач

megainformatic - Совместное использование jquery и mootools или других js-фреймворков

megainformatic - Модуль content php performer для megainformatic cms

megainformatic - Пишем компактный слайдер

megainformatic - Что нужно знать для создания сайта ?

megainformatic - Что нужно знать для создания сайта ? Глава 2 - Кодировки и DOCTYPE

megainformatic - Что нужно знать для создания сайта ? Глава 3 - Идём дальше - нанизываем новый код - где объявляются стили css и код javascript

megainformatic - Что нужно знать для создания сайта ? Содержание

megainformatic - Что нужно знать для создания сайта ? css - стили

megainformatic - preg_match или Использование регулярных выражений в php

megainformatic - статьи Тимонина Андрея - Flash. Содержание

megainformatic - статья Тимонина Андрея - Flash. Подготовка к работе.

megainformatic - статья Тимонина Андрея - Flash. Hello world.

megainformatic - статья Тимонина Андрея - Flash. Экспорт SWC библиотеки.

megainformatic - Тимонин Андрей - Несколько слов о себе

megainformatic - статьи Тимонина Андрея - уроки из области веб программирования, создания казуальных игр

megainformatic - статья Тимонина Андрея - Обеспечиваем доступ к объекту из любой точки программы. Singleton

megainformatic - статья Тимонина Андрея - Хронология работы программы. Создаем Лог

megainformatic - статья Тимонина Андрея - Поиск файлов. Получаем список файлов каталога.

megainformatic - статья Тимонина Андрея - Исключения. Создаем класс обработки исключений.

megainformatic - статья Тимонина Андрея - States. Создаем менеджер состояний игры.

megainformatic - статья Тимонина Андрея - Регистрация. Часть 1. Создаем страничку регистрации на сайте.

megainformatic - статья Тимонина Андрея - Регистрация. Часть 2. Создаем обработчик, и заносим информацию о пользователе в Б.Д.

megainformatic - статья Тимонина Андрея - Таймер. Выводим время игры.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем основной класс обработки графики.

megainformatic - статья Тимонина Андрея - DirectX9. Создаем первое приложение.

megainformatic - Что нужно знать для создания сайта ? float - использование в css - стилях

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 2 - пишем свою композицию COLD

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

megainformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта

megainformatic - Что нужно знать для создания сайта ? ASC II Коды символов

megainformatic - Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

megainformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. Энергетический кокон

megainformatic - Модуль галерей для любой cms

megainformatic - Портфолио выполненных проектов сайтов и приложений

megainformatic - Мои Музыкальные Миры - страница 2

megainformatic - megainformatic cms rs

megainformatic - модуль Падающий снег

megainformatic - проект Open Shop

megainformatic - Рисуем красивую девушку всего за 6 шагов

megainformatic - Галерея красивых рисованных девушек

megainformatic - НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ webinformatic К ЖИТЕЛЯМ ПЛАНЕТЫ интернет

megainformatic - Отзывы оставленные пользователями как впечатление о проделанной работе или что-либо понравившееся на сайте

megainformatic - Уроки css - атрибут position

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - СОДЕРЖАНИЕ

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 1 - Обычный день

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

подробнее

     
 
Урок 3 Оконный и полноэкранный режимы работы D3D-приложения
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 2] [далее] [к содержанию]
 
Опираясь на код приложения, который Вы создали в предыдущем уроке рассмотрим особенности, которые Вам нужно учесть при реализации работы в оконном/полноэкранном режимах
 
В первую очередь для проверки правильности созданного кода управления от DirectInput попробуйте добавить показ/отключение показа FPS. Для этого Вам нужно заглянуть в исходный код игры "Ну, Погоди!" и реализовать работу методов CountFPS, ShowFPS
 

Обратите внимание, что код метода TD3DGameApp.CreateInputObjects

должен выглядеть следующим образом -

procedure TD3DGameApp.CreateInputObjects;
begin
SetDefaultDefKeys;
m_DXInput := TDXInput.Create(Self);
m_DXInput.ActiveOnly := False;
// задает использование DirectInput всегда, независимо от активности приложения
m_DXInput.Exclusive := False;
//эксклюзивный режим нужен только тогда, когда Вы хотите использовать собственный //курсор мыши, прорисовываемый средствами Direct3D
end;

В качестве действия ShowFPSTrigger внутри DefineDefaultKeys нужно задать какую-либо клавишу.

вызов метода ShowFPS нужно добавить внутри UpdateInput

 
Теперь переходим непосредственно к рассмотрению особенностей переключения между оконным/полноэкранным режимами.
 

Индикатор активности приложения m_bIsActive устанавливается в методе TD3DGameApp.MsgProc

при получении системного сообщения WM_ACTIVATEAPP

m_bIsActive := BOOL(wParam);

 

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

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

procedure TMainForm.FormActivate(Sender: TObject);
begin
if g_d3dApp <> nil then
g_d3dApp.m_bIsActive := True;
end;

procedure TMainForm.FormDeactivate(Sender: TObject);
begin
if g_d3dApp <> nil then
g_d3dApp.m_bIsActive := False;
end;

 

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

 
Прежде всего отметим, что код примера SwitchScreenModesInVCL основывается на примере VCLTex из Delphi DirectX SDK Алексея Баркового (http://www.clootie.ru). Особенности касающиеся работы с текстурами удалены, внимание уделено лишь переключениям режимов Полноэкранный/Оконный в приложении на основе VCL и особенностям использования DX8_DIUtil8.pas (модуль для работы с DirectInput8 из Delphi) с классом CD3DApplication.
 
Как и в наших предыдущих уроках код приложения построен на основании двух классов. Первый класс производный от - TForm из VCL, второй подобен TD3DGameApp, но происходит от CD3DApplication из модуля D3DApp.pas библиотеки с общим кодом.
 

Схема работы приложения аналогичная, тому, что имело место в предыдущих уроках. Однако есть ряд особенностей, которые нужно учесть при переносе кода в пример FullscreenMode.

Какие же?

 

Прежде всего, если Вы заглянете в код SwitchScreenModesInVCL внутри модуля SwitchModesUnit.pas,

то обнаружите новый класс - TAbstractApp. Этот класс используется как переходное звено между классом приложения CD3DApplication не являющимся TForm и объектом TDXInput, требующим для своего использования именно такого класса.

Происходит всё довольно просто. Внутри класса CMyD3DApplication производного от CD3DApplication объявляется поле соответствующего типа, а в методе OneTimeSceneInit вызывается создание данного поля и задание для него указателя на обработчик окна данного класса.

Код внутри самого класса выполняет запоминание ссылки на оконную процедуру класса, а сама она выполняет не что иное, как вызов метода MsgProc класса CMyD3DApplication.

Используя объект FAbstractApp при создании объекта TDXInput достигается требуемый эффект. Класс TDXInput извлекает нужные ему параметры из объекта FAbstractApp, а приложение работает как ни в чем не бывало.

Если Вы посмотрите на код примеров из предыдущих уроков, то там класс TD3DAbstractApp является базовым для класса TD3DGameApp.

Такие сложности были связаны с тем, что модуль DX8_DIUtil8.pas был разработан на основе аналогичного кода из библиотеки DelphiX. Эта библиотека хоть и уже несколько устарела, послужила основой для данного модуля, поскольку не удалось разрешить некоторые проблемы, связанные с использованием оригинальных файлов для DirectInput8 из DirectX SDK на C++ при конверсии примеров на Delphi.

Получился компромисс.

 

Для примера SwitchScreenModesInVCL была выполнена следующая подготовка:

класс формы TAppForm, объект g_AppForm.

На форме располагаются

MainDisplayPanel: TPanel

и

ToggleFullscreen: TButton;

последняя применяется вместо пункта меню TMainMenu переключения режимов (для простоты).

 

Код выполняющий собственно переключение оконного/полноэкранного режимов - это обработчик события по нажатию на кнопку ToggleFullscreen

Этот же код вызывается при срабатывании действия DirectInput c именем ChangeWindowModeKey и

внутри FullScreenWndProc - для переключения в оконный режим по нажатию [Esc]ape

 

Этот метод - CD3DApplication.ToggleFullscreen

как видим часть класса CD3DApplication и реализован внутри D3DApp.pas

 

Внутри данного метода происходят следующие интересные вещи:

получаем информацию о адаптере, устройстве и режиме

pAdapterInfo := @m_Adapters[m_dwAdapter];
pDeviceInfo := @pAdapterInfo^.devices[pAdapterInfo^.dwCurrentDevice];
pModeInfo := @pDeviceInfo^.modes[pDeviceInfo^.dwCurrentMode];

используемом для формирования изображения D3D-приложения.

Если устройство не поддерживает оконный режим, то остаемся в полноэкранном режиме

Переключаем текущее состояние с оконного на полноэкранное (или наоборот)

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

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

Учитываем изменившиеся размеры окна

Располагаем окно в нужной позиции поверх всех остальных

 
Это лишь краткое описание того, что на самом деле происходит в коде (подробнее см. сам код примера)
 
Сравним это с тем, что имеет место в примере FullscreenMode (для Вас он уже есть в готовом виде, в конце данного урока), а пока нужно рассмотреть особенности внутри метода TD3DGameApp.SwitchDisplayModes
 

здесь информацию об адаптере, устройстве и режиме мы берем из -

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

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

Какой текущий видеорежим использовался во время старта приложения?

Это мы можем узнать из метода TD3DGameApp.CreateDisplayObjects

 

Здесь видно, что для оконного режима не заданы размеры для

m_d3dpp.BackBufferWidth := m_dwScreenWidth;
m_d3dpp.BackBufferHeight := m_dwScreenHeight;

в D3DApp.pas (CD3DApplication.Initialize3DEnvironment) они задаются,

как задается и m_d3dpp.hDeviceWindow := m_hWnd;

причем как для оконного, так и для полноэкранного

 

аналогично поступим и в нашем примере

возвращаемся к методу TD3DGameApp.SwitchDisplayModes

ошибка происходит в методе m_pd3dDevice.Reset( m_d3dpp );

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

Как это происходит в примере SwitchScreenModesInVCL ?

TAppForm.FormShow

fMyApp.m_hWnd := m_hwndRenderWindow;
fMyApp.m_hWndFocus := m_hwndRenderFullScreen;

Далее можно просмотреть где в коде CD3DApplication встречаются вхождения на m_hWnd и m_hWndFocus

 

Также интерес вызывает параллельный вопрос:

если m_hWnd и m_hWndFocus разные обработчики, а при создании TDXInput указывается лишь один из них, то как это скажется на работе устройств DirectInput?

 

Итак, что мы имеем в коде SwitchScreenModesInVCL ?

TAppForm.FormShow >

CMyD3DApplication.Create - всё предельно просто и ясно.

для полноэкранного режима создается отдельное окно - m_hwndRenderFullScreen

fMyApp.m_hWnd := m_hwndRenderWindow;
fMyApp.m_hWndFocus := m_hwndRenderFullScreen;

 

CD3DApplication.Create_ >

BuildDeviceList - сбор данных о дисплейном адаптере и установка режима 640х480 16 бит

т. к. m_hWnd уже <> 0, то в качестве окна используется fMyApp.m_hWnd := m_hwndRenderWindow; (см. TAppForm.FormShow)

 
FOldWndProc задаем для текущего окна
 

if (m_hWndFocus = 0) then
m_hWndFocus:= m_hWnd;

окно фокуса также иное

 

сохраняем свойства окна, запускаем таймер, инициализируем сцену и 3D-среду (Environment)

CD3DApplication.Initialize3DEnvironment - остановимся подробнее также на данном методе

здесь мы видим как определяется текущий видеорежим (заданный в BuildDeviceList)

проводится настройка изменений размеров

настраиваются следующие параметры отображения -

будет ли режим оконным

m_d3dpp.Windowed := pDeviceInfo^.bWindowed;

{...}

m_d3dpp.hDeviceWindow := m_hWnd; //независимо от оконный/полноэкранный!!!

if (m_bWindowed) then //размеры буфера подготовки кадра, его формат
begin
m_d3dpp.BackBufferWidth := m_rcWindowClient.right - m_rcWindowClient.left;
m_d3dpp.BackBufferHeight := m_rcWindowClient.bottom - m_rcWindowClient.top;
m_d3dpp.BackBufferFormat := pAdapterInfo^.d3ddmDesktop.Format;
end else
begin
m_d3dpp.BackBufferWidth := pModeInfo^.Width;
m_d3dpp.BackBufferHeight := pModeInfo^.Height;
m_d3dpp.BackBufferFormat := pModeInfo^.Format;
end;

устройство создается как

// Create the device
hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus, pModeInfo^.dwBehavior, m_d3dpp,
m_pd3dDevice);
//т. е. при создании устройства ему передается обработчик окна фокуса

 

Пример FullscreenMode(18 Кб)

[downloads:11]

Прежде чем открывать пример из среды Delphi и компилировать Вам понадобится расположить в папке примера файлы D3DX81ab.dll и DXErr81ab.dll (их найдете в дистрибутиве игры "Ну, Погоди!" или в папке с исходным кодом, можно также в архиве с общим кодом)

Взять из дистрибутива игры "Ну, Погоди!" папку Media\texures

Взять из исходного кода игры "Ну, Погоди!" папку common находящуюся внутри папки projects\2d_games\NuPogodi\source

Только после этого пример будет нормально компилироваться и работать!!!

Об этом уже неоднократно упоминалось, а также написано внутри readme.txt приложенном к архиву данного примера, но еще раз напоминаю, чтобы не возникало вопросов.

 

имеет следующие особенности

TMainForm.InitD3DApp - данный метод вызывается при показе формы окна приложения однократно пока g_d3dApp = nil.

Внутри него происходит создание объекта g_d3dApp, создание окна для полноэкранного режима

Метод TD3DGameApp.Create_ - внутри данного метода лишь задаются размеры окна для структур

m_rcWindowBounds и m_rcWindowClient

и вызывается метод начальной инициализации сцены

Внутри TD3DGameApp.CreateDisplayObjects

m_d3dpp.hDeviceWindow := m_hWnd; //указывает на обработчик окна формы приложения

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

hr := pD3D.CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
m_hWndMain, D3DCREATE_HARDWARE_VERTEXPROCESSING,
m_d3dpp, m_pd3dDevice );

 

TD3DGameApp.SwitchDisplayModes

{...}

AdjustWindowForChange; //важный метод, если его не использовать (попробуйте закомментировать),

то сквозь изображение полноэкранного режима "проблескивают" элементы рабочего стола.

m_d3dpp.hDeviceWindow := m_hWnd; //указывает на обработчик окна формы приложения, все сообщения будут посылаться ему даже при полноэкранном режиме

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

 
TD3DGameApp.CheckForLostFullscreen - метод ForceWindowed и его реализация опущены для некоторого упрощения кода
 
FullScreenWndProc - оконная процедура полноэкранного режима, если хотите узнать почему в полноэкранном режиме нет курсора мыши и как его установить - загляните сюда. Здесь же видно по какому сообщению (клавише) осуществляется выход из полноэкранного режима
 

И еще напоследок ряд замечаний, которые не имеют прямого отношения к теме данного урока, но будут всё же интересны

TD3DGameApp.DrawGameView

метод

// Erase the screen
m_pd3dDevice.Clear( 0, nil, D3DCLEAR_TARGET or D3DCLEAR_ZBUFFER,
FillColor, 1.0, 0 );

вызывается вне BeginScene ... EndScene

влияет ли это на производительность?

 

При попытке использовать код, выводящий изображение текстуры в примере SwitchScreenModes по аналогии с примером FullscreenMode не удается добиться такого же вида текстуры в рабочем окне, как в примере FullscreenMode. Почему?

 

 

Вот и сам пример SwitchScreenModes. (13 Кб)

[downloads:12]

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

 
[ответы на поставленные вопросы] - для самопроверки
 
[назад] [страница 2] [далее] [к содержанию]
 
 
     
     
     
     
подробнее


 

Обновления в системе megainformatic cms

- Улучшена безопасность системы авторизации;

- Добавлен редактор контента на основе свободно распространяемого редактора CKEditor - теперь редактирование контента сайта доступно прямо в админке.

Каким образом это происходит ?

В админке появился новый пункт Редактор статей - при выборе этого пункта попадаем на страницу редактирования, которая позволяет выбрать нужную страницу по её pageid и загрузить в редактор, расположенный тут же. Файл статьи загружается в редактор и можно выполнить изменения в тексте статьи. В качестве редактора используется CKEditor, который позволяет использовать в статьях практически любой html код, так что статьи можно оформить как угодно.

После внесения нужных изменений нажимаем кнопку Сохранить в редакторе, при этом все изменения будут сохранены в данном файле контента.

Если требуется создать новый файл контента - нужно заново войти в админку и на главной странице нажать кнопку Добавить новую статью на сайт. На открывшейся странице заполнить необходимые поля и нажать кнопку Добавить. Более подробное описание добавления новых страниц на сайт описано в статье - Основы добавления контента на сайт - http://cms.megainformatic.ru/index.php?page=5

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

Первое, что приходит в голову - это создание для куска кода скриншота и помещение его в текст статьи в виде картинки;

Другой способ - это записать код аналогичными фразами, но на русском языке, например, вместо div написать ДИВ и т. д. - с последующим указанием того, что вы имеете в виду. Специальные символы html такие как < > в примере нужно записывать именно так, а не в виде самих этих символов, иначе редактор также воспримет их как элементы html. Для этого в панели инструментов редактора контента есть соответствующая кнопка - служащая для вставки специальных символов (кнопка с греческой буквой Омега).

Всё это конечно не очень удобно, но всё же имейте в виду, что перед вами всего лишь web онлайн редактор, написанный на javascript, а потому имеющий присущие ему ограничения. И с ними приходится смириться, т. к. удобство онлайн редактирования контента на сайте все-таки намного удобнее.

 

 

подробнее

Проект социальной сети

megainformatic cms social

Реализованные на нём решения -

http://megainformatic.ru/webprojects/megainformatic_cms_social/

Описание возможностей, функционал и документация

Сравнение задач поставленных в ТЗ и фактически решенных

задача по ТЗ решение по факту
     
1. Личный кабинет для 4-х категорий:

- Агенты

- Модераторы

- Администраторы

- Общий кабинет

Система личных кабинетов с ролями:

- СУПЕРАДМИНИСТРАТОР

- МОДЕРАТОР

- АГЕНТ

- Зарегистрированный

2. По сути, Личный кабинет одинаковый для всех, только с разными правами. Права устанавливает Администратор [ставит/снимает галочки] для других Реализовано в ЛК СУПЕРАДМИН пункт меню УПРАВЛЕНИЕ > НАСТРОЙКИ
3. Предназначение скрипта (сервиса) – учитывать посетителей на сайте пришедших по реф.ссылкам от Агентов. Реализована система реферальных ссылок - каждый пользователь имеет личную реферальную ссылку и набор личных страниц, связанных с ней.
4. А также дальнейшую работу Агентов с клиентами. Работа ведется в форме ответов на вопросы, которые были заданы через фомру вопроса на личной странице КОНТАКТОВ Агента. Страница также содержит редактируемый в ЛИЧНОМ КАБИНЕТЕ контент. Вопросы заданные со страницы попадают в папку ВХОДЯЩИХ сообщений ЛИЧНОГО КАБИНЕТА Агента.
5. Агент работает за проценты. Чтобы у него был интерес искать клиентов в интернете, нужно «привязать» посетителей к Агенту. Агент распространяет реф.ссылку в соц.сетях, система учитывает посетителей по реф.ссылке и «прикрепляет» их (клиентов) за Агентом. Ведется полный лог посещаемости всех страниц, лог посещаемости кандидатов на регистрацию и ждущих регистрацию. В логе четко отражены все ссылки, поэтому можно определить какие страницы каких агентов наиболее посещаемы.
6. Далее клиент знакомится с контентом сайта, переходит в «Контакты» и ему показывается контактная страница (приветственная страница) Агента, чья реф.ссылка. На этой странице есть Форма обратной связи. Клиент заполняет Форму (задает вопрос) и это сообщение уходит в личный кабинет Агента. Реализовано в форме ЛИЧНЫХ СТРАНИЦ пользователей сайта. Страницы могут редактироваться пользователем в его личном кабинете и содержат редактируемый и нередактируемый контент.
7. Личный кабинет Администратора и Общий кабинет, регистрируется в админке системы управления джумлы. Все остальные «кабинеты» регистрируются через сайт, а именно, Администратор (в своем кабинете) выбирает пользователя, кликает на кнопку «Ок», получает ссылку, и отправляет пользователю на почту Реализовано в форме визита по ссылке ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ с последующей регистрацией ЛИЧНОГО КАБИНЕТА СУПЕРАДМИНОМ или ЗАМЕНЯЮЩИМ ЕГО ЛИЦОМ.
8. Нужно сделать скрипт для сайта (одним или нескольким файлами), под системой управления Джумла. [этот скрипт должен устанавливаться через админку (администратором) стандартным методом на любой сайт джумлы. Скрипт получился таким сложным, что написание и интеграция заняли более 3 месяцев или в человеко-часах порядка - 600 часов. Скрипт устанавливается как самостоятельная система, но работает в связке с сайтом, в скрипт которого она интегрируется. Установка занимает всего 7 элементарных шагов.
9. Реф.ссылка (хвостик) подставляется номер ID. Пример реф. ссылки - http://megainformatic.ru/webprojects/megainformatic_cms_social/?rid=4
10. Вход в личный кабинет только зарегистрированным пользователям. Свободной регистрации нет. Система ссылок ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ и отслеживания этапов ВОПРОС, Посещение ХОЧУ Зарегистрироваться, Регистрация
11. Окно «Вход» (логин + пароль) располагается на первой странице сайта, с левой строны Реализовано в форме ВХОД НА САЙТ в левой колонке сайта
12. Функции кабинета и права доступа реализовано: профиль, список рефералов (у СУПЕРАДМИНА), реферальная ссылка, личные страницы, статистика посещений (только общая без фильтрации), полнофункциональная система личных сообщений, вставка контента СУПЕРАДМИНОМ в страницы пользователей
13. Создание контента на страничках в личном кабинете, редактирование, осуществляется через текстовый редактор, который установлен в Джумле для редактирования всех страниц сайта, т.е. используется один и тот же редактор. Используется встроенный текстовый редактор контента, аналогичный редактору Joomla.
14. Регистрация Агентов закрытая. Желающий сотрудничать с компанией должен написать запрос через «Форму обратной связи» на странице «Контакты» и ему пришлют реферальную ссылку. Регистрация Агентов только по реферальной ссылке. Об этом уже упоминалось в пункте 10.
15. ОПРЕДЕЛЯЕМ ПОСЕТИТЕЛЕЙ ПО IP-АДРЕСУ, МАК АДРЕСУ, КУКИСАМ Полная статистика посещаемости всех страниц сайта.
16. Каждый посетитель, зашедший на сайт имеет свой IP-адрес и мак адрес. Скрипт его распознает, а так же запоминает куки. Если посетитель регистрируется на сайте, то он включается в список того Агента, по чьей ссылке он зашел на сайт. Полная статистика посещаемости всех страниц сайта. Учёт задавших вопросы, посетивших ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ и зарегистрированных.
17. Если посетитель кликает на страничку "Контакты", то открывается общая страничка контактов, а поверх неё заставка полупрозрачная - Окно "Ваш персональный менеджер". Личная страница Контакты. Без прозрачного окна - для Персональный Менеджер зарезервирована отдельная личная страница.
18. "Ваш персональный менеджер" - это страничка с контентом, который наполняет Агент. Страница Персональный менеджер доступна для редактирования в личном кабинете Агента.
19. В этом окне предлагается нажать на кнопку «Получить персональное предложение». При нажатии на КНОПКУ посетитель переходит на Приветственную страницу. не реализовано
20. Приветственная (продающая) страница, с приветственным текстом и контактными данными того человека, по чьей ссылке он зашел на сайт, там же форма обратной связи (сообщение/вопрос уходит тому, по чьей ссылке он зарегистрировался). система личных страниц, система личных сообщений, система реферальных ссылок, редактор контента личных страниц
21. Цель приветственной странички - чтобы пользователь - позвонил, или написал через Форму обратной связи. эта цель решается на странице КОНТАКТЫ указанного пользователя и содержит форму обратной связи и дополнительный контент, который можно добавить через редактор контента в личном кабинете
22. Если чел. пришел не по реф.ссылке (пришел с Яндекса), то Окно "Ваш персональный менеджер" не открывается, а открывается страница "Контакты" компании. Открываются стандартные страницы сайта.
23. Администратор может выставлять время хранения истории посещений сайта пользователями, т.е. через заданное время очищается история посещения (удаляется IP-адрес, мак-адрес, кукисы). не реализовано
24. По истечении указанного Администратором времени история посещений очищается, т.е. след удаляется, и этот мак-адрес (IP-адрес) «чистый» в дальнейшем может «прикрепиться» к другому Агенту. нереализуемо - IP адрес может меняться, поэтому закрепление никогда не будет работать.
25. ОБРАТНАЯ СВЯЗЬ С КЛИЕНТОМ реализовано в форме системы личных сообщений.
26. Посетитель зашел на сайт, скрипт его распознал, по чьей реф.ссылке он зашел. реализовано в форме учета посещаемости.
27. Посетитель задает вопрос через "Форму обратной связи" и вопрос улетает к человеку, по чьей реф.ссылке он зашел и задал вопрос. реализовано в форме системы личных сообщений.
28. В Личном кабинете появляется новая запись в списке контактов (выделена жирным)(не прочитанное письмо) Хозяин кабинета читает письмо, пишет ответ, и строчка в списке становится обычная (не жирная). Если письмо прочитал, но ответ не написал, то строчка остается жирной. реализовано в форме системы личных сообщений.
29. В течение 24 часов жирная строчка "ждет", чтобы на неё ответили, и через 24 часа отправляется напоминалка хозяину кабинета, что "надо ответить на вопрос". реализовано в форме НАСТРОЙКИ в личном кабинете СУПЕРАДМИНА. Система на базе модуля cron а также задач для отслеживания отвеченных сообщений по заданному времени.
30. В административной части сайта можно задавать произвольно время "напоминания", и время "ожидания" для этой строчки. Далее, жирная строчка ещё ждет 12 часов, и если ответа нет, то эта строчка исчезает из кабинета хозяина и переходит в Общий кабинет. Любой желающий может прихватизировать эту жирную строчку. и тот, кто ответит на заданный вопрос, в его личный кабинет и перейдет эта строчка (строчка нашла нового хозяина). см. пункт 29
31. Если посетитель зашел на сайт случайно (с яндекса, закладок и т.д.), при этом он задал вопрос, то его вопрос (сообщение) будет в списке Общего кабинета. нереализуемо, по причине неоднозначности. Если посетитель !!!ДАЖЕ СЛУЧАЙНО!!! Зайдёт по чье-то реферальной ссылке мы не можем определить действительно ли он зашел к нам случайно. Поэтому соответственно нельзя однозначно решить куда отправить сообщение - В ОБЩИЙ КАБИНЕТ или в кабинет указанного АГЕНТА. РЕШЕНО ТАКИМ ОБРАЗОМ: если пользователь зашел по ссылке которая ведет на страницу КОНТАКТОВ и задал вопрос, то вопрос уходит владельцу данной страницы. Для типовых (не личных) страниц сайта таким пользователем может быть СУПЕРАДМИН. Поэтому сообщения заданные с формы вопроса, размещенной на типовой странице сайта может быть однозначно направлено СУПЕРАДМИНУ или куда-либо еще, например в ОБЩИЙ КАБИНЕТ.
32. Общий кабинет: это как доска объявлений, любой Агент может туда зайти, ответить на вопрос, и ответ клиенту уже будет считаться от имени этого Агента. реализовано в форме сообщений ОБЩИЕ в разделе ИСТОРИЯ > Сообщения ЛИЧНОГО КАБИНЕТА.
33. У Агентов ведется история сообщений (переписки) (как в почтовых программах) с отображением даты и времени. реализовано в форме системы личных сообщений
34. В поле «Для заметок» пользователи могут оставлять заметки, комментарии. Если комментарии есть, то светится ярко с карандашом, если комментариев нет - картинка, серенька, без изображения карандаша с зеленым овалом - система личных сообщений
35. «Для заметок» создается одно общее окно для всех сообщений одного автора. Сообщения разные, а поле «для заметок» одно, оно прикрепляется к автору, а не к сообщениям. система личных сообщений
36. Модератор и администратор могу просматривать сообщения Агентов, и сортировать их: а) по имени Агента; б) по времени и дате их регистрации; в) по количеству сообщений в переписке с каждым клиентом. не реализовано
     
     






ЗАДАЧИ НЕЯВНО ОПИСАННЫЕ В ТЗ либо возникшие в ходе решения поставленных в ТЗ задач

задача решение
37. организация хранения большого количества личных папок и файлов пользователей реализовано хранилище личных папок с автоматической иерархией и отслеживанием предельного количества файлов (папок) на папку.
38. выгрузка файла фото пользователя в профиль реализовано
39. блокировка попыток взлома аккаунтов и кражи персональных данных пользователей реализовано
40. модуль cron для выполнения задачи отслеживания отвеченных сообщений и переноса их в папку ОБЩЕГО КАБИНЕТА реализовано
41. реализация выполнения задачи отслеживания отвеченных сообщений и их фактического переноса в папку ОБЩЕГО КАБИНЕТА реализовано
42. модуль tpl_tags для подстановки блоков контента в личные страницы пользователей реализовано
43. модуль user_page для вывода личных страниц пользователей реализовано
44. модуль page для вывода типовых страниц сайта реализовано
45. стандартный функциональный контент для личных страниц пользователей реализовано
46. типовые страницы сайта реализовано
47. модуль и форма входа с сайта в личный кабинет пользователя реализовано
48. механизм регистрации по ссылкам ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ присылаемым после отправки вопроса через форму контактов реализовано
49. учет кандидатов на регистрацию - задавших вопрос, но не посетивших ссылку ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ реализовано
50. учёт пользователей посетивших ссылку ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ в виде Ждущие регистрацию реализовано
51. модуль отправки личных сообщений и уведомлений на е-майлы пользователей и агентов реализовано
52. модуль контактов для перенаправления вопросов в папку личных сообщений агента реализовано
53. модули и обработчик страницы ХОЧУ ЗАРЕГИСТРИРОВАТЬСЯ и ссылок перехода на неё реализовано
54. подстыковка модулей cron и учета посещаемости к вызовам с сайта реализовано
55. интеграция системы в joomla для совместной работы с joomla - сайтом реализовано
56. разработка и описание механизма установки системы на сайт joomla для совместной работы с joomla - сайтом реализовано
57. набор модулей для административной части сайта обеспечивающих функциональные узлы механизмов личных кабинетов, а также целый ряд прочих задач которые не приведены здесь по причинам недостатка времени на их цельное описание ... реализовано
подробнее

     
 
megainformatic cms free

Быстрая и Компактная Система Управления Вашим Сайтом - megainformatic cms express files

megainformatic cms express files - это простое, быстрое и очень компактное решение для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql. Вместо этого используются файловые базы данных. Поэтому Вы можете использовать систему даже на хостинге с поддержкой php, но без поддержки баз данных my sql.

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

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

 
     
 

Быстрая и Компактная Система Управления Вашим Сайтом - megainformatic cms express files

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

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

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

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

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

 
     
 

Чтобы создать свой сайт быстро и легко - приобретите megainformatic cms express files всего за 100 рублей, получите дистрибутив, распакуйте его и скопируйте полученные файлы на свой хостинг.

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

 
     
  Для добавления новых статей на ваш сайт - достаточно выложить файл контента в нужную папку, например papers/my_paper1  
     
 

А затем добавить описание в файл data/papers.csv для этой статьи.

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

Модули поиска и карты сайта автоматически собирают информацию о добавленных статьях из файла статей.

 
     
 

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

megainformatic cms e-pro

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

Генератор ников, логинов



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



Чтобы сгенерировать ник или логин нажмите кнопку start.

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

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



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


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