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


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

megainformatic - Теория и практика 3d игр - О Кватернионах
        [к содержанию] [назад] [далее]       &
подробнее...

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

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения

megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

megainformatic - Как создать игру ? - Пишем игровой движок с нуля

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

megainformatic - Создание сайта бесплатно или под заказ

megainformatic - Как создать flash баннер

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

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

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

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

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

подробнее

     
  [Назад] [Все уроки] [Далее]  
     
 

10/06/2008 Воспроизведение файлов в формате OGG Vorbis

Для воспроизведения используется интерфейс для Ogg Vorbis библиотек от Xiph.org

[downloads:15]

Автор конверсии на Delphi - Matthijs Laan, 2001 год.

 

Для создания музыки в формате ogg потребуются следующие манипуляции:

запустить Mod Plug Tracker 1.16 и открыть требуемую мелодию (*.it, *.s3m, *.xm, *.mod). Экспортировать ее в формат mp3 с требуемым качеством.

запустить Sound Forge 7.0, открыть созданный mp3-файл и пересохранить его в формате ogg с требуемым качеством.

 

Теперь рассмотрим как осуществляется процесс воспроизведения созданного файла в примере OggVorbis\demos\player

Проект Player.dpr

Модуль Main.pas

Внутри класса TMainForm

Описаны несколько приватных полей:

WaveOut: TWaveOut;
F: TFileStream;
vf: OggVorbis_File;
FileName: string;

 

При нажатии кнопки sbPlay в окне формы вызывается метод -

procedure TMainForm.sbPlayClick

Внутри него происходит следующее -

if Playing and (not Paused) then
begin
WaveOut.Pause;
//пауза
Paused := True;
Timer1.Enabled := False;
//таймер отключается
sbPlay.Glyph := Glyphs[glPlay];
end
else
if Playing and Paused then
begin
WaveOut.Unpause;
//отключение паузы
Paused := False;
Timer1.Enabled := True;
//включение таймера
sbPlay.Glyph := Glyphs[glPause];
end
else
if OpenDialog1.Execute then
PlayFile(OpenDialog1.FileName);
//загрузка ogg-файла и старт воспроизведения

 
procedure TMainForm.PlayFile(FN: string);
var
res: integer;
begin
FileName := FN;

F := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); //открываем файл

res := ov_open_callbacks(F, vf, nil, 0, ops_callbacks); //передаем OggVorbis-библиотеке
if res <> 0 then
//обрабатываем ошибки открытия
begin
F.Free;
MessageDlg('ov_open_callbacks failed: ' + GetVorbisErrorName(res), mtError, [mbOK], 0);
exit;
end;

WaveOut := TWaveOut.Create(Self); //создаем поток вывода звука
WaveOut.SetWaveFormat(vf.vi.channels = 2, vf.vi.rate, 16);
//и задаем ряд параметров
WaveOut.OnStatsChange := WaveOutStatsChange;
WaveOut.OnPlayingDone := WaveOutPlayingDone;
WaveOut.ReadProc := ReadBuf;
WaveOut.OpenAudio;

GUIPlay; //отображаем воспроизведение на форме окна приложения

WaveOut.Play; //включаем фактическое воспроизведение
end;

 

//данная функция обратного вызова (callback) указанная выше

function TMainForm.ReadBuf(const Buffer; Size: Longword; var Time: Double): Longword;
var
BytesRead, Change: Longword;
begin
BytesRead := 0;

Time := ov_time_tell(vf); //считываем длительность мелодии

repeat
Change := ov_read(vf, PByteArray(Buffer)^[BytesRead], Size - BytesRead, 0, 2, 1, nil);
//загружаем данные в буфер
BytesRead := BytesRead + Change;
until (Change = 0) or (BytesRead = Size);

result := BytesRead;
end;

 
При нажатии sbStop вызывается метод GUIStop -
 
