Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.1][3.2] Авторизация через социальные сети для phpBB3.x

Здесь авторы могут постить бета-версии своих расширений для phpBB. Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

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

Внимание! Не устанавливайте бета-версии расширений на работающие форумы!
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

[3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

Анвар опубликовал бесплатно данное расширение.

Мод и расширения для phpBB 3.0 - 3.1 - 3.2 , позволяющие регистрироваться и авторизоваться пользователям через социальные сети.
В данный момент используется основные источники: Вконтакте, Одноклассники, Yandex, Mail.Ru и также дополнительные Facebook, Google, последние два часто обновляют свои API их постоянная работа не гарантирована.
Возможности 
  • Регистрация пользователей, с последующей возможностью входа
  • Пользователю устанавливаются аватары и подписи.
  • Осуществляется проверка на существование имени пользователя и e-mail в базе данных.
  • Заполнение пользователями дополнительных полей профиля если они установлены и являются обязательными.
  • Отправка e-mail пользователю с указанием провайдера авторизации, имени пользователя и пароля, а также адреса форума.
  • Авторизация пользователей, с привязкой аккаунтов
  • Пользователи могут подключить все свои аккаунты соц сетей в личном разделе.
  • Пользователи могут удалить подключённые аккаунты социальных сетей.
  • Пользователи могут обновить или заменить данные аккаунтов социальных сетей.
  • Пользователи могут входить на форум через социальные сети, без ввода логина и пароля.
  • Полное управление администратором
  • Статистические данные о количестве регистраций и оставленных сообщений.
  • Возможность удалить аккаунты соц сетей у пользователя или подключённые аккаунты у всех пользователей.
  • Включить регистрацию пользователей через социальные сети или только авторизация уже зарегистрированными пользователями.
  • Загрузка аватар на сервер или использование внешних аватар, если они получены с социальных сетей.
  • Сохранение статусов пользователей в подписи или отключение этой возможности.
  • Обновление данных об аватарах и статусах при следующей авторизации или отключение этой возможности.
  • Отправка приветственного личного сообщения пользователям при регистрации через социальные сети.
  • Возможность включить всплывающее окно при нажатии пользователем на ссылку Вход.
  • Отключение отображения иконки социальной сети(откуда пришёл пользователь) в теме, перед датой регистрации.
  • Права доступа для зарегистрированных пользователей имеющих право подключать аккаунты социальных сетей. По умолчанию администраторы и модераторы не имеют таких прав.
  • Включение каждой социальной сети в отдельности.
  • Выбор группы конференции которая будет назначена по умолчанию пользователям, для каждой социальной сети.
  • Ошибки и безопасность
  • Пользователь зарегистрированный через социальную сеть не сможет отключить аккаунт, он будет установлен по умолчанию для дальнейшего входа на форум.
  • Один аккаунт социальной сети не может быть подключён двумя пользователями форума. Пользователь не сможет подключить аккаунт социальной сети, если он подключён и является основным у другого пользователя.
  • Пользователь не сможет подключить чужой аккаунт социальной сети. Для подключения необходимо быть авторизованным в социальной сети, перейти по специальной ссылке и получить уникальный ключ, который будет использован для получения токена, последний для получения данных об аккаунте в автоматическом режиме.
  • Пользователи не могут видеть данные социальных аккаунтов других пользователей, за исключением ссылки на страницу в социальной сети. Пользователи могут удалить или заменить свою ссылку в личном разделе.
Требования 
  • Поддерживаемые версии phpBB: 3.0.11-3.0.13 (возможно и ранние версии), 3.1.1 - 3.1.x, 3.2.x
  • Обязательные модули PHP: JSON, cURL(Возможна замена на fsockopen).
 
Описание настроек Автоматическая регистрация и авторизация через социальные сети на форуме phpBB v3.1
 
Вероятны проблемы с facebook из-за обновления API!
 
Важная инфа о настройке Одноклассников 
Shredder писал(а): 05.09.2023 18:31 Ещё во время настройки надо писать на их почту поддержки api-support@odnoklassniki.ru и просить выдать право GET_EMAIL для приложения.
 
Последняя версия под phpBB 3.3, с учётом всех поправок, описанных в этой теме на 25 сен 2023:
bb3mobi-social--2023.09.25--1.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Nekstati 25.09.2023 19:30, всего редактировалось 2 раза.
Изображение
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

Gubkin писал(а): 21.11.2021 13:25 фактические это не авторизация, а банальная регистрация
Если профиль у человека уже есть, то сначала нужно привязать аккаунт соц.сети и будет вход. Расширение работает как надо,
Изображение
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

Проверить решил работу расширения и получил

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

SQL ERROR [ mysqli ]

Incorrect integer value: '' for column 'pf_verify' at row 1 [1366]

SQL

INSERT INTO phpbb_profile_fields_data (pf_phpbb_website, pf_imya, pf_antispam, pf_phpbb_location, user_id, pf_pribor, pf_fcol, pf_phpbb_interests, pf_phpbb_occupation, pf_phpbb_icq, pf_phpbb_yahoo, pf_phpbb_facebook, pf_phpbb_skype, pf_phpbb_twitter, pf_phpbb_youtube, pf_phpbb_instagram, pf_zametki, pf_phpbb_ya_money, pf_phpbb_webmoney, pf_cbkarta, pf_phpbb_telegram, pf_verify, pf_phone) VALUES ('https://vk.com/igor', 'Сэм', 1, 'КК', 20758, '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5283
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 793 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение Siava »

igorbond, у вас дополнительное поле в профиле (verify) разрешает использовать только целые числа, а при регистрации из соц. сети туда записывается пустое значение. Тут надо копать..
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

теперь другая ошибка

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

Fatal error: Cannot redeclare get_folder() (previously declared in /var/www/data/www/forum/includes/functions_privmsgs.php:120) in /var/www/data/www/forum/includes/functions_privmsgs.php on line 120
Error: Fatal error: Cannot redeclare get_folder() (previously declared in /var/www/data/www/forum/includes/functions_privmsgs.php:120) at file /var/www/data/www/forum/includes/functions_privmsgs.php line 120
Отправлено спустя 29 секунд:
Siava, Спасибо с той уже понятно откуда ноги растут, теперь другая вылезла

Отправлено спустя 27 минут 39 секунд:
Регистрация на форуме проходит, но откуда ошибка не пойму

Отправлено спустя 22 минуты 9 секунд:
Почему то идет конфликт с этим расширением Отлов множественных регистраций - Double Account Preventer
Изображение
ciiz1
phpBB 2.0.4
Сообщения: 440
Стаж: 6 лет 8 месяцев
Благодарил (а): 100 раз
Поблагодарили: 30 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение ciiz1 »

Сегодня перестала работать регистрация через ВК даже например на сайте http://bb3.mobi (или это у меня браузер firefox)?
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение Pazh »

igorbond, текст ошибки означает что где-то объявлена функция с именем get_folder, при том что в самом движке уже есть одноименная функция get_folder в файле /var/www/data/www/forum/includes/functions_privmsgs.php
С чего Вы решили что указанная проблема связана вообще с расширениями "Авторизация через социальные сети для phpBB3.x" или "Отлов множественных регистраций - Double Account Preventer" ? В исходном коде обоих расширений НЕТ функций с именем get_folder
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

Pazh, Когда я пытаюсь зарегистрироваться через ВК через расширение "Авторизация через социальные сети для phpBB3.x" если включено Отлов множественных регистраций - Double Account Preventer"" я не могу, ошибка. Отключаю и регистрация проходит.
Изображение
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение Pazh »

igorbond, это абсолютно ничего не показывает. Скорее всего в DAP вызывается какая-нибудь функция, которая по триггеру тянет вызов функционала другого расширения. Скачивайте всю свою папку ext на локалку и делайте поиск по содержимому по тексту get_folder и ищите расширение, в котором есть такая функция. Далее переименовываете эту функцию в другую и соответственно переименовываете вызов этой функции в расширении.
Вот как это выглядит в TotalCommander
image.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

Сейчас скачаю и попробую.

Отправлено спустя 26 минут 3 секунды:
Попробовал и нашел только в одном расширении ПОиск по ЛС, но он не только выключено было, оно даже удалено или может остатки от него какие повлияли? pmsearch называется

В этом файле

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

<?php
/**
 *
 * PM Search. An extension for the phpBB Forum Software package.
 *
 * @copyright (c) 2021, NeoDev
 * @license GNU General Public License, version 2 (GPL-2.0)
 *
 */
namespace crosstimecafe\pmsearch\controller;

use Foolz\SphinxQL\Drivers\Mysqli\Connection;
use Foolz\SphinxQL\Exception\ConnectionException;
use Foolz\SphinxQL\Exception\DatabaseException;
use Foolz\SphinxQL\Exception\SphinxQLException;
use Foolz\SphinxQL\SphinxQL;

use phpbb\config\config;
use phpbb\db\driver\driver_interface;
use phpbb\language\language;
use phpbb\pagination;
use phpbb\request\request;
use phpbb\template\template;
use phpbb\user;

include('includes/functions_privmsgs.php');

/**
 * PM Search UCP controller.
 */
class ucp_controller
{
	protected $db;
	protected $language;
	protected $request;
	protected $template;
	protected $user;
	protected $pagination;
	protected $config;

	protected $u_action;
	protected $uid;
	protected $root;
	protected $ext;

	/**
	 * Constructor.
	 *
	 * @param \phpbb\db\driver\driver_interface	$db			Database object
	 * @param \phpbb\language\language			$language	Language object
	 * @param \phpbb\request\request			$request	Request object
	 * @param \phpbb\template\template			$template	Template object
	 * @param \phpbb\user						$user		User object
	 */
	public function __construct(driver_interface $db, language $language, request $request, template $template, user $user, pagination $page, config $conf)
	{
		$this->db			= $db;
		$this->language		= $language;
		$this->request		= $request;
		$this->template		= $template;
		$this->user			= $user;
		$this->uid			= $user->id();
		$this->pagination	= $page;
		$this->config		= $conf;

		global $phpbb_root_path, $phpEx;
		$this->root	= $phpbb_root_path;
		$this->ext	= $phpEx;
	}

	public function display_messages()
	{
		// Form key for preventing CSRF attacks
		add_form_key('crosstimecafe_pmsearch_ucp');
		if ($this->request->is_set_post('submit'))
		{
			if (!check_form_key('crosstimecafe_pmsearch_ucp'))
			{
				trigger_error($this->language->lang('FORM_INVALID'));
			}
		}

		// Todo don't forget about group messages
		// Todo add try/catch
		// Todo harden input
		// Todo get minimum characters
		// Todo need to strip bbcode from indexer
		// Todo max return limits
		// Todo pagination jump box not working
		// Todo author and keyword not working together?
		// Todo allow searching multiple authors/sent to


		/*
		 *
		 * Collect input
		 *
		 */


		$keywords = $this->request->variable('keywords', '', true);
		$from = $this->request->variable('from', '', true);
		$sent = $this->request->variable('sent', '', true);
		$folders = $this->request->variable('fid', [0]);
		$search_field = $this->request->variable('sf', 'all');
		$order = $this->request->variable('sk','message_time');
		$direction = $this->request->variable('sd','desc');
		$start = $this->request->variable('start',0);


		/*
		 *
		 * Process input
		 *
		 */


		// Todo test bcc. make sure you can't search for users in the bcc
		// Todo remove explain from 'from' & 'to' fields, replace with find member link
		// Todo limit length of fields

		// Can not search by from and to in the same search
		if ($from && $sent)
		{
			trigger_error($this->language->lang('UCP_PMSEARCH_NOT_BOTH'));
		}

		// Un-escape quotes
		$keywords = str_replace('&quot;','"',$keywords);

		// Split from/sent field into an id array if needed
		$from_id_array = [];
		$sent_id_array = [];
		if ($from)
		{
			$from_id_array = $this->get_ids($from);
		}
		if ($sent)
		{
			$sent_id_array = $this->get_ids($sent);
		}

		// Odd setup to make folder searching work with the default folders
		$folder_ids = '';
		$folder_id_array = [];
		if($folders)
		{
			foreach ($folders as $f)
			{
				// Because everyone has the same folder ids for Inbox, Sent, and Outbox, we add `<user id>_` to the start of all
				// folders. This allows us to run a full text match for matching folders.
				$folder_id_array[] = '"' . $this->uid . '_' . $f . '"';
			}
			unset($f);
			// Adds an OR operator for searching
			$folder_ids = implode('|', $folder_id_array);
		}

		// Which full text fields to search
		switch ($search_field)
		{
			case 't':
				$search_field = 'message_text';
				break;
			case 's':
				$search_field = 'message_subject';
				break;
			case 'b':
			default:
				$search_field = ['message_text','message_subject'];
		}

		// Todo make sorting work with author and subject
		switch ($order)
		{
			case 't':
			default:
				$order = 'message_time';
		}
		switch ($direction)
		{
			case 'a':
				$direction = 'ASC';
				break;
			case 'd':
			default:
				$direction = 'DESC';
		}


		/*
		 *
		 * Setup SphinxQL
		 *
		 */


		$conn = new Connection();
		// Todo get host/port from config
		$conn->setParams(['host' => 'localhost', 'port' => 9306]);

		$search = new SphinxQL($conn);
		$search->select('id');
		$search->from('pm');
		$search->where('user_id', $this->uid);

		if($keywords)
		{
			$search->match($search_field, $keywords, true);
		}
		if ($from_id_array)
		{
			$search->where('author_id', 'IN', $from_id_array);
		}
		if ($sent_id_array)
		{
			$search->where('author_id', '=', $this->uid);
			foreach ($sent_id_array as $id)
			{
				$search->where('user_id', $id);
			}
		}
		if ($folder_ids)
		{
			$search->match('folder_id',$folder_ids,true);
		}
		$search->orderBy($order,$direction);
		$search->limit($start,$this->config['posts_per_page']);


		/*
		 *
		 * Process SphinxQL
		 *
		 */


		$rows = [];
		$total_found = 0;
		try
		{
			// Fetch matches
			$result = $search->execute();
			$rows = $result->fetchAllAssoc();

			// Todo also fetch any errors
			// Fetch the 'total found' variable from metadata
			$search->query("SHOW META LIKE 'total_found'");
			$result = $search->execute();
			$meta_data = $result->fetchAllNum();
			$total_found = $meta_data[0][1];

		}
		catch (ConnectionException $e)
		{
			// Can't connect
			trigger_error($this->language->lang('UCP_PMSEARCH_ERR_CONN'));
			// Todo log errors
		}
		catch (DatabaseException $e)
		{
			// Bad sql or missing table or some other problem
			trigger_error($this->language->lang('UCP_PMSEARCH_ERR_DB'));
		}
		catch (SphinxQLException $e)
		{
			// Unknown error
			trigger_error($this->language->lang('UCP_PMSEARCH_ERR_SPHINX'));
		}


		/*
		 *
		 * Fetch messages
		 *
		 */

		if ($rows)
		{
			// Collect message ids
			$message_ids = [];
			foreach ($rows as $row)
			{
				$message_ids[] = $row['id'];

			}
			$sql_where = $this->db->sql_in_set('p.msg_id', $message_ids);

			// SQL for fetching messages from ids
			$sql_array = [
				'SELECT'    => 'p.msg_id, p.author_id, u.username as author_name, u.user_colour as author_colour, p.message_time, p.message_subject, p.message_text, p.bbcode_uid, p.bbcode_bitfield, p.to_address, p.bcc_address, t.folder_id, f.folder_name',
				'FROM'      => [
					PRIVMSGS_TABLE => 'p',
				],
				// Get extra data
				'LEFT_JOIN' => [
					[
						// Get username and username colour for the author
						'FROM'	=> [USERS_TABLE => 'u'],
						'ON'	=> 'p.author_id = u.user_id',
					],
					[
						// Get the folder id of the message for current user
						'FROM'	=> [PRIVMSGS_TO_TABLE => 't'],
						'ON'	=> 'p.msg_id = t.msg_id and t.user_id = ' . $this->uid,
					],
					[
						// Get the folder name from id
						'FROM'	=> [PRIVMSGS_FOLDER_TABLE => 'f'],
						'ON'	=> 't.folder_id = f.folder_id'
					],
				],
				'WHERE'     => $sql_where,
				'ORDER_BY'  => $order . ' ' . $direction,
			];
			$sql = $this->db->sql_build_query('SELECT', $sql_array);
			$result = $this->db->sql_query($sql);


			/*
			 *
			 * Process returned rows
			 *
			 */


			while ($row = $this->db->sql_fetchrow($result))
			{
				/*
				 *
				 * Process message text and bbcode
				 *
				 */


				// Todo Do we need to censor text inside private messages?
				$row['post_subject'] = censor_text($row['post_subject']);
				if ($row['bbcode_uid'])
				{
					// Not entirely sure what this does, it was copied from search.php
					$row['message_text'] = str_replace('[*:' . $row['bbcode_uid'] . ']', '&sdot;&nbsp;', $row['message_text']);
				}
				$parse_flags = ($row['bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
				$row['message_text'] = generate_text_for_display($row['message_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $parse_flags, true);


				/*
				 *
				 * Build recipient header
				 *
				 */


				// Todo: We're not ready to handle bcc yet
				$row['bcc_address'] = '';
				$recipient = get_recipient_strings([ $row['msg_id'] => $row ]);
				$recipient = implode(' ',$recipient[$row['msg_id']]);


				/*
				 *
				 * Assign template block for messages
				 *
				 */


				// Process folder name
				switch ($row['folder_id'])
				{
					case -2:
						$folder_name = 'Outbox';
						break;
					case -1:
						$folder_name = 'Sent';
						break;
					case 0:
						$folder_name = 'Inbox';
						break;
					default:
						$folder_name = $row['folder_name'];
				}
				$this->template->assign_block_vars('searchresults', [
					'DATE'		=> (!empty($row['message_time'])) ? $this->user->format_date($row['message_time']) : '',
					'AUTHOR'	=> get_username_string('full', $row['author_id'], $row['author_name'], $row['author_colour']),
					'RECIPIENTS'=> $recipient,
					'FOLDER'	=> $folder_name,

					'SUBJECT'	=> $row['message_subject'],
					'MESSAGE'	=> $row['message_text'],

					'VIEW_MESSAGE'	=> append_sid("{$this->root}ucp.$this->ext", 'i=pm&mode=view&p=' . $row['msg_id']),
				]);
			}
			$this->db->sql_freeresult($result);
		}


		/*
		 *
		 * Run pagination
		 *
		 */


		$start = $this->pagination->validate_start($start, $this->config['posts_per_page'], $total_found);
		$url_parms  = $keywords ? '&keywords=' . urlencode($keywords) : '';
		$url_parms .= $from ? '&from=' . urlencode($from) : '';
		$url_parms .= $sent ? '&to='. urlencode($sent) : '';
		foreach ($folders as $f)
		{
			$url_parms .= '&fid[]=' . substr($f,strpos($f,'_') + 1,-1);
		}
		switch($search_field)
		{
			case 'message_text':
				$search_field = 't';
				break;
			case 'message_subject':
				$search_field = 's';
				break;
			default:
				$search_field = 'b';
		}
		$url_parms .= '&sf='.$search_field;
		switch($order)
		{
			case 'message_time':
			default:
				$order = 't';
		}
		$url_parms .= '&sk='.$order;
		$url_parms .= $direction == 'ASC'? '&sd=a' : '&sd=d';
		$this->pagination->generate_template_pagination($this->u_action.$url_parms, 'pagination', 'start', $total_found, $this->config['posts_per_page'], $start);


		/*
		 *
		 * Get folder names
		 *
		 */


		$folder_list = '';
		if ($folders)
		{
			// Default folders
			$folder_list .= in_array(0, $folders) ? 'Inbox ' : '';
			$folder_list .= in_array(-1, $folders) ? 'Sent ' : '';
			$folder_list .= in_array(-2, $folders) ? 'Outbox ' : '';

			// Custom folders
			$sql_where = $this->db->sql_in_set('folder_id', $folders);
			$result = $this->db->sql_query('SELECT folder_name FROM ' . PRIVMSGS_FOLDER_TABLE . ' WHERE user_id = ' . $this->uid . ' AND ' . $sql_where);
			foreach ($result as $row)
			{
				$folder_list .= $row['folder_name'];
			}
		}


		/*
		 *
		 * Assign more template variables
		 *
		 */


		// Adds user folders to private message navbar
		$this->template->assign_var('S_PRIVMSGS', true);
		get_folder($this->uid);

		$this->template->assign_vars([
			'SEARCH_LINK'		=> $this->u_action,
			'SEARCH_MATCHES'	=> $this->language->lang('FOUND_SEARCH_MATCHES', $total_found),

			'KEYWORDS'	=> $keywords,
			'FROM'		=> $from,
			'SENT'		=> $sent,
			'FOLDER'	=> $folder_list,
		]);

	}
	public function display_options()
	{
		// Todo permission checking
		// Todo remove stop-gap styles

		// Form key for preventing CSRF attacks
		add_form_key('crosstimecafe_pmsearch_ucp');
		if ($this->request->is_set_post('submit'))
		{
			if (!check_form_key('crosstimecafe_pmsearch_ucp'))
			{
				trigger_error($this->language->lang('FORM_INVALID'));
			}
		}


		/*
		 *
		 * Build search options
		 *
		 */


		// Default folders
		$this->template->assign_block_vars_array('folder_select',[
			['id'=>0,'name'=>'Inbox'],
			['id'=>-1,'name'=>'Sent'],
			['id'=>-2,'name'=>'Outbox'],
		]);

		// Custom folders
		$folders = $this->db->sql_query('SELECT folder_id, folder_name FROM ' . PRIVMSGS_FOLDER_TABLE . ' WHERE user_id = ' .$this->uid);
		foreach ($folders as $f)
		{
			$this->template->assign_block_vars('folder_select', ['id'=>$f['folder_id'],'name'=>$f['folder_name']]);
		}

		// Sort options
		$this->template->assign_block_vars_array('sorting',[
			// This is the only one that works at this time
			['value'=>'t','selected'=>1,'text'=>$this->language->lang('UCP_PMSEARCH_TIME')],
		]);


		/*
		 *
		 * Assign template variables
		 *
		 */


		// Displays the folders on the left of the page
		$this->template->assign_var('S_PRIVMSGS', true);
		get_folder($this->uid);

		$this->template->assign_vars([
			//'S_ERROR'		=> $s_errors,
			//'ERROR_MSG'		=> $s_errors ? implode('<br />', $errors) : '',
			'U_UCP_ACTION'	=> $this->u_action,
		]);
	}

	public function set_page_url($u_action)
	{
		$this->u_action = $u_action;
	}

	/**
	 * Converts string of usernames to array of user ids
	 *
	 * @param string $str String of usernames seperated by commas
	 * @return array
	 */
	private function get_ids(string $str): array
	{
		$id_array = [];
		// Split from field and clean the strings
		$names = explode(',',$str);
		foreach ($names as &$name)
		{
			$name = utf8_clean_string($name);
			// sql_in_set does its own escaping but just in case...
			$name = $this->db->sql_escape($name);
		}
		unset($name);

		// Fetch user ids from usernames
		$where = $this->db->sql_in_set('username_clean',$names);
		$result = $this->db->sql_query('SELECT user_id FROM ' . USERS_TABLE . ' WHERE ' . $where);
		while ($row = $this->db->sql_fetchrow($result))
		{
			$id_array[] = (int) $row['user_id'];
		}
		$this->db->sql_freeresult($result);

		// Stop here if we could not find any user ids
		if (empty($id_array))
		{
			return [0];
			//trigger_error('NO_SEARCH_RESULTS');
		}
		return $id_array;
	}
}
Отправлено спустя 3 минуты 23 секунды:
Проверил еще раз, есил включить расширение Double Account Preventer", то при попытки регистрации через расширение Авторизация через социальные сети для phpBB3.x выскакиевает ошибка, если же отключить, не выскакивает
Изображение
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение Pazh »

igorbond, тут ВЫЗОВЫ функции, а не ее определение. Посмотрите на предмет подключения файла functions_privmsgs.php в расширениях (так же через поиск по тексту (лучше без расширения просто functions_privmsgs)) - возможно где-то он подключен через include а не include_once

Вот исправление и ошибка Re: Отлов множественных регистраций - Double Account Preventer
Помощь в ЛС/email только за WM или ЮMoney
ciiz1
phpBB 2.0.4
Сообщения: 440
Стаж: 6 лет 8 месяцев
Благодарил (а): 100 раз
Поблагодарили: 30 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение ciiz1 »

Что то проигнорировали меня "Не получены данные аккаунта Вконтакте"
Вчера авторизация через ВК перестала работать. Браузер firefox
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

ciiz1, А попробовать другой браузер?
Изображение
Аватара пользователя
Pazh
Former team member
Сообщения: 2317
Стаж: 14 лет 5 месяцев
Благодарил (а): 37 раз
Поблагодарили: 261 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение Pazh »

ciiz1, в Chrome аналогично - возможно изменился API VK
Помощь в ЛС/email только за WM или ЮMoney
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение southklad »

У меня работает, проверил через Оперу и Яндекс.

Отправлено спустя 6 минут 51 секунду:
И через хром тоже, регистрация прошла.
Изображение
ciiz1
phpBB 2.0.4
Сообщения: 440
Стаж: 6 лет 8 месяцев
Благодарил (а): 100 раз
Поблагодарили: 30 раз

Re: [3.1][3.2] Авторизация через социальные сети для phpBB3.x

Сообщение ciiz1 »

Оч странно, msedge тоже нет, на нескольких форумах в том числе и на http://bb3.mobi, а на вашем форума до регистрации дошёл. Надо переустановить что ли.

Вернуться в «Бета-версии расширений для phpBB»