Структура исходных файлов SMF
В этом уроке мы вкратце познакомимся с основными папками и файлами SMF 2.1, чтобы знать, за что они отвечают.
Вы конечно можете спросить на каком-нибудь форуме, где найти то-то и то-то, а потом сидеть и ждать ответа. Но гораздо проще иметь подобную информацию перед глазами.
Корневая директория⚓︎
| Директория | Описание |
|---|---|
| attachments | Файлы, загруженные пользователями (вложения) |
| avatars | Наборы аватарок, установленные на форуме |
| cache | Временные файлы (если включено файловое кэширование) |
| custom_avatar | Аватарки, загруженные пользователями |
| exports | Экспортированные данные профилей (когда пользователь делает экспорт данных профиля) |
| Packages | Файлы загруженных модификаций |
| Smileys | Наборы смайликов, установленные на форуме |
| Sources | Исходные файлы движка (бизнес-логика) |
| Themes | Установленные шаблоны (темы SMF, включая стандартную Curve) |
| Файл | Описание |
|---|---|
| cron.php | Файл, используемый для выполнения фоновых и запланированных задач форума |
| index.php | Ключевой файл, точка входа — здесь регулируются все маршруты форума |
| Settings.php | Файл базовых настроек форума (логин/пароль пользователя базы данных, текущий язык и пр.) |
| Settings_bak.php | Резервный файл настроек |
| SSI.php | Коллекция функций для доступа к информации форума через внешние файлы (скрипты, CMS и пр.) |
| ssi_examples.php | Пример использования функций из файла SSI.php (перейдите в браузере по адресу https://ваш_форум/ssi_examples.php для просмотра) |
Папка темы по умолчанию (Themes/default)⚓︎
Если вы захотите поменять какой-то элемент интерфейса, обязательно загляните в эту папку — Themes/default. При использовании нестандартной темы оформления многие файлы (если они отсутствуют в директории используемой темы) загружаются из папки темы по умолчанию. Например, если вы используете тему Other, и в директории Themes/Other есть файл Admin.template.php, то при посещении админки будет использоваться именно он. Если же такого файла там нет, загрузится аналогичный файл из темы по умолчанию — Themes/default/Admin.template.php. Именно поэтому директорию Themes/default лучше не трогать, даже если вы не пользуетесь темой по умолчанию.
Однако не спешите менять файлы шаблонов — для начала создайте копию используемой темы (Конфигурация => Оформление => Создать копию используемой по умолчанию темы), выберите её как основную, скопируйте в папку этой копии файл, который решили поменять — и только потом открывайте его для редактирования. Таким образом вы защитите себя от возможной «поломки» форума, а также от потери сделанных изменений при очередном обновлении движка.
| Директория | Описание |
|---|---|
| css | Файлы стилей темы оформления по умолчанию |
| fonts | Шрифты темы оформления по умолчанию |
| images | Изображения, используемые темой оформления по умолчанию |
| languages | Языковые файлы |
| scripts | Файлы скриптов JS/jQuery темы оформления по умолчанию |
Файлы стилей (Themes/default/css)⚓︎
По сути, это первая папка, с которой стоит начинать, если вы просто хотите изменить оформление некоторых деталей темы оформления. Главный файл для экспериментов — index.css.
Языковые файлы (Themes/default/languages)⚓︎
Это первое место, откуда вам следует начинать поиски, если вы захотите поменять какой-либо текст, используемый темой оформления. Для добавления собственных переменных используйте файл Themes/default/languges/Modification.{ваш_язык}.php.
Кроме того, для быстрого редактирования этих файлов в админке доступен соответствующий редактор по адресу _Конфигурация => Настройка языков => Редактировать_ (отдельная кнопка для каждого языка).
Совет
Для внесения поправок в русскую локализацию разумнее всего присоединиться к проекту в системе Crowdin.
| Файл | Описание |
|---|---|
| Admin.template.php | Основной шаблон для страниц админки |
| Agreement.template.php | Шаблон регистрационного соглашения |
| BoardIndex.template.php | Шаблон главной страницы форума (список разделов и т. п.) |
| Calendar.template.php | Шаблон календаря |
| Display.template.php | Шаблон страницы отдельной темы на форуме |
| Errors.template.php | Шаблон страницы ошибок (404 и т. д.) |
| GenericControls.template.php | Шаблон, отвечающий за вывод визуального редактора и кнопок под формой ввода |
| GenericList.template.php | Шаблон, отвечающий за интерфейс таблиц в админке |
| GenericMenu.template.php | Шаблон, отвечающий за вывод кнопок и выпадающих списков в различных менюшках админки |
| Help.template.php | Шаблон справочной информации |
| index.template.php | Основной макет текущей темы оформления |
| Likes.template.php | Шаблон, отвечающий за отображение контейнера с лайками («Мне нравится» и т. п.) под сообщениями |
| Login.template.php | Шаблон страницы авторизации |
| ManageAttachments.template.php | Шаблон секции управления вложениями в админке |
| ManageBans.template.php | Шаблон секции управления банами в админке |
| ManageBoards.template.php | Шаблон секции управления категориями и разделами в админке |
| ManageCalendar.template.php | Шаблон секции управления настройками календаря в админке |
| ManageLanguages.template.php | Шаблон секции управления локализациями (языками) в админке |
| ManageMail.template.php | Шаблон секции управления очередью сообщений в админке |
| ManageMantenance.template.php | Шаблон секции управления обслуживанием форума в админке |
| ManageMembergroups.template.php | Шаблон секции управления группами пользователей в админке |
| ManageMembers.template.php | Шаблон секции управления пользователями в админке |
| ManageNews.template.php | Шаблон секции управления новостями форума в админке |
| ManagePaid.template.php | Шаблон секции управления платными подписками в админке |
| ManagePermissions.template.php | Шаблон секции управления правами доступа в админке |
| ManageSchedulesTasks.template.php | Шаблон секции управления запланированными задачами в админке |
| ManageSearch.template.php | Шаблон секции управления настройками поиска в админке |
| ManageSmileys.template.php | Шаблон секции управления наборами смайликов а админке |
| Memberlist.template.php | Шаблон списка пользователей форума |
| MessageIndex.template.php | Шаблон страницы со списком тем внутри просматриваемого раздела |
| ModerationCenter.template.php | Шаблон центра модерации |
| MoveTopic.template.php | Шаблон страницы перемещения темы из одного раздела в другой |
| Notify.template.php | Шаблон страницы настроек уведомлений |
| Packages.template.php | Шаблон страницы менеджера пакетов в админке |
| PersonalMessage.template.php | Шаблон страницы со списком личных сообщений |
| Poll.template.php | Шаблон страницы создания и редактирования опросов |
| Post.template.php | Шаблон страницы создания и редактирования сообщений на форуме |
| Printpage.template.php | Шаблон страницы печатной версии просматриваемой темы на форуме |
| Profile.template.php | Шаблон страницы профиля |
| Recent.template.php | Шаблон странц последних сообщений и непросмотренных тем |
| Register.template.php | Шаблон страницы регистрации |
| Reminder.template.php | Шаблон страницы напоминания пароля |
| ReportedContent.template.php | Шаблон страницы просмотра всех присланных жалоб |
| Reports.template.php | Шаблон страницы управления отчётами в админке |
| ReportToMod.template.php | Шаблон страницы отправки жалобы на просматриваемый контент |
| Search.template.php | Шаблон страницы поиска |
| Settings.template.php | Шаблон страницы с настройками текущей темы оформления |
| SplitTopics.template.php | Шаблон страницы разделения просматриваемой темы |
| Stats.template.php | Шаблон страницы статистики форума |
| Themes.template.php | Шаблон секции управления списком и настройками установленных тем оформления |
| Who.template.php | Шаблон страницы «Кто онлайн» |
| Xml.template.php | Этот файл содержит различные xml-шаблоны, используемые движком |
Исходные файлы движка (Sources)⚓︎
Как правило, если вы не разработчик или не создатель каких-либо модификаций, в эту папку вам не стоит заглядывать. Менять что-либо вручную в этих файлах в настоящее время считается дурным тоном. Лучше используйте модификации на основе хуков.
Инструментарий⚓︎
Чтобы быстро найти нужный текст в языковых (и не только) файлах, воспользуйтесь соответствующими приложениями. Сгодится любой файловый менеджер (например, Unreal Commander или Total Commander), или текстовый редактор, который умеет открывать целые директории — к примеру, Visual Studio Code или Notepad++. А дальше просто с помощью встроенного поиска находите нужную вам строчку и изменяете её.