Перейти к контенту

Школа начинающего IPB строителя


GiV

Рекомендуемые сообщения

§0 Вспомнить все

Прежде чем приступать к новой части давайте вспомним, о чем мы говорили в предыдущей.

Для тех кто не читал предыдущей части, советую восполнить это пробел, не просто же так я вводную часть писал.

В прошлый раз речь у нас зашла о постановке задачи модификации.

Как мы выяснили, постановка является одним из важнейших этапов написания модификации.

Так как оно позволяет:

  • четко сформулировать задачу модификации, даже не прибегая к тонкостям структуры движка форума.
     
  • хотя бы приблизительно дать ответы на основные вопросы Что?, Где?, Когда?.
     
  • улучшить понимание того что и как нужно писать.

Как вы помните (а если не помните, то наверстать можно все там же) ответы на вопросы в поставленной нами задаче мы нашли, но они слишком расплывчаты, а нам нужна конкретика: "Как это сделать в Invision Power Board?".

Чтож давайте разбираться по порядку. Сегодня мы займемся описанием предназначения файлов IPB.

 

§1 Назначение основных файлов форумной системы Invision Power Board

Ниже приведен список файлов наиболее часто подвергающихся изменениям при написании модификаций. Список файлов дан для IPB систем версий 1.1.х.

  • Корневая директория форума
    • index.php - главный файл всей системы. На самом деле предствляет собой нечто pre-loader'а и фрейма. Первым является потому что подключает все стандартные классы (инструментарий) ввода-вывода, обработки ошибок и интерфейса Базы Данных [БД] (под словом интерфейс в данном случае стоит понимать набор инструкций для работы с БД). Фреймом же его можно назвать по тому, как он загружает для каждого отдельного случая (как то: вывод списка форумов, вывод списка тем в форуме, вывод сообщений в теме и т.д.) свой класс функций. Благодаря этому, вся система ссылок в системе строится через этот файл, а значит есть возможость для создания Человеко Понятных Урлов [ЧПУ].
      Применение: добавление новых действий в систему (использование как фрейм).
    • admin.php - аналог index.php, но для системы администрирования форума.
    • conf_global.php - файл настроек. IPB хранит свои настройки в файле, что конечно не очень хорошо, но зато эти настройки удобнее модифицировать (добавлять новые / удалять старые).
      Применение: добавление новых настроек системы (заметьте, системы, а не конкретного пользователя). В основном для вкл/выкл в админцентре.
    • ssi.php и show.php - файлы для связи Вашего основного проекта с форумом. Первый позволяет выводить статистику форума на главной странице сайта, второй содержит задатки ЧПУ системы. Подробнее в комментариях самих файлов.
      Применение: довольно редко модифицируется из-за своей специфичности, так как на работу форума не влияют.

    [*]Директория sources

    • Boards.php - файл, содержащий класс, отвечающий за вывод категорий и форумов, а так же только категорий и всевозможных статистик (Кто в Онлайн, Общая статистика, Дни рождения), на главной странице.
      Применение: изменение вывода списка форумов на главной странице, добавление новых статистик форума.
    • Forums.php - отвечает за вывод содержимого форума, правил форума, пользователей, просматривающих форум.
      Применение: изменение вывода списка тем форума, списка подфорумов форума.
    • functions.php - содержит рутинные функции, думаю только разработчики знают полное назначение всех функций. Содержит в себе три больших класса функций.
      Класс FUNC - содержит разнообразные функции от загрузки шаблонов из базы, до создания SQL-запросов.
      Класс DISPLAY - система работы с шаблонами.
      Класс SESSION - механизмы создания и удаления сессий пользователей, создание глобальной информации о пользователе и группе, в которую он входит.
      Применение: изменение стандартных механизмов, добавление новых рутинных функций.
    • Moderate.php - модераторские функции: удаление, перемещение, закрытие/открытие, прикрепление тем, постов, опросов.
      Применение: добавление новых опций модерирования разделов.
    • Post.php - навеное один из самых важных файлов. Класс представленный в этом файле предназначен для операций создания тем, ответа в них (с цитатой и без), редактирования сообщений. Собственно сам класс не содержит перечисленных выше функций, но он их подключает в нужный момент, так что нас в данном файле и будет интересовать система подключения.
      Применение: изменение процесса создания / добавления / редактирования / цитирования / голосования
    • Search.php - поисковый модуль, интересен будет только гуру разбирающихся в БД, так как эффективный метод поиска это целая группа проблем.
      Применение: изменение функциональности поисковой системы (не рекоммендуется)
    • Topics.php - класс вывода содержимого тем. Содержит функции для создания навигации по теме (разбиение темы на страницы, вывод последнего сообщения темы, вывод модераторских функций для администрации), вывода содержимого темы (в разных хронологических порядках, согласно фильтру), обработка сообщений.
      Применение: изменение вывода содержимого тем, оформления сообщений в темах.
    • Usercp.php - функции для изменения профиля самим пользователем. Часть функций, содержится в самом Usercp.php, часть подключается через дочерний класс.
      Применение: создание новых опций для изменения их самим пользователем.

    [*]Директория sources/Drivers

    • mySQL.php - интерфейс для работы с БД mySQL. Позволяет упростить работу с БД, а так же создать более информативные отчеты об ошибках в запросах к БД.
      Применение: не изменяется.

    [*]Директория sources/lib

    • add_poll.php - модуль для работы с опросами. Функций как таковых нет, кроме обработки самого процесса голосования.
      Применение: изменяется при необходимости модернизировать процесс голосования, т.е. очень редко
    • emailer.php - функции отправки e-mail. Так же включен интерфейс для работы с SMTP. Через данный интерфейс осуществляется вся работа форума с почтой.
      Применение: модификация подвергается очень редко, так как все что необходимо для удобной работы с почтой уже есть. Однако модуль подвергается модификации при возникновении проблем с кодировкой почты.
    • post_edit_post.php - включает в себя все функции необходимые для редактирования сообщения, на прямую не используется, а подключается через Post.php
      Применение: при необходимости изменения процесса редактирования сообщения.
    • post_new_post.php - реализует создание новой темы в форуме, подключается через Post.php
      Применение: для изменения процесса создания новой темы.
    • post_parser.php - один из важных модулей для работы с сообщениями. В модуле приведены функции необходимые для обработки BB тэгов, автоматической обработки http, ftp ссылок, обработки смайликов. Причем функции можно разделить на два больших класса:
      функции вызываемые при создании сообщений и функции вызываемые при редактировании сообщений.
      Применение: в основном при добавления/оптимизации обработки текста сообщений/подписи
    • post_poll.php - модуль для создания опросов
      Применение: изменяется при необходимости добавить новую функциональность опросам.
    • post_q_reply_post.php - реализация функций для ответа с цитатой. Обращаю внимание что не реализация тэга
      , а формы ответа с цитатой.
      Применение: модифицируется при изменении процесса создания сообщений с цитатой
    • post_reply_post.php - модуль для создания простого ответа в тему
      Применение: модифицируется при изменении процесса создания простых сообщений
    • usercp_functions.php - функции, отвечающие за изменение профиля пользователя.
      Применение: аналогично Usercp.php

    [*]Директория sources/misc

    • attach.php - собственно реализовывает функцию отправки прикрепленного файла пользователю
      Применение: не изменяется
    • contact_member.php - реализация функций для связи с пользователем через Instant Messaging клиенты и Email
      Применение: не изменяется
    • print_page.php - класс функция для представления темы форума в форме "Для печати"
      Применение: при необходимости изменения формы "Для печати"
    • stats.php - генерация всевозможных статистик. Как то: вывод администрации форума, вывод статистики по запросам и времени выполнения скрипта и т.д.
      Применение: для добавления новых типов статистики, или удаления старых

    [*]Директория lang

    - в директории содержатся файлы, являющиеся языковыми файли модулей. Он содержит все возможные сообщения, которые могут быть выведены модулем из sources.

    Применение: в первую очередь для перевода сообщений форума на другие языки. Для добавления новых сообщений, которые будут использовать ваши модификации. Особо удобно сообщения ошибок, которые должна обрабатывать и выводить ваша модификация. Добавляются новые ошибки в языковой файл lang_error.php

     

     

    [*]Директория Skin

    - файлы этой директории содержат функции осуществяющие визуализацию (т.е. создают конечный html код, который и видят пользователи) работы модулей.

    Применение: для изменения/добавления визуализации работы модулей. Ну и конечно создания нового дизайна форума.

    Думаю на этот раз хватит информации. Если есть какие либо замечания или не до конца вам понятно назначение того или иного файла, то задавайте вопросы, попытаюсь разъяснить.

     

    Анонс Что нас ожидает в следующем выпуске

    Дадим время передохнуть тем кто пытается сам писать модификации и займемся просвящением тех кто устанавливает уже готовые. И потому постараемся подготовить следующие темы:

     

    [+] Как правильно ставить модификации, что бы потом не было мучительно больно за даром потраченное время.

    [+] Как переводить модифицированный форум на более новую версию движка.

    [+] Как удалять надоевшие модификации.

     

    [+] Ну и ответы на ваши вопросы если они возникнут.

