[FAQ] Интеграция входа на конференцию phpBB с сайтом

Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

[FAQ] Интеграция входа на конференцию phpBB с сайтом

Сообщение rxu »

Ниже приведен пример скрипта с интегрированной формой входа на конференцию (общего вида).
В приведённом примере папка, в которой находится скрипт, находится на один уровень выше папки конференции. Файлы конференции находятся в папке phpBB3 относительно скрипта.

По коду скрипта имеются пояснительные комментарии (на английском языке).

Вопросы принимаются в этой теме.

Версия 1.1.0 с интегрированным списком онлайн и легендой групп здесь.
Версия 1.2.0 с аватарой здесь.

Версия 2.0.1 для phpBB 3.2/3.3 здесь.

login_1.0.5.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rxu 22.05.2020 8:37, всего редактировалось 6 раз.
Изображение
p-vasya
phpBB 1.2.1
Сообщения: 20
Стаж: 16 лет 10 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение p-vasya »

rxu писал(а):Класс user задается в Includes/session.php. Прошу заметить, что ваши вопросы - оффтоп.
Прошу прощения, за оффтоп. Открывать новую тему не хотел, дабы не засорять форум, а эту посчитал свзянной(хотя бы косвенно) с моим вопросом.

Появился ещё один вопрос, имеющий прямое отношение к вашему скрипту:
Почему вы отказались от использования встроенной функции login_box? У неё есть какие-то существенные недостатки?

Объясню, почему я про неё заговорил, там уже предусмотрены следующие моменты:
1)Возможность редиректа, после авторизации.
2)Авторизация для администраторов.

Отказ от использования этой функции вызван, лишь желаением упростить скрипт, или же были другие причины?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

Эта функция использует заданный шаблон login_body.html вместе с шапкой и футером форума.
И еще jumpbox выдает.
Поэтому использовал простую форму, дабы отказаться от лишнего скрипта и вывода на странице.
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

а мой вопрос так и останется без ответа?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

dark_hero
Вы куда вообще этот код вставляете, конкретно?
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

dark_hero писал(а):
Там объявляются и задаются переменные, используемые во включаемых скриптах.
ну дык, пробовал при изменении

Код: Выделить всё

    /*
    // Set phpBB root folder properly. Change in according to the actual board folder
    define('PHPBB_ROOT_PATH', './');
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include_once("/home/zagsby/public_html/forum/common.php");
    */
    define('IN_PHPBB', true);

    // Set phpBB root folder properly. Change in according to the actual board folder
    define('PHPBB_ROOT_PATH', '/home/zagsby/public_html/forum/');
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
вылетает ошибка
Fatal error: Cannot redeclare class cache in /home/zagsby/public_html/forum/includes/cache.php on line 23
Не знаком с вашим скриптом, поэтому не могу сказать, где там у вас что вперед подключается.
скрипт подключается в самом верху overall_header.html
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

Могу только повторить вопрос. Что такое самый верх, и как вы подключаете скрипт в шаблон, протелепатировать не в силах.
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

Код: Выделить всё

<!-- PHP -->
include('/home/zagsby/public_html/forum/includes/header.inc');
<!-- ENDPHP -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="{S_CONTENT_DIRECTION}" lang="{S_USER_LANG}" xml:lang="{S_USER_LANG}">
<head>

<meta http-equiv="content-type" content="text/html; charset={S_CONTENT_ENCODING}" />
<meta http-equiv="content-language" content="{S_USER_LANG}" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="imagetoolbar" content="no" />
<meta name="resource-type" content="document" />
<meta name="distribution" content="global" />
<meta name="copyright" content="2000, 2002, 2005, 2007 phpBB Group" />
<meta name="keywords" content="" />
<meta name="description" content="" />
{META}
<title>{SITENAME} &bull; <!-- IF S_IN_MCP -->{L_MCP} &bull; <!-- ELSEIF S_IN_UCP -->{L_UCP} &bull; <!-- ENDIF -->{PAGE_TITLE}</title>

<link rel="stylesheet" href="{T_STYLESHEET_LINK}" type="text/css" />

<script type="text/javascript">
// <![CDATA[
<!-- IF S_USER_PM_POPUP -->
  if ({S_NEW_PM})
  {
    popup('{UA_POPUP_PM}', 400, 225, '_phpbbprivmsg');
  }
