Reputation Activity
-
_Dark_ got a reaction from CNoise in Bullio Engine - анонсМне кажется, что мне еще рано лезть в IPB
Я пока чего-нибудь сам не сделаю, все равно не до конца буду понимать как все работает.
Приведу код из index.php.
/* Подключаем базу данных...*/
require_once BULLIO_PATH.'/System/Applications/Database/Database.php';
/* ...реестр...*/
require_once BULLIO_PATH.'/System/Kernel/Registry/Registry.php';
/* ...и само ядро.*/
require_once BULLIO_PATH.'/System/Kernel/Kernel/Kernel.php';
/* Подключаем контроллер приложений...*/
require_once BULLIO_PATH.'/System/Applications/Applications/Applications.php';
/* ...и запускаем его. */
$apps = new Applications();
/* Запускаем шаблонизатор */
$tpl = $apps->Run('Templater', 'default'); // Первый параметр - название приложение, существует или нет - проверяется автоматически. Второй параметр - параметр для запуска, в данном случае название шаблона.
/* Запускаем приложение подготовки к выводу */
$web = $apps->Run('Web'); // В приложении Web определяется приложение по умолчанию, производятся с ним действия и отдаются шаблонизатору.
/* Рендерим страницу */
$tpl->render(); // Вывод страницы в браузер
Теперь насчет приложений, пример User_public.php:
class User extends Kernel { // Название класса "User" совпадает с названием файла и названием приложения. Все приложения, кроме первых двух - Database и Registry наследуют ядро
private $info = null;
private $banned = false;
function User($login, $password) { // Конструктор класса, ф-ия вызывается при запуске приложения
$this->_Kernel(); // Инициализация ядра, функция наследуется из Kernel
if($this->login($login, $password)) {
$this->setUserData();
$_SESSION['user_id'] = $this->info['id'];
$_SESSION['user_pass'] = $this->hash($this->info['password']);
}
else return FALSE;
}
[/code] После инициализации ядра ф-ей _Kernel(), в приложении автоматически инициализируются приложения Database и Registry. Например, если мы хотим узнать есть пользователь или нет с указанным логином и паролем, делаем так: [code]$this->Database->query("SELECT * FROM `users` WHERE `id` = '$login' AND `password` = '$password'"); // Database - инициализируется в Kernel и наследуется приложением (extends Kernel)
if($this->Database->num_rows() == 1) { // Если количество полей равно одному, то будем считать, что мы авторизованы.
echo 'Авторизован!'
}[/code] С реестром работать проще, в нем хранятся все настройки всех приложений. Общая структура реестра: Application -> Section -> Key = Value Например, нам необходимо получить настройку "site_title" из приложения Web. Настройка хранится в секции "site_settings", поэтому делается так: [code]
$site_title = $this->Registry->get('Web', 'site_settings', 'site_title');
[/code] Насчет самого шаблона как в IPB, я еще сам не до конца определил как все будет работать. Или само приложение будет производить вывод либо производить вывод будет приложение Web вместе с Tempater. Скорее всего второй вариант. Т.е., если нам надо отобразить форму логина, то мы сделаем так: [CODE]$this->tpl->load_sub_template('login.phtml');[/code]
и на этом можно заканчивать.
Сам шаблонизатор загрузит шаблон, обработает его совместно с приложением Web и выведет его на экран.
Я сейчас ищу шаблон в качестве основного, мне подойдут шаблоны от DLE, так что если кто-нибудь знает хороший шаблон для DLE (любой версии), то дайте название, пожалуйста
И да, насчет названия: слово "Bullio" сгенерировано PHP скриптом :)
-
_Dark_ got a reaction from CNoise in Bullio Engine - анонсВ этой теме я собираюсь повествовать народу, чем я решил серьезно заняться в ближайшее время.
А заняться я решил PHP разработкой. Первоначально я собирался написать систему мониторинга игровых серверов, но после решил взяться за более глобальную вещь. Пишется "чистая" система, на которую при помощи дополнительных приложений можно нарастить то, что вам нужно. В частности, тот же игровой мониторинг.
Но обо всем поподробнее.
Система построена с применением ООП, нет процедурного программирования и не планируется. Вывод отделен от обработки, некое подобие шаблона MVC (Модель -> Отображение -> Контроллер).
На данный момент, я закончил написание основной структуры системы.
Существует 3 главных класса скрипта - это Database (работа с базой данных), Registry (реестр данных) и Kernel (который объединяет в себе и подключает два предыдущих приложения).
Общую структуру работы можно представить так:
Предположим, мы хотим авторизовать пользователя по логину и паролю.
index.php -> Kernel -> Запуск приложения User -> Запуск действия login -> Получение данных от класса Database -> Класс Templater -> отображение вывода.
Теперь поподробнее.
Все запросы идут к главному файлу - index.php.
В нем подключается роутер запросов, который выполняет функцию "телефониста", он соединяет запрос с приложением.
Далее выполняется инициализация приложения Applications, которое управляет всеми приложениями системы.
Командой Applications->Run() запускается приложение User. Командой Applications->RunAction() запускается действие login.
Выполняется инициализация ядра и класса Database. Из базы данных получаются данные о введенных логине и пароле, далее идет обработка, результат передается шаблонизатору, который отображает страницу, содержащую информацию о том, что либо мы авторизовались, либо неверный логин или пароль.
Запрос для авторизации имеет вид:
Адрес_сайта/?/user/login/
Это универсальный вид, который будет работать на любом веб-сервере.
Для Apache с его Mod_rewrite вид запроса изменится:
Адрес_сайта/user/login/
Общая структура файлов системы такова:
- Data
-- Templates
- Applications // Приложения установленные пользователем
- System
-- Applications // Системные приложения
--- User // Не буду перечислять все, возьмем для примера User
---- Controllers
----- User_admin.php // Файл для Админ-Центра
----- User_public.php // Файл для посетителей
---- Templates // Шаблоны приложения
-- Kernel
--- Kernel
---- Kernel.php //ядро системы
--- Registry // Работа с реестром
--- Database // Работа с Базой Данных
Список системных приложений на данный момент (которые включены в систему):
Access Rights // права доступа пользователей
Applications // Работа с приложениями
Database // Работа с базой данных
Error // отображение критических ошибок системы
Router // Роутер запросов
Templater // Шаблонизатор
User // Пользователи
Web // подготовка сайта к выводу на экран
[/code]
Изначально задумывается, что все будет автоматизировано.
Допустим, мы хотим создать игровой мониторинг серверов.
Скачиваем основу - Bullio Engine, скачиваем приложение мониторинга.
Заходим в АЦ, там просто загружаем архив с приложением и оно само устанавливается. Никаких заморочек с файлами, как в DLE.
Вот в принципе все, что я хотел написать.
Зачем? Услышать ваше мнение об этом, если есть люди имеющие опыт в этом деле - буду рад получить советы и замечания от них :)
-
_Dark_ got a reaction from Prowler in IP.Board 3.3.x, 3.2.x, and 3.1.x Critical Security Update (6 November 2012)Добавил обновление для IP.Board 3.2.
Обновил наши релизы IP.Board 3.2.3 и 3.3.4.
-
_Dark_ got a reaction from Prowler in IP.Board 3.3.x, 3.2.x, and 3.1.x Critical Security Update (6 November 2012)Обновил первое сообщение.
Версию для 3.2.x выложу позже.
-
_Dark_ reacted to € WinsanT in [NEED_HELP!!!]Кодер для допиливания IPBDj_Krauts, Да вы, батенька, некрофил....
-
_Dark_ got a reaction from Fever in Система отзывов 1.3.0 RusВ приложениях в АЦ нажмите на редактировать около него и измените Публичное имя приложения.
-
_Dark_ reacted to € WinsanT in Маленькая игрушка за маленькую мышкуИстория:
1. Игровое окно
2. Наша мышка ( в данный момент это Я )
3. Наша норка, в которую мы должны "притащить" сыр
4. Наш Шаман - Он и строит "Все чудеса света" но в основном фантазия у всех игроков "однообразная"
5. Собственно наш СЫР (только его закрыла мышка своей жирной тушкой)
Что нам будет нужно!
Мышь
Играя за мышь, вы имеете лишь одну цель — добраться до сыра и вернуться с ним в безопасную норку. Мышь управляется с помощью «стрелочек» или клавиш WASD. Мышь, помимо движений, умеет прыгать и приседать. Мыши идеально олицетворяют социум, в котором царит беспорядок, где никто не знает друг друга и никто не знает, что собираются делать другие. Результатом является беспорядочный бег мышей, иногда фатальный для большинства находящихся на карте. В редакторе карт можно создавать карты, командой «/room название комнаты» можно менять комнату. Ваша задача с помощью шамана попасть в норку с сыром и желательно быстрее всех.
Шаман
Шаман — это мышь, которая может призывать различные физические объекты, которые должны помочь мышам добраться до сыра и вернуться с ним. Шаманом становится мышь, имеющая наибольшее количество очков. После прохождения раунда Шаман становится обычной мышью, его очки обнуляются и в последующем набираются снова. От остальных мышей Шаман отличается метками на теле и перьями на голове, также он может зайти в «норку» только в том случае, если все мыши дойдут до норки с сыром, либо проиграют (например, упадут в пропасть). Ассортимент предметов, доступных Шаману, зависит от карты. На некоторых картах может быть два шамана, отличающихся цветом надписи с ником и титулом (розовый и голубой). Причём иногда на карте имеются две норки различного цвета (соответствующего цвету шамана), что подразумевает конкуренцию между шаманами за сырки: каждый шаман стремится отправить побольше мышей с сыром в свою норку. Обычно такая конкуренция сводится к попыткам шаманов сначала сбросить друг друга, а потом уже «заниматься» мышами.
Кнопка C: Позволяет прикрепить создаваемый объект к уже существующему неподвижно. Это соединение отображается жёлтой точкой.
Кнопка V: Позволяет прикрепить создаваемый объект к уже существующему подвижным соединением (объекты могут поворачиваться друг относительно друга). Отображается голубой точкой.
Кнопка B: Создаёт глобальную привязку к объекту. Объект с такой привязкой может быть прикреплён к любому месту на карте и сможет вращаться вокруг крепления. Отображается красной точкой.
Кнопка N: Позволяет прикрепить один объект к другому соединением-мотором, объекты соединённые таким образом будут сами поворачиваться вокруг соединения. Отображается голубой точкой со стрелочкой указывающей направление поворота. Также существует крепление "J", крутящееся в противоположную сторону.
Добавлять соединения к большинству объектов можно не только по центру, но и по краям, для этого следует нажать кнопку соединения несколько раз. Используйте это для создания различных приспособлений из нескольких объектов. Соединения C, V, N, J можно использовать с любыми объектами. Крепление B можно использовать только с планками и только посередине. Для шарика любая из 5 кнопок создаёт верёвочку, при помощи которой можно привязать шарик к уже существующему объекту. Попробуйте сами и проверьте, что может сработать, а что нет!
Так же есть режим Hardmode. Шаман может в редакторе создать объект из двадцати элементов в любых связях и затем на каждой карте один раз использовать его. Но используя hardmode нельзя пользоваться спиритом (вспышка, которая не имеет радиуса и позволяет придать мышам дополнительное ускорение) и не может использовать красные соединения. В статистике есть отдельная колонка, в которой подсчитываются мыши, спасенные в этом режиме. За спасённых в режиме hardmode мышей можно получить отдельные титулы. Он доступен после 1000 спасенных мышей в обычном режиме.
-
_Dark_ got a reaction from ir0nworm in Как получить полностью русифицированный IP.Board 3.3.4Это тема поддержки статьи: Как получить полностью русифицированный IP.Board 3.3.4.
Здесь вы можете обсудить все вопросы, связанные с этой статьёй.
Дата добавления статьи: 04 Август 2012 - 17:38
Дата обновления статьи: 04 Август 2012 - 17:38
-
_Dark_ got a reaction from doublesh in Меню навигацииСтиль стандартный?
Если нет, то на стандартном стиле все нормально?
-
_Dark_ got a reaction from St1L75 in Одновременное отображение иконки группы и иконки званияВ поиске наберите
иконка и звание
и убедитесь в том, что поиск — это хорошо.
-
-
_Dark_ got a reaction from Marygold in Что значит звездочка * рядом с именем пользователя?Нет, вошел как скрытый пользователь.
-
_Dark_ got a reaction from masiania in визуальный редакторЯ там слово нормально пропустил.
-
_Dark_ got a reaction from masiania in визуальный редакторИзвиняюсь, ошибся, ipb_styles.css.
Если нету, то нужно смотреть только на готовом форуме с этим дизайном.
-
_Dark_ got a reaction from masiania in визуальный редакторЯ имел в виду мне или кому-нибудь другому посмотреть нужно.
-
_Dark_ got a reaction from masiania in визуальный редакторНу так вы адрес форума напишите то мне.
-
_Dark_ got a reaction from masiania in визуальный редакторНу да, ну да.
Вот я открыл ваш форум, вот я смотрю.
Цвет шрифта в сообщениях редактируется в ipb_styles.css.
Ищите там
.post_body .post
[/CODE]
Я вам это и говорил выше.
Оно там не один раз будет, это понятно, но там будет [i]color.[/i]
-
_Dark_ got a reaction from masiania in визуальный редакторЭтот цвет зависит от фона стиля.
Для этого, второго фона, это
.bg2 a
[/CODE]
в ipb_styles.css.
-
_Dark_ got a reaction from Vasek in Не работает сайтЕсли никто кроме вас так не говорит — значит вы не так говорите.
Все, хватит писать не по теме, останавливаемся.
-
_Dark_ reacted to Vasek in Не работает сайтВот с этого и надо было начинать, - что ВАм не понятно, а не говорить что я не о том о чем-то говорю. SQL укол это способ проникновения (взлома) вашего ресурса путем нахождения уязвимости или путем искусственно созданной уязвимости.
-
_Dark_ got a reaction from podvorie in Google Site Search 1.1.4 / Поиск Google по форумуА попробуйте это:
-
_Dark_ got a reaction from Solar in Не работает сайтЭто не столь важно.
Я немного не понял вашу реакцию на это, ведь по сути ваш сайт взломали полностью, раз смогли получить доступ к FTP. Не находите?
Я бы на вашем месте у хостера спрашивал логи подключений к FTP, поменял все пароли, а вы как-то не очень то и беспокоитесь.
-
_Dark_ got a reaction from masiania in визуальный редакторНет, так сделать нельзя.
-
_Dark_ got a reaction from masiania in визуальный редакторРедактируйте, что вам мешает?
Но визуальным редактором пользоваться нельзя.
-
_Dark_ got a reaction from Doogle in Поиск хука / дизайнаПлагиат — плохо.