Ссылка на комментарий
Поделиться на других сайтах

NaFigator, эту статью можно воспринимать и для 1.2. Там изменений в файловой структуре почти нет. Только несколько файлов добавлено!

 

Про 1.2 по файлам есть еще такая специфическая статья:

http://www.ibresource.ru/forums/index.php?...=ST&f=16&t=1442

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • 7 месяцев спустя...

я поискал на форуме и не нашел.

в каком файле описываеться информация о юзере в топиках

Группа: Участники

Сообщений: 77

Пользователь №: 1504

Регистрация: 7 Сентября 2003

вот эта информация в Topics.php ? если да то подскажите пожалуйста с какой строчки.

Ссылка на комментарий
Поделиться на других сайтах

в каком файле описываеться информация о юзере в топиках

В skin_topics.php

Добавлено в [mergetime]1087577188[/mergetime]

а как сделать само распоковывающийся скин, тоесть как его запихнуть так что его можнобыло импортировать?

Экспортировать из админки. Потом в папке archive_out будет архив!

Ссылка на комментарий
Поделиться на других сайтах

Nirth

А .Поиск на что ?

как поставить в низ кнопку 88х31 ?

баннеры и счётчики

и еще кучу тем по этому поводу :D

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...
  • 2 недели спустя...

Вопрос про скины. Я их ставил, убирал, модифицировал, экспортировал, импортировал. Короче эксперементировал. ...Не особо понимая, что что делаю, разумеется :D . Ну а теперь у меня есть 4 скина, которые работают, а в .../Skin сидят куча поддиректорий. Видимо, это остатки от моих эксперементов.

 