procedure TMainForm.GUIStop;
begin
if not Playing then
//если ничего не играет, то выход
exit;

WaveOut.Free; //очищаем звуковой поток и объект OggVorbis-файла
ov_clear(vf);

Timer1.Enabled := False; //отключаем таймер
{...}

Playing := False; //сбрасываем индикатор проигрывания

{...}
end;

 

Таймер служит для отслеживания текущей позиции воспроизведения -

procedure TMainForm.Timer1Timer(Sender: TObject);
begin
try
lTimeNow.Caption := SecondsToString(WaveOut.PlayingTime);
except
GUIStop;
raise;
end;
end;

 

Регулировка громкости -

procedure TMainForm.trackVolumeChange(Sender: TObject);
begin
if Playing then
WaveOut.Volume := DWORD(trackVolume.Position) + DWORD(trackVolume.Position) shl 16;
trackVolume.Position := WaveOut.Volume and $FFFF;
trackVolume.SliderVisible := True;
end;

procedure TMainForm.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: integer; MousePos: TPoint; var Handled: Boolean);
begin
if Playing then
if WheelDelta > 0 then
trackVolume.Position := trackVolume.Position + 3000
else
trackVolume.Position := trackVolume.Position - 3000;
Handled := True;
end;

 

При нажатии на кнопку sbNext (переход к следующей композиции списка воспроизведения) -


WaveOutPlayingDone(Self);

 
procedure TMainForm.WaveOutPlayingDone(Sender: TObject);
begin
GUIStop;
//останавливаем воспроизведение

MREWSPlaylist.BeginRead; //даем сигнал чтения критической секции (для защиты от одновременных обращений к данным списка воспроизведения)
try
if Playlist.Count = 0 then
//если плей-лист пуст - выход
exit;

if Shuffle then //если включена опция выбора случайной композиции из списка, то выборка ее
begin
PlaylistForm.ListBox1.ItemIndex := Trunc(Random(Playlist.Count));
//Trunc вполне можно опустить, т.к. Random итак возвращает Integer
PlaylistForm.ListBox1DblClick(Self);
//и запуск двойного щелчка по данной композиции
exit;
end;

if (PlaylistForm.ListBox1.ItemIndex = (PlaylistForm.ListBox1.Items.Count - 1)) and Repeating then //если найдена последняя композиция списка и включена опция бесконечного повтора, то переход к первой композиции списка
begin
PlaylistForm.ListBox1.ItemIndex := 0;
PlaylistForm.ListBox1DblClick(Self);
exit;
end;

PlaylistForm.ListBox1.ItemIndex := PlaylistForm.ListBox1.ItemIndex + 1; //увеличить индекс текущего элемента на 1
PlaylistForm.ListBox1DblClick(Self);
finally
MREWSPlaylist.EndRead;
end;
end;

 

модуль Playlist.pas

procedure TPlaylistForm.ListBox1DblClick(Sender: TObject); //двойной щелчок по элементу списка воспроизведения приводит к остановке воспроизведения текущей мелодии и к старту воспроизведения выбранной
begin
MainForm.GUIStop;

MainForm.PlayFile(ListBox1.Items.Strings[ListBox1.ItemIndex]);
end;

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

Файлы необходимые для поставки с дистрибутивом игры -

vorbisfile.dll

ogg.dll

vorbis.dll

Исходные файлы - в папке OggVorbis -

AudioWaveOut.pas - вывод декодированного звука

OSTypes.pas - базовые типы

Codec.pas - интерфейс к vorbis.dll

VorbisFile.pas - интерфейс к vorbisfile.dll

Ogg.pas - интерфейс к ogg.dll

 

В опциях проекта указываем ссылку на папку OggVorbis содержащую данные файлы - Project > Options > Directories/Conditionals > Search Path

В секцию uses модуля который будет содержать команды воспроизведения добавляем ссылки на модули - AudioWaveOut, VorbisFile

 
Можно также создать специальный модуль, например OggMusic.pas выполняющий роль интерфейса с данными модулями, что и было сделано - OggMusic.pas
 

