get_microtime().
Описание: Возвращает количество секунд и микросекунд, прошедших с 1 января 1970 года. Функция раскладывает строку с секундами и микросекундами в два вещественных числа, и складывает их результат.
Использование: Используется для подсчета времени загрузки страницы (времени выполнения скрипта). Время выполнения скрипта подсчитывается как разница между двумя замерами времени – в начале и в конце выполнения скрипта. Так как maincore.php загружается в первую очередь, то логично, что первый замер происходит в этом скрипте (немного ниже есть строка, которая сопоставляет именованной константе значение времени начала выполнения скрипта.).
С помощью данного подхода Вы можете не только оценивать время загрузки скрипта, но и время загрузки различных частей скрипта (например время выполнения скрипта), что, на мой взгляд, полезно при самостоятельной разработке.
Оптимизация: Совершенно такой же результат работы функции можно получить, используя функцию microtime() с параметром true. Таким образом, функция может быть заменена более простым кодом.
Однако, следует иметь в виду, что возможность использования параметра функции microtime() появилась только в PHP 5.0.0. Если Вы уверены, что будет использоваться такая, или более поздняя версия, то можете провести указанную замену.
Важно! При любых изменениях в коде могут возникнуть проблемы при обновлении CMS.
Предупреждение XSS через $_GET
Описание: $_GET содержит данные переданные в скрипт элементами формы или через адресную строку. Если в скрипт будут переданы скрипты, то это может привести к выполнению этих скриптов на стороне сервера, что даст возможность злоумышленнику получить конфидициальные данный с Вашего сайта. Избежать таких атак можно простой
В официальном релизе в случае возникновения внештатной ситуации пользователю ничего не выводиться и не сообщается. Скрипт просто прекращает работу. Однако Вы на свое усмотрение можете установить перед редирект на какой либо сайт, например на google.ru. Вывести сообщение. Предупредить администратора по e-mail и т.д.
Важно! Не в коем случае не удаляйте код проверки!
ob_start() и foter.php
Описание: Процедура формирования html кода CMS PHP-Fusion выглядит следующим образом: самым первым загружается maincore.php, затем выполняются выбранные скрипты и завершается все выполнением theme/templates/footer.php. В процессе выполнения скриптов вывод данных осуществляется в буфер вывода. Содержимое буфера выводиться в браузер клиента в скрипте footer.php. “echo handle_output($output);”
Модификация: Перед выводом содержимого, мы имеем переменную , которая содержит текст всей страницы, который можно подвергнуть дополнительной обработке. Например: подсчитать количество символов на странице, заменить какие-либо слова на ссылу в вику и т.д.
Поиск и подключение config.php
Описание: В данном фрагменте кода происходит подключение файла config.php, который содержит настройки базы данных. Видно, что сначала файл config.php ищется в директории вызывающего скрипта, если файл не найден, то к имени config.php добавляется ‘../’, что заставляет производить поиск в каталоге выше и т.д. Поиск завершается ошибкой, когда файл не найден на 5 каталогов выше.
Внимание!: Вы не можете создавать структуру каталогов глубже 5-го уровня. Такой глубины, в принципе, достаточно для большинства доработок. Если же возникают ошибки, то исправьте глубину поиска на необходимую.
Setup.php
Описание: Следующий фрагмент запускает установочный скрипт, если нет базы данных сайта. Фрагмент запускается всего один раз при установке CMS и в дальнейшем НЕ РАБОТАЕТ!, но тем не менее проверка осуществляется каждый раз при загрузке ядра.
Модификация: Удалите фрагмент, если считаете нужным.
multisite_include.php
Описание: Подключает перечень объявлений синонимов таблиц баз данных. При разработке модификаций PHP-Fusion, при обращении к базам данных, рекомендуется использовать эти синонимы. Лучше распечатайте этот скрипт, тем более, что он небольшой.
Не будет ошибки, если Вы обратитесь к таблице по имени, но идеология PHP-Fusion, требует использовать синонимы имен таблиц БД.
Установки сайта
Описание: Переменная $settings получает массив значений установок CMS.
Основные настройки
$settings[‘sitename’]-Имя сайта
$settings[‘siteurl ’]-Адрес сайта, как он указан в настройках
$settings[‘sitebanner]-Путь к файлу баннера сайта (без имени сайта). Полный путь получается $settings[‘siteurl ’].$settings[‘sitebanner’]
$settings[‘siteemail’]-Официальный e-mail сайта
$settings[‘siteusername’]-Логин супер-администратора сайта
$settings[‘siteintro’]-Приветствие сайта
$settings[‘description’]-Описание сайта
$settings[‘keywords’]-Ключевые слова, разделенные запятыми
$settings[‘footer’]-Текст подвала сайта
$settings[‘opening_page’]-Главная страница сайта
$settings[‘news_style’]-Число, показывающее количество колонок новостей (Значения: 0 – одна колонка; 1 – две колонки)
$settings[‘locale’]-Текущий язык (наименование каталога локали) сайта.
$settings[‘theme’]-Наименование темы (каталога темы)
$settings[‘default_search’]-Место поиска по умолчанию. При открытии search.php устанавливается по умолчанию.
$settings[‘exclude_left’]-Список выключенных левых панелей
$settings[‘exclude_upper’]-Список выключенных центральных панелей
$settings[‘exclude_lower’]-Список выключенных нижних панелей
$settings[‘exclude_right’]-Список выключенных правых панелей
Настройки даты
$settings[‘shortdate’]-Короткий формат даты
$settings[‘longdate’]-Расширенный формат даты
$settings[‘forumdate’]-Формат даты на форуме
$settings[‘subheaderdate’]-Подзаголовок формата даты
$settings[‘timeoffset’]-Временной сдвиг
Настройки форума
$settings[‘numofthreads’]-Кол-во тем на панели
$settings[‘forum_ips’]-Показывать IP-адреса?
$settings[‘attachmax’]-Максимальный размер файла аттача в байтах
$settings[‘attachtypes’]-Разрешенные типы файлов для загрузки на форуме
$settings[‘thread_notify’]-Разрешить уведомление на форуме о темах
$settings[‘forum_ranks’]-Включить систему рангов
$settings[‘forum_edit_lock’]-Запретить пользователям редактировать свои сообщения
Настройки регистрации
$settings[‘enable_registration’]-Разрешить систему регистрации
$settings[‘email_verification’]-Использовать проверку e-mail при регистрации
$settings[‘admin_activation’]-Новые участники активируются администрацией
$settings[‘display_validation’]-Отображать проверочный код
$settings[‘validation_method’]-Тип кода проверки (картинка - текст)
$settings[‘enable_terms’]-Включить правила
$settings[‘license_agreement’]-Текст правил
Настройки фотогаллереи
$settings[‘thumb_w’]-Размер превью (Ширина)
$settings[‘thumb_h’]-Размер превью (Высота)
$settings[‘photo_w’]-Размер фото (Ширина)
$settings[‘photo_h’]-Размер фото (Высота)
$settings[‘photo_max_w’]-Максимальный размер фото (Ширина)
$settings[‘photo_max_h’]-Максимальный размер фото (Высота)
$settings[‘photo_max_b’]-Максимальный размер файла в байтах
$settings[‘thumb_compression’]-Метод компрессии превью
$settings[‘thumbs_per_row’]-Превью в строке
$settings[‘thumbs_per_page’]-Превью на странице
$settings[‘photo_watermark’]-Использовать водяные знаки на фотографиях?
$settings[‘photo_watermark_image’]-Водяной знак
$settings[‘photo_watermark_text’]-Разрешить текстовое описание на фотографиях
$settings[‘photo_watermark_text_color1’]-Цвет названия альбома
$settings[‘photo_watermark_text_color2’]-Цвет описания альбома
$settings[‘photo_watermark_text_color3’]-Цвет названия фотографии
$settings[‘photo_watermark_save’]-Сохранить созданные водяные знаки
Другие настройки
$settings[‘tinymce_enabled’]-Использовать TinyMCE HTML редактор
$settings[‘smtp_host’]-SMTP хост
$settings[‘smtp_username’]-SMTP логин
$settings[‘smtp_password’]-SMTP пароль
$settings[‘bad_words_enabled’]-Разрешить фильтр плохих слов
$settings[‘bad_words’]-Список запрещенных слов
$settings[‘bad_word_replace’]-Слова для замены мата
$settings[‘guestposts’]-Разрешить гостям сообщения в мини-чате?
$settings[‘userthemes’]-Позволить пользователю изменять схемы?
$settings[‘newsperpage’]-Новостей на странице
$settings[‘numofshouts’]-Кол-во сообщений в мини-чате
$settings[‘flood_interval’]-Флуд-контроль мини-чата в секундах
$settings[‘maintenance’]-Режим обслуживания (вкл-выкл)
$settings[‘maintenance_message’]-Сообщение о режиме обслуживания