Вопрос: есть простой способ узнать, какую директорию каждый из скинов использует? Где эта инфа прячется? Или в более подробном виде: как выбирается (создается) имя директории для скина, когда создаешь новый на базе имеющихся или при импорте?

Ссылка на комментарий
Поделиться на других сайтах

Loco_Russo

Вопрос: есть простой способ узнать, какую директорию каждый из скинов использует? Где эта инфа прячется? Или в более подробном виде: как выбирается (создается) имя директории для скина, когда создаешь новый на базе имеющихся или при импорте?

 

1 - в админке в скинах и шаблонах , затем настройка скинов, будет список твоих установленых скинов.

жми редактировать на тех которые поставлены, там ты узнаешь пути к папкам с картинками /style_images/...

 

это чтобы почистить картинки...

2 - а чтобы удалить ненужные скин папки - тут нада помучится...

зайди в каждую папку скина, и отредактируй skin_global.php - там в нём где нить воткни 11111111 для первого скина, 22222222 для второго, 3333333333 для третьего ....... 10101010101 для десятого.

затем в админке поставь на себя (админа, чтобы протестить, каждый скин) все скины по очереди, запоминай цифрки которые увидешь на главной странице своего форума...

 

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

Ссылка на комментарий
Поделиться на других сайтах

Да, хитрый способ. Но все-таки хотелось бы логику этого дела просечь. Наверное это дело где-нить в БД сидит. Уж точно не в коде. Бум поискать...

 