Правила использования:

Добавить в проект необходимые файлы - см. выше

В секции uses модуля проекта, в котором будет воспроизводиться музыка добавить ссылку на OggMusic.pas

Внутри нужного класса (приложения или игровой сцены) объявить поле с типом TOggVorbisPlayer -

В требуемых местах приложения или игровой сцены вызывать нужные методы плеера:

Например,

function TD3DGameApp.CreateSoundObjects(h_Wnd: HWND): HRESULT;
begin
//создаем OggPlayer для музыкальных тем
CreatePlayer;

{...}

function TD3DGameApp.CreatePlayer: HResult;
begin

OggMusicPlayer := TOggVorbisPlayer.Create(m_hWnd); //передаем обработчик окна приложения объекту плеера

if Assigned(OggMusicPlayer) then result := S_OK
else
result := E_FAIL;

end;

procedure TD3DGameApp.FreePlayer;
begin
FreeAndNil(OggMusicPlayer);
//удаляем плеер
end;

procedure TD3DGameApp.PlayTheme(Theme: string);
begin
if Assigned(OggMusicPlayer) then
OggMusicPlayer.Play(Theme);
//проигрываем указанный Ogg-файл
end;

procedure TD3DGameApp.StopTheme;
begin
if Assigned(OggMusicPlayer) then
//делаем паузу в воспроизведении
OggMusicPlayer.Pause;
end;


procedure TD3DGameApp.DestroySoundObjects;
begin
FreePlayer;
//вызываем удаление плеера

 

Доработки: поскольку музыка играет без использования IDirectSound, то при сворачивании окна приложения она продолжает играть. Чтобы это исправить можно вызывать метод паузы на время пока приложение неактивно.

Ряд вопросов:

насколько велика временная задержка при переключении на проигрывание новой мелодии?

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

 
Регулировка громкости музыки из окна Настройки - см. следующую статью
 
     
  [Назад] [Все уроки] [Далее]  
     
подробнее

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

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

- Ну вот мы и дома. Неплохой вид, правда ?

- Супер ! Я и не знал что у Вас так красиво.

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

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

[страница 1][страница 2] [страница 3] [страница 4] [страница 5] [страница 6] [страница 7]  [страница 8] [страница 9] 

подробнее

Создание сайта для бизнеса - Миф или реальность ?

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

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

Для чего создаются сайты ?

Можно ответить так: для рекламы, престижа, как дань моде или для решения определенных задач.

Каких задач ?

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

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

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

Существует ли какой-то секрет успеха при создании сайта ?

Разумеется да. Но помните одно - у каждого он уникален и никто с Вами им не поделится, пока Вы не откроете свой собственный.

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

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

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

Что я могу посоветовать тем из Вас, кто решил заняться созданием сайта сам или привлечь для этого специалистов ?

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

На первое время нужно обзавестить хотя бы такими вещами:

- Набор разработчика DENWER Дмитрия Котерова;

- Программа для работы по FTP - FileZilla;

- Редактор текста и кода - Notepad++;

- Информационные сайты и материалы по php, my sql, html, css, javascript, flash, работе в photoshop;

- Статьи на различную тематику посвященную сайтам, их созданию и продвижению;

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

Этот список еще далеко не полон.

Желаю Вам удачи на ниве создания сайтов !

подробнее

     
     
 
МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ
 
[Все уроки 3ds max] [Галерея моделей] [далее]
 

Создание модели книжного шкафа

Нам необходимо смоделировать представленный объект, затем применить к нему материал – дерево.

 
каркасный вид модели книжного шкафа сплошной вид
 

Создайте бокс:

Create Panel > Standard primitives > Box

В окне параметров задайте следующие размеры:

Length = 2,8m; Width = 0,8m; Height = 2,6m;

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

