Группы пользователей - это способ объединения пользователей. Группы облегчают установку прав доступа за один раз для множества пользователей. phpBB 3.0 содержит шесть предустановленных групп: администраторы, боты, супермодераторы, гости, зарегистрированные пользователи и зарегистрированные пользователи COPPA.
Имеется два типа групп: предустановленные и пользовательские.
Предустановленные группы
Эти группы по умолчанию устанавливаются вместе с phpBB 3.0, и их нельзя удалить напрямую, поскольку они нужны конференции для выполнения различных функций. Но вы можете добавлять в эти группы новых пользователей, изменять атрибуты групп (описание, цвет, звание, аватару и так далее), и добавлять руководителей групп. Пользователи, регистрирующиеся на конференции, автоматически добавляются в группу «Зарегистрированные пользователи». Не пробуйте удалять их вручную через базу данных, иначе ваша конференция больше не будет работать корректно.
Пользовательские группы
Эти группы созданы вами или другими администраторами конференции. Эти группы подобны группам в phpBB 2.0. Вы можете создать их, сколько захотите, удалять их, устанавливать руководителей, и изменять их атрибуты (описание, цвет, звание, аватару и так далее).
Страница «Управление группами» в панели администрирования отображает отдельные списки предустановленных и пользовательских групп.
Ниже перечислен список атрибутов, которые может иметь группа:
Поскольку появилась возможность назначения атрибутов, таких, как цвета или аватары группы (смотрите раздел 3.6.2, «Атрибуты групп»), и пользователь может быть членом двух и более групп, имеющих различные аватары и другие атрибуты. Какая аватара будет применена к пользователю?
Для преодоления этой проблемы вы можете назначить пользователю одну «группу по умолчанию», и к пользователю будут применяться атрибуты этой группы. Обратите внимание на то, что нет возможности объединять и смешивать атрибуты различных групп: если одна группа имеет звание, но не имеет аватары, а другая группа имеет только аватару, то нет возможности отобразить аватару из одной группы, а звание из другой.
Важное примечание
Группы по умолчанию не имеют никакого воздействия на права доступа. Дополнительных прав для группы по умолчанию не назначается и не добавляется. Поэтому пользовательские права останутся неизменными, независимо от того, к какой группе по умолчанию он принадлежит.
Изменить группу по умолчанию можно двумя способами. Во-первых, вы можете сделать это с помощью управления пользователями (смотрите раздел 3.5 «Управление пользователями»), или непосредственно со страницы управления группой. Будьте осторожны со второй опцией, изменяя группу по умолчанию с помощью страницы управления группой, поскольку это действие может изменить группу по умолчанию для всех её членов и перезаписать их старые группы по умолчанию. Так, если вы изменяете группу по умолчанию для группы «Зарегистрированные пользователи» с помощью ссылки «Сделать группой по умолчанию для каждого её участника», то все участники конференции будут иметь эту группу в качестве группы по умолчанию, включая администраторов и модераторов, поскольку они также являются членами группы «Зарегистрированные пользователи».
Важное примечание
Если вы назначаете группу по умолчанию, которая имеет звание и аватару, то старая аватара пользователя и звание будет перезаписано атрибутами этой группы.
В профиле пользователей форумов phpBB есть поле "Сайт", где можно поставить активную гиперссылку на свой домашний сайт. Часто этим пользуются спамеры тысячами регистрируя новых пользователей исключительно ради этой ссылки. Современные программы для спама помимо автоматической регистрации еще и оставляют на форуме пару не особо осмысленных сообщений, чтобы профиль (и ссылка) побыстрее проиндексировалась.
С этим можно бороться по-разному. Можно просто в файле robots.txt закрыть все профили форума от индексации директивой noindex. Однако, если ваш форум попал в спам-базу с десятком тысяч таких же форумов, надежды на то, что спамеры исключат ваш ресурс из автоматической регистрации мало.
Можно просто отключить возможность редактировать поле "Сайт" пользователем. Для этого нужно найти файл в шаблоне. Обычно это ucp_profile_profile_info.html , находящийся в директории - styles/имя_шаблона/template/
Нам надо найти код подобный этому:
Код может отличаться, поэтому ориентируйтесь на ключевые слова "WEBSITE". Можно просто удалить этот кусок кода, а можно поступить изощренней. Просто заменив код
ваш_сайтВы сделаете так, что это поле будет нередактируемым и кроме как ссылки на ваш_сайт у него значений больше быть не сможет)
Допустим, вы отключили пользователям возможность устанавливать поле "Сайт" в профиле. Однако, ранее зарегистрированные спам-пользователи будут отображаться с уже проставленными ссылками. Можно, конечно, залезть в базу данных форума и поменять там все поля ч/з SQL-запрос, но можно сделать проще.
На этот раз нам нужен файл memberlist_view.html из той же директории. Находим строчку:
и заменяем следующую за ней строку (выводящую ссылки) на
Бинго! Теперь в профилях всех пользователей стоит ссылка на ваш сайт вне зависимости от того, какую они указывали в профиле.
А раз нет ссылок в профилях, то и спамерам вы не нужны.
Ну что же, начнем давать маленькие советы по оптимизации и продвижении сайтов (форумов) на phpBB. В данном случае мы проведем небольшой хак, который поможет избавиться от внешней ссылки вида "Powered by phpBB © ...". В данной публикации мы рассмотрим 2 способа, с помощью которых можно это сделать - прием для phpBB 3.x.x .
Первый способ удаления внешней ссылки с надписью Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
. И так, самый легкий способ - удалить с помощью панели администратора. Заходим в административную панель, переходим в пункт меню "Стили", слева видим панель, где расположен блок в меню, нас интересует блок "Компоненты стилей", а в нем "Шаблоны". По стандарту в предложенном окне мы увидим следующие: prosilver и subsilver2, хотя моуг быть и другие, если Вы их устанавливали. В общем не суть. Из преложенного набора выбираем используемый по умолчанию. Нажимаем на кнопку "изменить" рядом с шаблоном. Далее появляется окно с предложением "Выбрать файл шаблона". Далее выбираем "Файл шаблона" - "overall_footer.html". Ниже появляется HTML редактор. Находим следующий код: "Powered by phpBB 2000, 2002, 2005, 2007 phpBB Group
" и просто удалем, хотя можно и установить свою ссылку и надпись. "
{TRANSLATION_INFO}
" (который находится ниже, также можно удалить) - это код отвечает за локализацию например внешнюю ссылку с надписью "Русская поддержка phpBB".
Второй способ удаления внешней ссылки с надписью Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group . Этот способ аналогичен, но мы подключаемся к сайту по пратаколу ftp. Переходим по следующему пути styles/имя_шаблона/template/overall_footer.html. И редактируем тот же код, который редактировали мы выше. Если будете изменять код, то не забудьте установить кодировку UTF - так на месте анкоров могут появится "кракозяблы" (квадратики, и другие непонятные символы).
В одном из комментариев к моей статье , меня попросили рассказать — как убрать поле копирайта создателей движка phpBB: «Создано на основе phpBB». Так как эта информация может быть полезна и другим посетителям, я решил написать об этом данную статью.
Зачем удалять это поле? Многие из вас могут высказать негодование, мол, удаление этого поля будет расценено как несоблюдение авторских прав. Однако это не совсем так – phpBB является бесплатным веб-форумом со свободным исходным кодом. Поэтому любые изменения, сделанные вами, предполагают, что авторскими правами конкретно на ваш продукт полностью обладаете вы. Другими словами, после создания форума на этом движке, он становиться вашей интеллектуальной собственностью. Авторы phpBB написали механизм, инструмент для создания форумов, а не готовый продукт. В таком случае, если вы удалите надпись копирайта в футере форума – это не будет нарушением авторских прав. С другой стороны, если вы все-таки оставите эту надпись – это будет являться знаком благодарности и поддержки разработчиков, что однозначно хорошо!
Итак, если вы решили все же избавиться от этой надписи, то первым шагом нам необходимо узнать, где находиться параметр, отвечающий за вывод информации о копирайте. Для этого нам необходимо открыть любую страницу форума, где виден форум, в одном из браузеров, которые поддерживают функцию просмотра кода страницы (Opera, Google Chrome, Firefox и т.д.), и, клацнув правой кнопкой по самой надписи, выбрать из выпадающего меню опцию просмотра кода (Inspect element) .
После открытия код-инспектора мы сможем увидеть, что блок, который нас интересует, называется «copyright
» . В нем и необходимо делать изменения, чтобы отредактировать, спрятать или удалить информацию.
Вторым шагом будет поиск файла, в котором содержится блок «copyright». Так как название файла нам не известно, то поиск вручную займет очень много времени. Поэтому мы воспользуемся удобной функцией — поиск по содержимому, которой обладает мой любимый менеджер файлов – Total Commander, далее ТС (существуют другие способы поиска по содержимому, но в данной статье они рассматриваться не будут). В менеджере файлов открываем папку, в которую установлен форум на локальном сервере или на FTP-сервере вашего хостера. Для облегчения поиска, мы откроем сразу папку, в которой хранится файлы выбранного по умолчанию стиля. Далее выбираем поиск файлов в меню «Команды
» или просто нажимаем Alt+F7
. В появившемся окне поиска мы оставляем без внимания поле «Искать файлы
«, так как название файла нам неизвестно. В поле «Место поиска
» должен быть указан путь в папку с установленным движком форума, по умолчанию ТС подхватывает путь автоматически, если окно поиска было вызвано из активной части, где вы просматриваете содержимое папок. Далее ставим галочку рядом с полем «С текстом
» и вводим в строку поиска «copyright», после чего смело жмем кнопку «Начать поиск
» и ждем вывода результатов.
Поиск выдал нам несколько файлов, по идее их должно быть 5, в которых упоминается название блока копирайта. Из всех выданных файлов мы четко видим, что нас интересует файл с названием «overall_footer.html
» так как блок находится в футере страницы, а слово overall подсказывает, что в этом файле хранятся глобальные настройки, то есть для всего форума. Теперь у нас есть 2 варианта как отредактировать нужный нам файл – через встроенный редактор шаблонов phpBB или с использованием стороннего редактора. Первым мы рассмотрим вариант редактирования через родной интерфейс phpBB.
Нам необходимо зайти «Центр администрирования
» и перейти во вкладку «Стили
«. В разделе управления стилями мы смотрим, какой стиль установлен по умолчанию, на это указывает звездочка после названия стиля. В примере установлен всего один, базовый стиль – prosilve, но у вас их может быть несколько.
Далее в разделе управления компонентами стилей мы переходим в подраздел «Шаблоны
» и выбираем пункт «Изменить
» рядом с нашей активной темой.
Теперь нам необходимо выбрать из выпадающего списка интересующий нас файл под названием «overall_footer.html
»
В появившейся области редактирования мы идем в самый низ страницы и находим строку:
после которой удаляем следующий код:
{CREDIT_LINE} {TRANSLATION_INFO} {DEBUG_OUTPUT}
В итоге ваш код должен выглядеть так:
Теперь нажимаем кнопку «Отправить
» и voila, мы добились желаемого результата – надписи о копирайте больше нет.
Перейдем к альтернативному варианту как добиться того же результата: когда мы уже название нужного файла, мы переходим в папку «template
» темы, активированной по умолчанию, и ищем все тот же файл с названием «overall_footer.html
«.
Далее нажимаем правой кнопкой по файлу и в выпадающем меню выбираем «Открыть с помощью
» и выбираем любимый вами редактор кода, в моем случае это Blumentals WeBuilder 2011. После этого, так же как и в случае с родным редактором шаблонов phpBB, удаляем указанный ранее код и сохраняем изменения. Также в программе имеется очень удобный встроенный FTP-клиент, который позволяет редактировать и сохранять изменения в файлах на удаленном сервере.
Готово! Если вы выполнили все указанные выше действия, то у вас должно было получиться убрать надпись. Поздравляю!
Рассмотрим стандартную задачу - на сайт с уже существующими пользователями нужно добавить форум. При этом не писать новый модуль самому, но поставить готовое популярное решение типа phpbb3 и синхронизировать регистрацию/авторизацию/профили пользователей сайта с форумом. Минимально нужно, чтобы пользователи сайта стали пользователями форума, и чтобы авторизованный пользователь сайта автоматически становился авторизованным пользователем форума и наоборот, а так же происходила синхронизация при изменении профиля.
В сети есть плагины для синхронизации phpbb и wordpress (WP-United) и универсальные руководства ( ,), но последние, как правило, начинаются словами «скопипастить эти… дцать функций из functions.php» и «вставить в эти 3 таблицы вот такие данные».
Другой метод интеграции - начать использовать таблицы пользователей и методы к ним из phpbb на остальном сайте, но это обычно требует значительных модификаций системы.
Расскажу про свой способ, который тормознее обычных, но зато требует минимальных изменений файлов сайта и форума (по 10 строчек на каждом для подключения файла с классом-синхронизатором в 5кб).
Синхронизатор состоит из двух файлов: сайт->форум (инклудится в файлы сайта) и форум->сайт (инклудится в phpbb). Они содержат статические классы ForumSync и SiteSync соответственно. В каждом классе - 2 паблик-метода: checkToken и sync.
Для моего сайта синхронизатор сайт->форум - forumsync.class.php, форум->сайт - functions_sitesync.php. Эти файлы, а так же файлы, в которые потребовалось внести изменения, выложил . Еще используется класс req для выполнения серий запросов, он лежит .
Md5("lala".date("Ymd"))
И в начало check_form_key добавим проверку на соответствие ему некоторой переменной $_REQUEST (проверка делается в методе SiteSync::checkToken()).
2. Чтобы избежать зацикливания (логин на сайте запрашивает логин на форуме, который запрашивает логин на сайте итд), до отсылки запроса будем проверять SiteSync::checkToken(), если он есть, значит этот запрос делает синхронизатор, и запускать синхронизацию снова уже не нужно.
Регистрация: для простоты выключим регистрацию юзеров на phpbb (через админку). Регистрация будет только на сайте. В случае успеха регистрации на сайте вызовем ForumSync::sync(«signup»). В phpbb разрешим регистрацию для синхронизатора, для этого изменим строку в начале forum/includes/ucp/ucp_register.php->ucp_register->main() (где проверка на USER_ACTIVATION_DISABLE):
If ($config["require_activation"] == USER_ACTIVATION_DISABLE && !SiteSync::checkToken())
trigger_error("UCP_REGISTER_DISABLE");
Кроме этого, хорошо бы было получать id нового юзера. В html-коде страницы, отдаваемой в случае успешной регистрации, id пользователя нигде не указан. Поэтому ниже строки $user_id = user_add(...) добавим
If (SiteSync::checkToken()) { echo "\n"; }
SiteSync::sync("signin",array("username"=>$username,"password"=>$password,"autologin"=>$autologin)).
Выход:
для синхронизации форум->сайт в forum/ucp.php case "logout": добавить строку SiteSync::sync("signout").
Изменение пароля и профиля:
индивидуально, зависит от того, какая информация в каких таблицах у профилей пользователей на сайте. И какие существуют формы редактирования профиля. Нужные экшены находятся в forum/includes/ucp/ucp_profile.php->ucp_profile->main(), в конце соответствующих кейсов нужно добавить SiteSync::sync.
В моей системе поддерживаются транзакции, но в phpbb я не нашел стандартного механизма. Если, к примеру, на сайте минимальная длина пароля 6 а на phpbb - 5, и пользователь в phpbb вводит 5-ти символьный пароль, phpbb меняет пароль, сайт отдает ошибку. Нужно делать откат, но это уже не только «дописать одну строчку». Пока что моя система в таких случаях обламывается, поэтому я внимательно проследил, чтобы требования на все синхронизируемые поля совпадали.