УСТАНОВКА INTELLECT BOARD 2.22 (версия от 26 декабря 2007 года)

1. Требования для установки:

1) Web-сервер, поддерживающий выполнение PHP-скриптов
2) PHP версии не ниже 4.2.0 или 5.0 (должна быть включена опция short_open_tag)
3) MySQL версии 3.23.53 или выше (рекомендуется 4.1 и выше) или PostgreSQL 8.1.3 с установленным модулем T2Search
4) базу данных с правами на создание таблиц и индексов и выполнение с ними основных действий: выборки, создания, удаления записей.
5) Не менее 4 Mb дискового пространства для скриптов и картинок и 5 Mb для базы данных (по мере роста форума требования к объему БД будут расти)
6) Для корректной работы с графическими файлами для PHP должно быть подключено расширение GD (рекомендуется GD2)
7) В большинстве случаев для корректной работы скрипту достаточно 3 Mb памяти, однако в ряде ситуаций (например, при загрузке графического изображения с выполнением преобразований над ним) этот объем может существенно увеличиваться.

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

Если вы выполняете обновления с предыдущих версий, не забудтье сделать резервную копию форума перед обновлением (наиболее часто при обновлении оказываются замененными файлы addons.php и langs/ru/rules.txt) и прочтите документ "Особенности обновления" который находится в дистрибутиве в файле !update!.txt.

Внимание: Intellect Board не работает с некоторми старыми версиями Denver!
В случае возникновения такой ситуации рекомендуем обновить Denver до последней версси, или  воспользоваться Small HTTP Server или настоящим Apache, а не тем, что входит в состав Denver.

2. Загрузка файлов на хостинг

Если на сервере установлена библиотека ZZIPlib, то все файлы, кроме install.php, можно заархивировать в файл iboard.zip и закачать на форум в виде ZIP-архива. Если этой библиотеки не установлено, то файлы следует загружать по FTP в двоичном (binary) режиме обычным способом (т.е. поштучно).

Закачивать форум следует в один из подкаталогов (в дальнейших примерах будем считать, что вы назвали этот подкаталог forum), вложенных в каталог, который предназначен для HTML-страниц (обычно он называется public_html, html, www, подробнее см. в FAQ вашего хостинга). НЕ СЛЕДУЕТ ПОМЕЩАТЬ СКРИПТЫ ФОРУМА В ПОДКАТАЛОГ cgi-bin! Если вы хотите сделать сайт, состоящий только из форума, то закачивайте скрипты прямо в каталог для HTML-страниц.

Права доступа.

Права доступа следует выставлять в зависимости от того, от чьего имени выполняется скрипт (эта информация выводится на первой странице вместе с остальной информацией о сервере). Возможны 2 варианта: 1) скрипт выполняется от вашего имени (имя пользователя совпадает с вашим основным логином для FTP), 2) скрипт выполняется от имени серверного пользователя (как правило, этот пользователь имеет имя nobody, apache или IIS_*).

Если скрипт выполняется от вашего имени, то права ставятся следующим образом:
- на каталоги config и temp достаточно выставить права 700 (иногда это обозначается как rwx------, разрешение на запись/чтение/выполнение владельцу и запрет эти действий группе и всем остальным).
- каталог styles и все его подкаталоги должны быть доступны владельцу для любых операций, всем остальным только на чтение/выполнение (права 755 или rwxr-xr-x).
- каталоги files и photos должны быть доступны владельцу для любых операций, всем остальным только на чтение/выполнение (права 755 или rwxr-xr-x).
- если вы планируете редактировать языковые файлы, то на все файлы в подкаталогах каталога /langs следует поставить права 644.
- остальным файлам следует выставить разрешения следующим образом: владелец имеет право на чтение/запись, группа - только на чтение (640 или rw-r-----), или так: владелец имеет право на чтение/запись, а группа и все остальные - только на чтение (644 или rw-r--r--).