Length Segs = 4; Width Segs = 3; Height Segs = 3;

 

Приступим к процессу видоизменения. Преобразуйте объект в editable poly:

Modify Panel > object name (Box) > щелчок правой кнопкой мышипо 1 пунктуокнастека > Convert To Editable Poly.

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

Этот новый тип объекта позволит нам сформировать пространство для полок, сформировать ножки.

Если вы щелкали вне объекта, то снова выберите объект (щелчком по нему).

Клавишей [F4] включите режим отображения граней (edged faces).

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

В окне стека разверните узел у пункта Editable poly и выберите подпункт Polygon.

Удерживая нажатой клавишу [Ctrl] выделите две грани в центре.

 
выделенные грани
 

Попробуем «вдавить» эти грани внутрь объекта, чтобы сформировать будущее пространство полки.

В окне параметров найдите и нажмите кнопку Extrudeи маленькую кнопку рядом с ней.

В появившемся диалоговом окне задайте: Extrusion Height = -0,7m; Затем OK.

 
грани после вдавливания
 

Расширение размеров пространства полки

Перейдите в окно Top viewport и увеличьте, переместите вид если требуется. На панели Modify раскройте узел Editable poly и выберите уровень суб-объекта Vertex (вершины).

Используя выделение мышью в окне Top viewport выделите средние верхние четыре вершины. При этом будут выделены все видимые и не видимые вершины объекта в данной зоне.

 
выделение двенадцати вершин
 
Удерживая нажатой [Ctrl] выделите аналогично 12 вершин другой стороны.
 
выделение второго набора из 12 вершин с другой стороны
 
Используя Select and Uniform Scale сместите вершины по координатной оси Y. В окне Perspective viewport вы увидите результат вашей работы.
 
раздвижка вершин масштабированием для достижения эффекта тонких стенок
 
Вдавите верхние две грани для получения пространства верхней полки.
 
получение верхней полки
 

Создание 4-х ножек

В окне Perspective viewport переверните шкаф так, чтобы было видно его дно. Используя панель модификации и уровень Polygon выделите 4-ре крайних прямоугольника по периметру дна. Используя кнопку Extrude и кнопку параметров (рядом с ней) – в группе Edit Polygons – выдавите ножки на 0,1m.

 
выдавливание ножек
 

Теперь коснемся понятия рендеринга или отрисовки. Отрисовка (Рендеринг) созданной модели – это растеризация трехмерного изображения в виде плоского.

Выберите пункт меню Rendering > Render.

В открывшемся окне Render Scene в группе Output size щелкните по кнопке 640х480

 
размер выходного изображения при растеризации
 

Нажмите кнопку Render в самом низу окна.

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

Как видим, это лишь прообраз моделирующий форму шкафа. Для придания реализма к объектам применяются различные материалы.

Под материалами в Max подразумеваются плоские изображения (называемые также текстурами) наносимые (или проецируемые) на поверхность созданных объектов.

Применим к нашей модели шкафа материал wood (дерево).

Вызовите редактор материалов – клавиша M или Rendering> Material Editor

В окне образцов щелкните любой пустой слот.

По умолчанию все слоты имеют shader Blinn.

Понятие шейдера (shader) включает следующее – это специальный алгоритм (или набор алгоритмов) моделирующий поведение материала для придания большей реалистичности. Шейдеры моделируют отражение, приломление, поглощение света.

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

Названия шейдеров обычно представляют или имена авторов или свойства и поведение и т.д.: Blinn, Anizotropic, Metal и другие.

Для моделирования поведения большинства простых материалов подходит именно шейдер Blinn, который применяется наиболее часто. Другие шейдеры больше подходят для специфических материалов – Anizotropic и Metal – для анизотропных веществ, т.е. кристаллов, металлов – материалов в которых свойства среды зависят от направления.

В качестве краски (цвета), который можно использовать для заполнения объекта можно использовать растровое изображение (текстуру):