<!-- ENDIF -->

function popup(url, width, height, name)
{
  if (!name)
  {
    name = '_popup';
  }

  window.open(url.replace(/&/g, '&'), name, 'height=' + height + ',resizable=yes,scrollbars=yes,width=' + width);
  return false;
}

function jumpto()
{
  var page = prompt('{LA_JUMP_PAGE}:', '{ON_PAGE}');
  var perpage = '{PER_PAGE}';
  var base_url = '{A_BASE_URL}';

  if (page !== null && !isNaN(page) && page > 0)
  {
    document.location.href = base_url.replace(/&/g, '&') + '&start=' + ((page - 1) * perpage);
  }
}

/**
* Find a member
*/
function find_username(url)
{
  popup(url, 760, 570, '_usersearch');
  return false;
}

/**
* Mark/unmark checklist
* id = ID of parent container, name = name prefix, state = state [true/false]
*/
function marklist(id, name, state)
{
  var parent = document.getElementById(id);
  if (!parent)
  {
    eval('parent = document.' + id);
  }

  if (!parent)
  {
    return;
  }

  var rb = parent.getElementsByTagName('input');
  
  for (var r = 0; r < rb.length; r++)
  {
    if (rb[r].name.substr(0, name.length) == name)
    {
      rb[r].checked = state;
    }
  }
}

<!-- IF ._file -->

  /**
  * Play quicktime file by determining it's width/height
  * from the displayed rectangle area
  *
  * Only defined if there is a file block present.
  */
  function play_qt_file(obj)
  {
    var rectangle = obj.GetRectangle();

    if (rectangle)
    {
      rectangle = rectangle.split(',')
      var x1 = parseInt(rectangle[0]);
      var x2 = parseInt(rectangle[2]);
      var y1 = parseInt(rectangle[1]);
      var y2 = parseInt(rectangle[3]);

      var width = (x1 < 0) ? (x1 * -1) + x2 : x2 - x1;
      var height = (y1 < 0) ? (y1 * -1) + y2 : y2 - y1;
    }
    else
    {
      var width = 200;
      var height = 0;
    }

    obj.width = width;
    obj.height = height + 16;

    obj.SetControllerVisible(true);

    obj.Play();
  }
<!-- ENDIF -->