Если скрипт выполняется от имени сервеного пользователя, то права необходимо выставить так:
- на каталоги config и temp - права 777 (любые действия разрешены владельцу, группе и всем остальным)
- на каталог styles и подкаталоги - также 777, на файлы в данных подкаталогах - 666 (чтение/запись разрешена владельцу, группе и всем остальным)
- каталоги files и photos должны быть доступны владельцу для любых операций, всем остальным только на чтение/выполнение (права 777 или rwxrwxrwx).
- если установка производится впервые, в корневом каталоге форума необходимо создать пустой файл addons.php и сделать его доступным для записи (права 666). Внимание: в состав дистрибутива этот файл не входит, его нужно создать самостоятельно!
- если вы планируете редактировать языковые файлы, то на все все файлы в подкаталогах каталога /langs следует поставить права 644
- остальным файлам следует выставить разрешения следующим образом: владелец имеет право на чтение/запись, а группа и все остальные - только на чтение (644 или rw-r--r--).

Внимание: если после установки форума вы устанавливаете какие-либо обновления, может потребоваться сделать некоторые файлы доступными на запись. В этом случае следует установить права такие же, как на файлы в каталоге /langs/ru.

3. Установка

После того, как все файлы (или ZIP-архив) загружены, следует запустить на сервере скрипт install.php. (Для этого необходимо ввести в броузере URL http://your_site/forum/install.php, где your_site - название вашего сайта, а forum - название подкаталога, в который вы установили форум).

Скрипт установки произведет поиск уже установленных в текущем каталоге версий Intellect Board (если они имеются) и предложить либо изменить их настройки, либо установить новую версию.

На следующем шаге будет произведена распаковка файлов (если они были загружены в виде ZIP-архива) и проверка их размеров. Если проверка пройдет успешно, то будет выведена форма с запросом параметров базы данных, которая будет использоваться для форума. Здесь необходимо указать следующую информацию:
- путь к каталогу на сервере, где находятся скрипты форума и URL форума. Cкрипт попытается автоматически определить путь и URL. В большинстве случаев это происходит корректно, и  вам достаточно просто нажать кнопку "Установить", чтобы перейти к следующему шагу установки. Если что-то не так, то вам необходимо узнать полный путь к вашему сайту в службе поддержки хостинга, и ввести его, добавив в конец название каталога, куда вы хотите установить форум. (Т.е. если полный путь к вашему сайту /var/www/iboard, а вы устанавливаете форум в каталог forum, то путь будет /var/www/iboard/forum/).
- тип СУБД (версия 2.19 поддерживает MySQL и PostgreSQL)
- имя пользователя, пароль и название базы данных, которые будут использоваться при подключении к базе данных (эту информацию вы должны были получить при регистрации сайта, если у вас ее нет - обратитесь в службу поддержки хостинга)
- префикс имен таблиц базы данных. Это общая часть названия таблиц БД, относящихся к данной установке Intellect Board, если у вас установлено несколько копий форума, то у каждой из них должен быть свой префикс (чтобы не возникало путаницы). Если вы не собираетесь устанавливать больше одного экземпляра форума, то рекомендуется использовать в качестве префикса ib_.
- пароль пользователя System. Пользователь System обладает полными и ничем неограниченными правами доступа к Центру Администрирования форума, поэтому выбирайте достаточно сложный пароль (рекомендации: пароль должен быть не менее 8 символов, и содержать большие и малые буквы, а также цифры или спецсимволы).
После того, как вся необходимая информация введена, скрипт установки произведет начальную настройку форума и запишет файлы конфигурации, после чего выдаст сообщение о том, что установка успешно завершена и предложит перейти в Центр Администрирования, где вы сможете провести провести настройку основных параметров форума.
По окончании установки возможна ситуация, когда не удастся автоматически удалить файл install.php. (Такое обычно бывает, когда скрипт выполняется от имени серверного пользователя). В этом случае при попытке перейти в Центр Администрирования будет выведена ошибка. Вам необходимо подключиться по FTP и удалить этот файл вручную, иначе вы не сможете войти в Центр Администрирования по соображениям безопасности.

Для того, чтобы начать отправлять сообщения на форум, вам необходимо создать в нем хотя бы 1 категорию и 1 раздел в ней. Это делается в разделе "Настройка разделов и категорий" в Центре Администрирования (самый первый пункт меню).

Обратите внимание: из соображений безопасности пользователь System не может посещать пользовательскую часть форума, поэтому для перехода к ней вам потребуется выбрать "Перейти на форум в качестве гостя". В дальнейшем вы можете создать обычного пользователя (пункт меню "Создать пользователя") и проставить ему права администратора. Такой пользователь будет иметь доступ как на пользовательскую часть форума, так в Центр Администрирования.

4. Кодовая страница MySQL

Если при работе с MySQL возникают проблемы с кодовыми страницами (такие проблемы чаще всего возникают в ранних версиях PHP 5.x), то следует отредактировать файл db/mysql.php и раскомментировать (убрать // в начале) там следующую строку в функциях db_connect и db_pconnect:
mysql_query("SET NAMES 'cp1251'",$lastlink);
Примечание: данный способ не будет работать в MySQL версий 3.x.

5. Некоторые особенности прав доступа в Intellect Board.

На форуме имеется 3 специальных пользователя, которые не могут совершать никаких действий на форуме со следующими зарезервированными именами: Guest (гость), System(суперпользователь), NewUser(параметры нового пользователя). Профили Guest и NewUser можно редактировать в Центре Администрирования форума, они используются для определения настроек форума, которые видны гостю, а также настроек, предлагаемых по умолчанию новым пользователям.

Почти для любого действия в разделе можно выставить минимальный уровень доступа, который необходим для его совершения. Уровни доступа организованны следующим образом: каждому уровню сопоставляется числовое значение в диапазоне от 1 до 999 (а точнее, до 1023, но уровни 1000 и выше дают право входить в Центр Администрирования). Пользователю может быть присвоен базовый уровень, а также локальный уровень для каждого раздела форума. Числовые значения -1,0, 1024 являются зарезервированными для изгнанного участника, гостя, и пользователя System.

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

6. Поддержка

Если у вас возникли вопросы по установке или настройке форума, обращайтесь на официальный форум его поддержки по адресу http://intboard.ru/
Для наиболее быстрого и эффективного получения ответа напоминаем, что кроме выкладывания сообщения об ошибке, необходимо также кратко охарактеризовать ситуацию, когда ошибка возникла (например, "при добавлении фото", или "при просмотре новости") и указывать, какие права имеются у пользователя, у которого эта ошибка произошла.
Там же вы можете высказать предложения и пожелания, а также прислать свои версии дизайна Intellect Board.

7. Логотип форума

Начиная с версии 2.19 в Intellect Board логотип должен находиться в каталог styles/имя_стиля с именем logo.gif. Если один и тот же логотип подходит для нескольких стилей, он должен быть скопирован в каждый каталог. Опция задания URL логотипа через соответствующую опцию в АЦ остается доступной и имеет смысл только для стилей, не использующих интегрированный шаблон, в целях обратной совместимости. На стили, использующие интегрированный шаблон, эта опция влияния не оказывает (см. раздел "Обновление до 2.19").

8. Человеко-читаемые URL

В версии 2.19 добавлена такая возможность, как задание человекочитаемых URL (HURLs) как для разделов, так и для тем. Для того, чтобы их использовать, необходимо включить соответствующую опцию в "Основных настройках форума", а также внести необходимые настройки на сервер. На сервере Apache это может быть сделано двумя способами: либо с помощью добавления ErrorHandler для ошибки 404,
либо с помощью mod_rewrite. И то и другое настраивается в файле .htaccess

Для включения mod_rewrite (если он есть на хостинге) нужно прописать в .htaccess следующее (если форум ставится не в корень сайта, в директиве RewriteBase / нужно заменить на относительный URL форума без / в конце, например, /forum):
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php

Обратите внимание: названия разделов не должны совпадать с именами скриптов (без учета расширения) в составе IntB (типичная ошибка -- раздел с HURL news)!

Для включения вызова скрипта через обработчик ошибки 404 нужно прописать в .htaccess такую строку:

ErrorDocument 404 /forum/index.php

9. Дизайн

Intellect Board позволяет создавать любое количество вариантов дизайна, называемых «наборами стилей».  Каждый набор стилей состоит из CSS-файла, определяющего цвет, шрифты и некоторые другие параметры отображения, основного шаблона, определяющего вид общей части форума, и нескольких файлов-шаблонов, которые содержат функции для вывода HTML-кода, которые вызываются из основных скриптов. Каждый из наборов стилей находится в одном подкаталоге каталога styles, при этом имя файла CSS совпадает с названием подкаталога, основной шаблон называется templat.php, а шаблонов – с именем модуля, для которого они предназначены.

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

При создании нового набора стилей в его каталог автоматически копируется CSS-файл родительскго стиля (при этом производится его переименование), все графические файлы и основной шаблон template.php. Прочие шаблоны PHP автоматически не копируются, поэтому если вам необходимо внести в какой-либо из файлов-шаблонов изменения, скопируйте его вручную в новый стиль и только после этого редактируйте.

Файлы CSS можно редактировать двумя способами: либо прямо на сервере с помощью редактора стилей в Центре Администрирования, либо на компьютере пользователя.
Шаблоны можно редактировать только локально (т.е. необходимо сгружать их по FTP, редактировать, после чего загружать обратно). При редактировании файлов шаблонов следует сохранять имена функций и названия полей, форм, а также значения скрытых полей. Не рекомендуется изменять стиль по умолчанию (он может изменяться в дальнейшем с выходом новых версий Intellect Board), лучше создайте его копию и изменяйте ее.

10. Список функций для шаблонов

В основном шаблоне Intellect Board (а также в едином шаблоне в режиме обратной совместимости) доступны для вызова следующие функции:

main_action(); -- результат выполнения основного действия
main_location($locations); -- указатель на текущее местоположение на форуме
time_diff(); -- вывод времени выполнения скрипта
menu(); -- список разделов форума в виде меню
main_copyright(); -- вывод copyright-сообщения (должен присутствовать обязательно)
announce(); -- объявление форума
last_topics(количество, тип, сообщение); -- вывод списка последних тем (если количество не указано явно, оно считается равным 10), тип -- определяет тип раздела. 0 -- вывод из разделов любого типа, 1 -- только из стандарных форумов. Сообщение -- текст, который показывается над списком тем (этот параметр не обязателен).
active_topics(количество, тип, период); -- вывод списка наиболее активных тем (т.е. тех, в которых было больше всего сообщений и последнее обновление приходится за указанный в днях период), параметры количество и тип -- аналогичны параметрам last_topics
small_search_form(); -- малая поисковая форма (по всему форуму сразу без выбора подраздела и периода)
present_list(); -- список присутствующих на форуме/в разделе/в теме
fast_switch(); -- быстрое переключение между форумами с помощью Select
show_vote(номер_темы); -- отображения голосования из какой-либо темы в заданном месте
allowed_actions() -- cписок доступных пользователю действий
show_news_feed(раздел,заголовок,количество,период) -- вывод ленты новостей из указанного раздела в произвольной форме. Раздел -- номер раздела, из которого выводятся новости.
Заголовк -- текст, который должен выводиться в начале ленты.
Количество -- максимальное количество новостей, которое может быть выведено в ленте. 0 -- без ограничения по количеству.
Период -- количество дней, за которое должны выводиться новости (т.е. новости, отправленные более указанного количества дней назад, выводиться не будут). 0 -- без ограничения. Если заданы и период и количество, оба ограничения действуют одновременно (т.е. выводится не более количества новостей за указанный период).

11. Смайлики и аватары

В дистрибутив Intellect Board включен только минимальный набор смайликов и не включены аватары, однако сама возможность их поддержки в форуме присутствует. Вы можете загрузить любые понравившиеся вам смайлики и аватары после установки форума через пункт меню "Загрузка смайликов и аватаров" в Центре Администрирования.
Внимание: если при загрузке смайлика обозначение пишется обычным текстом (например, red или crying), рекомендуется окружить этот текст какими-либо спецсимволами (чтобы получилось что-нибудь вроде :red: и :crying:).

12. Резервное копирование

Начиная с версии 2.14 в Intellect Board включена возможность создания резервных копий содержимого базы данных. Резервная копия представляет собой файл с множеством SQL-запросов (так называемый дамп базы), что дает возможность проводить восстановление БД из резервной копии несколькими способами: с помощью скрипта установки Intellect Board, с помощью скрипта PhpMyAdmin или с помощью стандартного клиента mysql при наличии SSH-доступа на сервер (команда mysq<имя_файла.sql).
Резервная копия может сниматься двумя способами: а) выполнением через функцию exec программы mysqldump (более быстрый и надежный способ), б) если это по каким-то причинам не удалось, то дамп сниманиется средствами самого форума.
Дампы базы создаются в каталоге temp, имена файлов имеют формат имя_хоста_дата_случайнаячасть.sql. (Случайная часть состоит из 6 цифр от 0 до f и добавляется для того, чтобы злоумышленник не мог угадать имя файла). Список имеющихся файлов можно просмотреть с помощью пункта меню "Файлы резервных копий" в АЦ. Однако по соображениям безопасности скачивание файлов из данного каталога по протоколу HTTP запрещено с помощью .htaccess (внимание: данный запрет работает только в Web-сервере Apache, на других Web-серверах вы должны запретить скачивание самостоятельно). Вы можете либо скачивать файлы дампа по FTP, либо изменить настройки в .htaccess таким образом, чтобы только вы могли получить доступ к этим файлам (например, сделать проверку пароля или доступ по фиксированному IP-адресу). Также рекомендуется удалять файлы резервных копий с сервера сразу же после их скачивания на собственный компьютер.
Для того, чтобы обеспечить резервное копирование в PostgreSQL, необходимо один раз (перед первым копированием) выполнить запросы из файла psbackup.txt.
Примечание: при большом объеме базы данных возможны проблемы при снятии дампа из-за превышения объема памяти или времени выполнения скрипта.
В этом случае рекомендуем воспользоваться скриптом Sypex Dumper, который позволяет делать резервную копию базы по частям. Скрипт доступен по адресу: http://www.sypex.net

13. Файл .htaccess

Для более эффективной работы Intellect Board имеет смысл внести некоторые изменения в конфигурационный файл Web-сервера Apache. Так как разрешенные в этом файле директивы существенно различаются на различных хостингах, что приводит к ошибкам, в дистрибутив этот файл включен под именем htaccess.txt. В нем содержатся необходимые директивы + краткая инструкция по его использованию.

14. Блоги и пользовательские галереи

С версии 2.20 в Intellect Board появилась возможность создания пользователями собственных блогов и фотогалерей, при этом администратор может задавать минимальный уровень пользователя, которому эта возможность доступна, и категорию и контейнер, в которые будут помещаться блоги/галереи. Важно отметить, что пользователь создает фотогалерею и блог сам, по кнопке на странице редактирования своего профиля. Создавать пользовательские галереи и блоги из админ-центра не требуется (т.к. в этом случае они не будут "привязаны" к пользователю).

Примечание: копия данной статьи включена в дистрибутив под именем !readme!.txt
