Архив за 19.02.2012

deHasher v1.0

Написал кодер/декодер md5/md5(md5())/sha1. При кодировании база автоматически расширяется, опционально можно использовать данные из внешних баз. Доступно API, подробнее о нём можно узнать на http://hash.ziggi.org/ в окне API(кнопка слева, снизу). База пока ещё пустая, поэтому по умолчанию используется md5 база от DarkByte.

Живой пример работы: http://hash.ziggi.org/
GIT: https://github.com/ziggi/deHasher

Cookie CMS. Некоторые новости. Определилась структура файлов и каталогов

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

Структура файлов и папок

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

Cookie-CMS
--- index.php
--- .htaccess
--- kernel (здесь находятся всё, что необходимо для базового функционирования)
    --- events.php (система событий, на которых основана связь всех модулей)
    --- functions.php (некоторые базовые функции)
    --- modules.php (управляет модулями)
--- modules
    --- example (пример обычного модуля)
        --- config.ini (конфигурационный файл модуля, если нет, то будет искаться файл index.php и имя темы примет имя папки)
        --- example.php (php код модуля, произвольное название, настраивается в config.ini)
        --- template (html/css код модуля)
            --- example.html
            --- style.css
    --- template (модуль шаблонов, будет идти в стандартной комплектации)
        --- config.ini
        --- template.php
        --- templates (шаблоны)
            --- default
                --- images
                --- index.html
                --- modules (шаблон может заменять html/css код модуля своим)
                    --- example
                        --- example.html
                        --- style.css
                --- style.css

Были мысли по поводу переноса некоторых папок в корень проекта, например templates/ удобнее было-бы видеть в корне, но если будет удобный интерфейс в админке и будет инсталятор шаблонов, то в этом не будет необходимости.

По поводу самой CMS

Как видно по структуре, в теле самой CMS(kernel/) будет находится незначительное количество скриптов. Это связано с тем, что весь функционал будет находиться в модулях. Функции по работе с базами данных, конфигурационные файлы, шаблоны, функции перехода по страницам и т.д., будут в виде модулей. Это и будет отличать Cookie-CMS от другой массы схожих разработок. Именно такую организацию работы я считаю лучшей, ведь абсолютно безграничная расширяемость позволит создавать совершенно любые проекты на его основе, от статичных сайтов-визиток, до высоко нагруженных форумов и порталов.

По поводу исходников

Исходники, конечно, будут в открытом доступе под лицензией GNU GPL(v2 или v3, ещё не решил). Пока их не будет, т.к. готово очень мало и всё может меняться очень глобально(уже при разработке структура файлов менялась 3-4 раза). Также не решил что использовать для хранения исходных кодов — Git или SVN. Склоняюсь к Git, но точно ещё ни в чём не уверен.

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

Pawn. Побитовые операторы

В Pawn, как и в любом языке программирования есть побитовые операторы. В Pawn они полностью идентичны операторам языка C.

Оператор сдвига влево (<<)

Этот оператор применяется для сдвига битов влево.
Пример:

new x = 3; // 3 = 11 (bin)
x = x << 2; // смещаем биты на 2 бита влево

После выполнения, x будет равняться 1100 (bin) и следовательно 12 (dec).

Для этого оператора доступен сокращённый синтаксис:

new x = 3; // 3 = 11 (bin)
x <<= 2; // смещаем биты на 2 бита влево

Результат выполнения кода будет идентичен вышеописанному.
Читать дальше »

Перейти к верхней панели