// ]]>
</script>
</head>
<body class="{S_CONTENT_DIRECTION}">
[color=#FF0000]<!-- PHP -->
include('/home/zagsby/public_html/forum/includes/top.inc');
<!-- ENDPHP -->[/color]
<a name="top"></a>
<div id="wrapheader">

  <div id="menubar">
    <table width="100%" cellspacing="0">
    <tr>
      <td colspan="2" class="genmed" align="center">
        <a href="{U_FAQ}"><img src="{T_THEME_PATH}/images/icon_mini_faq.gif" width="12" height="13" alt="*" /> {L_FAQ}</a>
        <!-- IF S_DISPLAY_SEARCH -->&nbsp; &nbsp;<a href="{U_SEARCH}"><img src="{T_THEME_PATH}/images/icon_mini_search.gif" width="12" height="13" alt="*" /> {L_SEARCH}</a><!-- ENDIF -->
        <!-- IF not S_IS_BOT -->
          <!-- IF S_DISPLAY_MEMBERLIST -->&nbsp; &nbsp;<a href="{U_MEMBERLIST}"><img src="{T_THEME_PATH}/images/icon_mini_members.gif" width="12" height="13" alt="*" /> {L_MEMBERLIST}</a><!-- ENDIF -->
          <!-- IF S_USER_LOGGED_IN -->&nbsp; &nbsp;<a href="{U_PROFILE}"><img src="{T_THEME_PATH}/images/icon_mini_profile.gif" width="12" height="13" alt="*" /> {L_PROFILE}</a><!-- ENDIF -->
        <!-- ENDIF -->
      </td>
    </tr>
    </table>
  </div>

  <div id="datebar">
    <table width="100%" cellspacing="0">
    <tr>
      <td class="gensmall"><!-- IF S_USER_LOGGED_IN -->{LAST_VISIT_DATE}<!-- ENDIF --></td>
      <td class="gensmall" align="{S_CONTENT_FLOW_END}">{CURRENT_TIME}<br /></td>
    </tr>
    </table>
  </div>

</div>

<div id="wrapcentre">

  <!-- IF S_DISPLAY_SEARCH -->
  <p class="searchbar">
    <span style="float: {S_CONTENT_FLOW_BEGIN};"><a href="{U_SEARCH_UNANSWERED}">{L_SEARCH_UNANSWERED}</a> | <a href="{U_SEARCH_ACTIVE_TOPICS}">{L_SEARCH_ACTIVE_TOPICS}</a></span>
    <!-- IF S_USER_LOGGED_IN -->
    <span style="float: {S_CONTENT_FLOW_END};"><a href="{U_SEARCH_NEW}">{L_SEARCH_NEW}</a> | <a href="{U_SEARCH_SELF}">{L_SEARCH_SELF}</a></span>
    <!-- ENDIF -->
  </p>
  <!-- ENDIF -->

  <br style="clear: both;" />

  <!-- INCLUDE breadcrumbs.html -->

  <br />
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

dark_hero
Скрипт этот нужен для того, чтобы интегрировать вход с форумом на сторонней странице, не принадлежащей к форуму.
А зачем нужно то, что вы сейчас показали, и как вы себе представляете работу такого кода?
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

ну я хотел использовать его как некий вариант авторизации на форуме и на сайте одновременно, дабы не ковырять родную авторизацию на форуме и не вставлять туда авторизацию для сайта
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16947
Стаж: 18 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 549 раз
Поблагодарили: 1700 раз

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение rxu »

dark_hero
Данный скрипт авторизует на форуме, но не на сайте. Поэтому добавлять его на форум бессмысленно и правильно он там работать не будет.
dark_hero писал(а):дабы не ковырять родную авторизацию на форуме и не вставлять туда авторизацию для сайта
Если хотите авторизовать на сайте через форум, ковырять всё равно придется.
Изображение
dark_hero
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 11 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение dark_hero »

ну раз другого пути нет, буду ковырять... спс
Аватара пользователя
Chianuk
phpBB 1.4.1
Сообщения: 46
Стаж: 16 лет 10 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение Chianuk »

Для входа на форум достаточно записать правильно ключ сессии, правильно записать куки. При входе на форум, при наличии ключа сессии - новая сессия будет создана автоматом.
;) CMS GURU SLAED 2.7 Lite (CMS SLAED 2.6 Lite с интегрированным phpBB 3.0.5)
Аватара пользователя
Xandir
phpBB 1.0.0
Сообщения: 8
Стаж: 15 лет 10 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение Xandir »

Здравствуйте!

А вот у меня еще такая идея возникла! А можно ли еще сделать так, чтобы при успешной авторизации кроме аватара и имени пользователя отображалось еще и колличество новых личных сообщений, и при нажатии на эту строку открывался раздел "личные сообщения" на форуме.
Аватара пользователя
crash
Former team member
Сообщения: 6517
Стаж: 20 лет 9 месяцев
Откуда: Бердск

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение crash »

Ну почему же нельзя. Все можно сделать
Как правильно задавать вопросы
Для особо одаренных: поиск - это есть круто.
FAQ v.2 | FAQ v.3 | Шаблон запроса
p-vasya
phpBB 1.2.1
Сообщения: 20
Стаж: 16 лет 10 месяцев

Re: [FAQ RC] Интеграция входа на конференцию с сайтом

Сообщение p-vasya »

Столкнулся с одним багом при обкатке(возможно, что он связан с оими настройками и у других его нет).

Форум висит на домене:
forum.site.ru

На другом поддомен делаю авторизацию:
sub1.site.ru

В настройках скрипта для авторизации прописываю:
define('PHPBB_ROOT_PATH', '/home/u*****/forum.site.ru/www/');

Всё работает, НО, get_username_string возвращает ссылку не:
http://forum.site.ru/www/memberlist.php ... profile&u=[тут user_id]
, а:
http://sub1.site.ru/home/u*****/forum.s ... profile&u=[тут user_id]

Разумеется исправить это можно, просто написав свой аналог get_username_string, но мне кажется, что это не самый лучший вариант.

Может быть я что-то не так сделал в настройках? Можно ли как-нибудь это исправить?
Перенесено из форума FAQ (phpBB 3.0.x) в форум FAQ 28.09.2016 15:02 модератором rxu

Вернуться в «FAQ»