В группе Blinn Basic Parameters есть три пункта:

Ambient – окружающий свет

Diffuse – рассеянный свет

Specular – отраженный свет.

 
редактор материалов и рассеянный свет
 

Нажмите пустую кнопку напротив пункта Diffuse – и мы используем в качестве рассеянного света материала текстуру.

В появившемся окне Material/Map Browser выберите рисунок wood. Двойной щелчек приведет к автовыбору.

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

Мы снова попадем в окно свойств этого материала. Переименуйте материал назвав, например wood_01. Если материал имеет несколько проекций (Maps), то их тоже можно переименовывать давая другие названия. Все изменения будут сохранены вместе с вашим файлом сцены.

Применим созданный материал к нашему объекту – шкафу – щелкните слот материала и перетаскивайте его на объект в окне Perspective viewport. Если никаких изменений не произошло, то нажмите кнопку Show map in viewport в окне редактора материалов.

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

Закройте редактор материалов и попробуйте произвести рендеринг вашей сцены.

 

Как видите шкаф получил вид в виде древоподобного рисунка. Но он слишком крупных размеров и это смотрится не очень.

Поправим дело: вызовите редактор материалов и доберитесь в нем до параметров проекции с рисунком дерева (wood). В группе Coordinates можно управлять наложением рисунка на объект, а именно:

Offset – производить смещение на указанное число единиц по данной координатной оси;

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

Angle – позволяет поворачивать образец на некоторый угол. Попробуйте повернуть по координате Y на 90 градусов.

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

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

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

Используя Modify panel > Editable Poly > Polygons выберите две прямоугольных грани в нижней части шкафа.

 
окончательный вариант модели книжного шкафа
 

Используя кнопку Extrude вдавите дверки на значение (Amount = -0,1m).

Создание ручек

Создайте маленький цилиндр (Cylinder) или конус (Cone) (0,01 х 0,06). Выровняйте расположение ручки, примените материал, создайте вторую ручку.

Между ручками создайте планку (используйте бокс нужных размеров).

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

 

 
     
     
  [Все уроки 3ds max] [Галерея моделей] [далее]  

Форма для смены шаблонов сайта.

модуль template selector

template selector
Для этих целей разработан модуль для

megainformatic cms

и её модификаций (express, files, admin, e-pro, e-shop, e-mailer, seo, stat kit, social и других).


Достоинство модуля в его универсальности - он применим и для любых других cms - joomla, wordpress, drupal, dle, shop script le, presta shop и иных систем

Установка модуля включает следующие шаги -

1) размещаем файлы модуля в папке для модулей.

2) в файле template_selector_cookie.php прописываем доступный для выбора набор шаблонов

например так,

$templates = array('super', 'mega', 'classic', 'future', 'social');

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

3) в модуле before_output подключаем модуль template_selector_cookie.php используя include_once

include_once "modules/template_selector_cookie.php";

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

например так,

include_once "modules/template_selector.php";

Модуль готов к работе !!!

Теперь при выборе нужного шаблона через форму и нажатии кнопки ШАБЛОН все страницы сайта будут отображаться с использованием выбранного шаблона.

Пример использования данного модуля Вы можете видеть в шапке нашего сайта или по данной ссылке -

http://varve.ru/webprojects/modules/template_selector/

Приобрести комплект megainformatic cms express files + модуль template selector


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

Приобретая данный комплект Вы получаете:

- работающий сайт под ключ, устанавливаемый в течение 10 минут, путём простого копирования всех файлов дистрибутива на ваш хостинг;

- Плюс к этому 5 различных шаблонов сайта;

- и подключенный модуль template selector;


В набор также включены следующие модули:


- before output - модули подкючаемые до вывода информации в браузер; - date time - выводит текущую дату/время на сайте;

- default meta - вывод мета-тегов по-умолчанию;

- page - модуль вывода заголовков и страниц сайта;

- run line - модуль бегущей строки;

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

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



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


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