Разработка UCP для SAMP-Сервера. Часть 1. - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Sanoxxx, Alowir  
Разработка UCP для SAMP-Сервера. Часть 1.
CrazyProger Дата: Пятница, 06.07.2018, 20:13 | Сообщение # 1
Новичок
Сообщений: 4
Статус: Offline
Всем привет.
Первый топик на форуме. И сразу немного полезностей.

Сама идея - написать универсальную UCP, которая будет легко интегрироваться к большинству серверов с минимальными правками.

В планах:
1. Основной функционал панели (новости, донат, профиль, и т.д.).
2. Лёгкий форум, без лишних наворотов.
3. Тут не знаю. Что-то, что Вы посчитаете нужным.

Итак, товарищи, приступим.

Структура и что используем.
Как "каркас" заюзаем фреймворк CodeIgniter. Почему его? Прост, гибок, имеет почти всё, что нам нужно, из коробки.
Плюсом, адекватная структура MVC.
В общем, один из идеальных кандидатов для тех, кто начинает с нуля.

Ну, а сейчас всё же начнём.

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

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

После того, как Вы распаковали архив с фреймворком в директорию локального домена, то открываем браузер, и топаем по адресу этого самого локального домена. И видим такое чудо:



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

Далее нужно всё правильно сконфигурировать.

Для начала идём в application/config и открываем своим любимым редактором файл confiig.php
.

И правим следующие строки:

Код
$config['base_url'] = 'вашлокальныйдомен';
Здесь мы даём фреймворку знать, какой домен мы используем. Это пригодится в дальнейшем. Более, нам в этом файле пока что ничего не нужно.

Следом из той же папки открываем файл autoload.php

В нём ищем строку:
Код
$autoload['libraries'] = array();


И модифицируем до вида:

Код
$autoload['libraries'] = array('session','database','email');


Следом ищем строку:
Код
$autoload['helper'] = array();


И приводим к виду:

Код
$autoload['helper'] = array('url','form');


Немного поясню, что мы тут сделали: загрузили библиотеки для работы с сессиями, базой данных и почтой, и подгрузили хелперы для форм и урлов.

Обновляем страницу, и видим следующее:


Это значит, что драйвер базы данных не смог подключиться к базе. Для того, что бы это исправить, в той же папке открываем файл database.php и правим строки:
Код

$db['default'] = array(
    'dsn'    => '',
    'hostname' => 'сервер базы данных.',
    'username' => 'пользователь',
    'password' => 'пароль',
    'database' => 'имя базы',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);


Важно! Подключаемся к базе данных сервера SA-MP!

Далее, после обновления страницы, снова увидим, что фреймворк приветствует нас.

На этом конфигурирование можно закончить. Пока что нам лезть туда не нужно.

Теперь нам нужно создать правила маршрутизации на серверном уровне.
Суть в том, что по дефолту CI имеет следующую структуру URL-ов:
вашсайт/index.php/модуль
Нам нужно убрать лишнее, поэтому создаем в корне сайта файл .htaccess и прописываем в него следующее содержимое:

Код

AddDefaultCharset UTF-8 # устанавливаем кодировку UTF-8
Options +FollowSymLinks # разрешаем символические ссылки
Options -Indexes # запрещаем выдавать содержимое пустых каталогов
DirectoryIndex index.php # устанавливаем индексный файл
#Далее устанавливаем правила маршрутизации
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|assets|sitemap\.xml)
RewriteCond %{REQUEST_URI} !\.(css¦js¦jpg¦gif)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]


Теперь мы избавились от ненужного хвоста, и получили чистый урд вида вашсайт/модуль.

Следующим шагом придумаем структуру УРЛов.
Далеко ходить не будем и сделаем примерно следующее


  • Корень сайта - выдаём страницу приветствия
  • /login -авторизация
  • /profile - профиль пользователя
  • /donate - страница донейшенов
  • /* - страница с любым адресом
  • /forum - список топиков форума
  • /forum/(:num) - любой топик форума


Возможно, далее что-то добавим, или изменим.

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

Всем спасибо.

P.S. если эта затея Вам интересна и нужна, то буду продолжать. Если нет - значит, нет.
imt Дата: Пятница, 27.07.2018, 02:12 | Сообщение # 2
Новичок
Сообщений: 2
Статус: Offline
Цитата CrazyProger ()
CodeIgniter. Почему его? Прост, гибок

ахахах, смешно)
ps. проще с нуля написать ucp, а для форума использовать готовый движок)
Versalski Дата: Среда, 01.08.2018, 02:46 | Сообщение # 3
Новичок
Сообщений: 17
Статус: Offline
Цитата imt ()
ахахах, смешно)
ps. проще с нуля написать ucp, а для форума использовать готовый движок)

Ну, это смотря какой сложности нужна UCP, там же админка может, другие навороты типа аукционов как на аризоне или отчётов как на адвансе, а на счёт форума однозначно согласен.

Добавлено (01.08.2018, 02:57)
---------------------------------------------
И ещё, современные сервера вроде как должны предполагать шифрацию паролей, и не устаревший md5, а что-то другое. Не помню чем там щас хэшируют.

CrazyProger Дата: Среда, 01.08.2018, 09:40 | Сообщение # 4
Новичок
Сообщений: 4
Статус: Offline
Цитата Versalski ()
Ну, это смотря какой сложности нужна UCP, там же админка может, другие навороты типа аукционов как на аризоне или отчётов как на адвансе, а на счёт форума однозначно согласен.
Добавлено (01.08.2018, 02:57)
---------------------------------------------
И ещё, современные сервера вроде как должны предполагать шифрацию паролей, и не устаревший md5, а что-то другое. Не помню чем там щас хэшируют.


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

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

Ну, и последнее, как я уже говорил, нужный функционал нарастим по пожеланиям. Хоть аукционы, хоть репорты.
Toopie Дата: Пятница, 03.08.2018, 08:12 | Сообщение # 5
Боец
Сообщений: 122
Статус: Offline
Код

'pconnect' => FALSE,
'cache_on' => FALSE,
'cachedir' => ''


Вот этого прикола не понял. Ты уверен, что эти параметры так и должны быть указаны?


лучший в мире самп сервер 185.159.129.71:7777 лидерки админки да

Сообщение отредактировал Toopie - Пятница, 03.08.2018, 08:13
  • Страница 1 из 1
  • 1
Поиск: