GiV Опубликовано 18 Октября 2003 Жалоба Поделиться Опубликовано 18 Октября 2003 • §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 - файлы для связи Вашего основного проекта с форумом. Первый позволяет выводить статистику форума на главной странице сайта, второй содержит задатки ЧПУ системы. Подробнее в комментариях самих файлов.Применение: довольно редко модифицируется из-за своей специфичности, так как на работу форума не влияют.[*]Директория sourcesBoards.php - файл, содержащий класс, отвечающий за вывод категорий и форумов, а так же только категорий и всевозможных статистик (Кто в Онлайн, Общая статистика, Дни рождения), на главной странице. Применение: изменение вывода списка форумов на главной странице, добавление новых статистик форума.Forums.php - отвечает за вывод содержимого форума, правил форума, пользователей, просматривающих форум.Применение: изменение вывода списка тем форума, списка подфорумов форума.functions.php - содержит рутинные функции, думаю только разработчики знают полное назначение всех функций. Содержит в себе три больших класса функций. Класс FUNC - содержит разнообразные функции от загрузки шаблонов из базы, до создания SQL-запросов. Класс DISPLAY - система работы с шаблонами. Класс SESSION - механизмы создания и удаления сессий пользователей, создание глобальной информации о пользователе и группе, в которую он входит.Применение: изменение стандартных механизмов, добавление новых рутинных функций.Moderate.php - модераторские функции: удаление, перемещение, закрытие/открытие, прикрепление тем, постов, опросов. Применение: добавление новых опций модерирования разделов.Post.php - навеное один из самых важных файлов. Класс представленный в этом файле предназначен для операций создания тем, ответа в них (с цитатой и без), редактирования сообщений. Собственно сам класс не содержит перечисленных выше функций, но он их подключает в нужный момент, так что нас в данном файле и будет интересовать система подключения.Применение: изменение процесса создания / добавления / редактирования / цитирования / голосованияSearch.php - поисковый модуль, интересен будет только гуру разбирающихся в БД, так как эффективный метод поиска это целая группа проблем.Применение: изменение функциональности поисковой системы (не рекоммендуется)Topics.php - класс вывода содержимого тем. Содержит функции для создания навигации по теме (разбиение темы на страницы, вывод последнего сообщения темы, вывод модераторских функций для администрации), вывода содержимого темы (в разных хронологических порядках, согласно фильтру), обработка сообщений.Применение: изменение вывода содержимого тем, оформления сообщений в темах.Usercp.php - функции для изменения профиля самим пользователем. Часть функций, содержится в самом Usercp.php, часть подключается через дочерний класс.Применение: создание новых опций для изменения их самим пользователем.[*]Директория sources/DriversmySQL.php - интерфейс для работы с БД mySQL. Позволяет упростить работу с БД, а так же создать более информативные отчеты об ошибках в запросах к БД.Применение: не изменяется.[*]Директория sources/libadd_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/miscattach.php - собственно реализовывает функцию отправки прикрепленного файла пользователюПрименение: не изменяетсяcontact_member.php - реализация функций для связи с пользователем через Instant Messaging клиенты и EmailПрименение: не изменяетсяprint_page.php - класс функция для представления темы форума в форме "Для печати"Применение: при необходимости изменения формы "Для печати"stats.php - генерация всевозможных статистик. Как то: вывод администрации форума, вывод статистики по запросам и времени выполнения скрипта и т.д.Применение: для добавления новых типов статистики, или удаления старых[*]Директория lang - в директории содержатся файлы, являющиеся языковыми файли модулей. Он содержит все возможные сообщения, которые могут быть выведены модулем из sources.Применение: в первую очередь для перевода сообщений форума на другие языки. Для добавления новых сообщений, которые будут использовать ваши модификации. Особо удобно сообщения ошибок, которые должна обрабатывать и выводить ваша модификация. Добавляются новые ошибки в языковой файл lang_error.php [*]Директория Skin - файлы этой директории содержат функции осуществяющие визуализацию (т.е. создают конечный html код, который и видят пользователи) работы модулей.Применение: для изменения/добавления визуализации работы модулей. Ну и конечно создания нового дизайна форума.Думаю на этот раз хватит информации. Если есть какие либо замечания или не до конца вам понятно назначение того или иного файла, то задавайте вопросы, попытаюсь разъяснить. • Анонс Что нас ожидает в следующем выпускеДадим время передохнуть тем кто пытается сам писать модификации и займемся просвящением тех кто устанавливает уже готовые. И потому постараемся подготовить следующие темы: [+] Как правильно ставить модификации, что бы потом не было мучительно больно за даром потраченное время. [+] Как переводить модифицированный форум на более новую версию движка. [+] Как удалять надоевшие модификации. [+] Ну и ответы на ваши вопросы если они возникнут. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Builder Опубликовано 19 Октября 2003 Жалоба Поделиться Опубликовано 19 Октября 2003 Vanish молодец Хорошо написано и понятно думаю, не мне судить Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
nafigator Опубликовано 25 Октября 2003 Жалоба Поделиться Опубликовано 25 Октября 2003 Уху-уху, самое время писать про 1.1.2 Простите.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Builder Опубликовано 25 Октября 2003 Жалоба Поделиться Опубликовано 25 Октября 2003 NaFigator Причем тут 1.1.2? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
IBResource Опубликовано 25 Октября 2003 Жалоба Поделиться Опубликовано 25 Октября 2003 NaFigator, эту статью можно воспринимать и для 1.2. Там изменений в файловой структуре почти нет. Только несколько файлов добавлено! Про 1.2 по файлам есть еще такая специфическая статья:http://www.ibresource.ru/forums/index.php?...=ST&f=16&t=1442 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
VerdoX Опубликовано 6 Ноября 2003 Жалоба Поделиться Опубликовано 6 Ноября 2003 а как сделать само распоковывающийся скин, тоесть как его запихнуть так что его можнобыло импортировать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Nirth Опубликовано 18 Июня 2004 Жалоба Поделиться Опубликовано 18 Июня 2004 я поискал на форуме и не нашел.в каком файле описываеться информация о юзере в топикахГруппа: УчастникиСообщений: 77Пользователь №: 1504Регистрация: 7 Сентября 2003вот эта информация в Topics.php ? если да то подскажите пожалуйста с какой строчки. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Phantom Опубликовано 18 Июня 2004 Жалоба Поделиться Опубликовано 18 Июня 2004 в каком файле описываеться информация о юзере в топикахВ skin_topics.php Добавлено в [mergetime]1087577188[/mergetime] а как сделать само распоковывающийся скин, тоесть как его запихнуть так что его можнобыло импортировать?Экспортировать из админки. Потом в папке archive_out будет архив! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sanjak Опубликовано 18 Июня 2004 Жалоба Поделиться Опубликовано 18 Июня 2004 Nirth в skin_topic.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Nirth Опубликовано 24 Июня 2004 Жалоба Поделиться Опубликовано 24 Июня 2004 можно еще один ламерский вопрос. в каком файле надо прописывать счетчики чтобы они внизу были(как на этом сайте). Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Mitos Опубликовано 24 Июня 2004 Жалоба Поделиться Опубликовано 24 Июня 2004 Nirth А .Поиск на что ?как поставить в низ кнопку 88х31 ?баннеры и счётчикии еще кучу тем по этому поводу Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
ZeT Опубликовано 20 Июля 2004 Жалоба Поделиться Опубликовано 20 Июля 2004 классно написано, но мало продолжение было бы неплохо....в частности интересует изменение/создание скинов на уровне пхп.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Loco_Russo Опубликовано 3 Августа 2004 Жалоба Поделиться Опубликовано 3 Августа 2004 Вопрос про скины. Я их ставил, убирал, модифицировал, экспортировал, импортировал. Короче эксперементировал. ...Не особо понимая, что что делаю, разумеется . Ну а теперь у меня есть 4 скина, которые работают, а в .../Skin сидят куча поддиректорий. Видимо, это остатки от моих эксперементов. Вопрос: есть простой способ узнать, какую директорию каждый из скинов использует? Где эта инфа прячется? Или в более подробном виде: как выбирается (создается) имя директории для скина, когда создаешь новый на базе имеющихся или при импорте? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
chris Опубликовано 4 Августа 2004 Жалоба Поделиться Опубликовано 4 Августа 2004 Loco_Russo Вопрос: есть простой способ узнать, какую директорию каждый из скинов использует? Где эта инфа прячется? Или в более подробном виде: как выбирается (создается) имя директории для скина, когда создаешь новый на базе имеющихся или при импорте? 1 - в админке в скинах и шаблонах , затем настройка скинов, будет список твоих установленых скинов.жми редактировать на тех которые поставлены, там ты узнаешь пути к папкам с картинками /style_images/... это чтобы почистить картинки...2 - а чтобы удалить ненужные скин папки - тут нада помучится...зайди в каждую папку скина, и отредактируй skin_global.php - там в нём где нить воткни 11111111 для первого скина, 22222222 для второго, 3333333333 для третьего ....... 10101010101 для десятого.затем в админке поставь на себя (админа, чтобы протестить, каждый скин) все скины по очереди, запоминай цифрки которые увидешь на главной странице своего форума... затем после пробежки по своим 4ём скинам удали те, которых ты не видел, я именно так тестю скины, так как чичас я вообще не могу импортировать, не пашут у меня скины... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Loco_Russo Опубликовано 5 Августа 2004 Жалоба Поделиться Опубликовано 5 Августа 2004 Да, хитрый способ. Но все-таки хотелось бы логику этого дела просечь. Наверное это дело где-нить в БД сидит. Уж точно не в коде. Бум поискать... А вообще, ни кто не видел ресурса для IPB с точки зрения программиста? Типа функции, переменные, классы. Их хеирархия, использование и пр. в том же духе. Сняло бы много вопросов. А то по коду без подсказки стремно ползать. Можно и на английском. ... Даже лучше. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
theIggs Опубликовано 5 Августа 2004 Жалоба Поделиться Опубликовано 5 Августа 2004 Собственно, SELECT * FROM ibf_skins;set_id - номер папки в Skin,img_dir - имя папки в style_images... А вообще, ни кто не видел ресурса для IPB с точки зрения программиста? Типа функции, переменные, классы. Их хеирархия, использование и пр. в том же духе. Сняло бы много вопросов.Эх, жаль, мало таких как ты. Действительно, было бы круто... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Наташенька610 Опубликовано 6 Августа 2004 Жалоба Поделиться Опубликовано 6 Августа 2004 огромное спасибоVanish за такое подробное и позновательное разъяснение. много взяла для себя и самое главное теперь понимаю, что за что отвечает! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Loco_Russo Опубликовано 7 Августа 2004 Жалоба Поделиться Опубликовано 7 Августа 2004 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 я все это ну ни как связать не могу Кстати версия у меня 1.2 Это та, которую IgorekM c BesTFileZ.Net сделал. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Alexander_Alexander Опубликовано 2 Сентября 2004 Жалоба Поделиться Опубликовано 2 Сентября 2004 А мона глупый вопрос? Откуда взять фалы самой поледней версии ИБП и ИБФ портала? И как поставить портал себе на сайт? МайСКЛ обязательна? Спасиб. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Builder Опубликовано 2 Сентября 2004 Жалоба Поделиться Опубликовано 2 Сентября 2004 Alexander_Alexander http://www.invisionboard.comМайСКЛ обязательна?обязательнА Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Alexander_Alexander Опубликовано 2 Сентября 2004 Жалоба Поделиться Опубликовано 2 Сентября 2004 Подскажите пожалуста! А где мона нарыть эту БД но чтобы бесплатно! И чтобы аккаунт не удалили через неделю? Спасибо! Ну неужели никто не знает БД нахаляву и навсегдп?Это возможно только в одном случае, если БД будет у тебя на компе. Ты сам подумай, кому надо за бесплатно держать у себя на сервере гигабайты баз данных халявщиков? Интернет услуги стоят денег, почему кто-то за тебя должен платить? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Alexander_Alexander Опубликовано 2 Сентября 2004 Жалоба Поделиться Опубликовано 2 Сентября 2004 Понял. Но бля мне надо всего для форума. И совсем не гиги. А так 10 метров. И такую БД Я НАШЁЛ. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Alexey2004 Опубликовано 13 Мая 2005 Жалоба Поделиться Опубликовано 13 Мая 2005 А вообще, ни кто не видел ресурса для IPB с точки зрения программиста? Типа функции, переменные, классы. Их хеирархия, использование и пр. в том же духе. Сняло бы много вопросов. А то по коду без подсказки стремно ползать. Можно и на английском. ... Даже лучше.<{POST_SNAPBACK}>Есть какие нибудь изменения? И будет ли продолжение? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Nogrogomed Опубликовано 16 Июня 2005 Жалоба Поделиться Опубликовано 16 Июня 2005 По поводу програмистской точки зрения я тоже хотел бы узнать. Ибо там такое нагромождение классов, что и не разберешься... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 16 Июня 2005 Жалоба Поделиться Опубликовано 16 Июня 2005 Никакого нагромождения. Всё логично.Просто чтобы рассказать о классах и наследованиях, надо как минимум чтобы слушатель знал ООП. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.