А вообще, ни кто не видел ресурса для IPB с точки зрения программиста? Типа функции, переменные, классы. Их хеирархия, использование и пр. в том же духе. Сняло бы много вопросов. А то по коду без подсказки стремно ползать. Можно и на английском. ... Даже лучше.

Ссылка на комментарий
Поделиться на других сайтах

Собственно,

SELECT * FROM ibf_skins;

set_id - номер папки в Skin,

img_dir - имя папки в style_images...

 

А вообще, ни кто не видел ресурса для IPB с точки зрения программиста? Типа функции, переменные, классы. Их хеирархия, использование и пр. в том же духе. Сняло бы много вопросов.

Эх, жаль, мало таких как ты. :D Действительно, было бы круто...

Ссылка на комментарий
Поделиться на других сайтах

огромное спасибоVanish за такое подробное и позновательное разъяснение. много взяла для себя и самое главное теперь понимаю, что за что отвечает! :D
Ссылка на комментарий
Поделиться на других сайтах

theIggs,

 

Что-то у меня это не так. Создал пару новых скинов. Назвал их delta and Alpha. Появился set_id 20. А потом сразу 23. А у меня и деректорий таких в Skin нету. Есть s1 - s10, а потом сразу s15, s16. И они все так и были до создания новых скинов.

 

Вот, что у меня в ibf_skins сидит:

uid  sname  sid  set_id  tmpl_id  macro_id  css_id  img_dir  tbl_width  tbl_border  hidden  default_set  css_method
1    Inv..   0   1       1        1         1       1        95%        #999999     0       1
19   now..   1   1       1        1         1       1        NULL       NULL        0       0
20   kolbasa 2   1       1        1         1       kolbasa  NULL       NULL        0       0            inline
21   delta   3   20      1        3         21      delta    NULL       NULL        0       0            inline
22   Alpha   4   23      20       4         22      Alpha    NULL       NULL        1       0            inline

То, что между uid 1 и 19, которых нету - это все скины, которые я ставил и убирал раньше из разных источников. Причем ни один из них не работал. 20 - 22 - это просто копии, которые я недавно сделал и немного модифицировал. Вроде с шаблонами и пр. все понятно. Но вот с директориями в Skin я все это ну ни как связать не могу :D

 

Кстати версия у меня 1.2 Это та, которую IgorekM c BesTFileZ.Net сделал.

Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...
А мона глупый вопрос? Откуда взять фалы самой поледней версии ИБП и ИБФ портала? И как поставить портал себе на сайт? МайСКЛ обязательна? Спасиб.
Ссылка на комментарий
Поделиться на других сайтах

Подскажите пожалуста!

А где мона нарыть эту БД но чтобы бесплатно! И чтобы аккаунт не удалили через неделю? Спасибо! :D

 

Ну неужели никто не знает БД нахаляву и навсегдп?

Это возможно только в одном случае, если БД будет у тебя на компе.

Ты сам подумай, кому надо за бесплатно держать у себя на сервере гигабайты баз данных халявщиков? ;) Интернет услуги стоят денег, почему кто-то за тебя должен платить?

Ссылка на комментарий
Поделиться на других сайтах

Понял. Но бля мне надо всего для форума. И совсем не гиги. А так 10 метров. И такую БД Я НАШЁЛ.
Ссылка на комментарий
Поделиться на других сайтах

  • 8 месяцев спустя...
А вообще, ни кто не видел ресурса для IPB с точки зрения программиста?  Типа функции, переменные, классы.  Их хеирархия, использование и пр. в том же духе.  Сняло бы много вопросов.  А то по коду без подсказки стремно ползать. Можно и на английском.  ... Даже лучше.

Есть какие нибудь изменения?

И будет ли продолжение?

Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
По поводу програмистской точки зрения я тоже хотел бы узнать. Ибо там такое нагромождение классов, что и не разберешься...
Ссылка на комментарий
Поделиться на других сайтах

Никакого нагромождения. Всё логично.

Просто чтобы рассказать о классах и наследованиях, надо как минимум чтобы слушатель знал ООП.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.