Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 20.09.2012 02:25:34

Прикрутить форум FluxBB, как грамотно сделать?

В идеале - чтобы форум был "в фреймворке", тоесть запуск с роута, чтобы все модули работали.. возможно ли так сделать без особых затрат и как?
и второй вопрос - по авторизации, как связать?

сейчас просто закинул форум в /public/forum , форум работает), но модули не запустить (в сайте в layout запускаю через Route::forward), а тут как раз нужные контроллеры недоступны.

Не в сети

#2 20.09.2012 09:17:25

Re: Прикрутить форум FluxBB, как грамотно сделать?

Я бы создал отдельный контроллер, который бы разворачивал URL вида /forum/script, где script — имя скрипта FluxBB без .php (например, forum/viewtopic). Правда, нужно будет менять все ссылки и URL в выводе — подозреваю, что кроме как прогоняя его весь через регулярку это не решить.

Авторизацию нужно прикрутить от FluxBB к Laravel или наоборот? Во втором случае надо написать свой драйвер (это проще всего), в первом — переписать login.php под себя.

Не в сети

#3 20.09.2012 10:17:47

Re: Прикрутить форум FluxBB, как грамотно сделать?

Proger_XP, почему без .php?

Мне сейчас пришла мысль, написать роут /forum/(:all) , а саму папку форума переименовать.

в routes добавить роут, в котором через curl - отправлять запрос в папку форума и получать ответ в виде контента, который потом и вставлять в сайт. плохой вариант? чувствую url конечно все равно будут проблемой и нужно будет править..

спасибо, за ответ, попробую.

Не в сети

#4 20.09.2012 12:04:42

Re: Прикрутить форум FluxBB, как грамотно сделать?

  1. почему без .php?

Просто потому, что в маршрутах не принято расширение писать. Если всё равно, то лучше не городить огород с контроллерами, а просто закинуть FluxBB в папку forum (или ту, которую нужно), и пусть он работает через неё как будто там и нет Laravel. И с URL проблемы не будет.

Не в сети

#5 23.09.2012 22:21:04

Re: Прикрутить форум FluxBB, как грамотно сделать?

Proger_XP, подскажи пожалуйста, по драйверу, что написать, куда, где, или где почитать об этом? первый раз с этим сталкиваюсь.
нашел в сети - https://gist.github.com/3235734 оно?
если да, то как его подключить? закинул в папку laravel\auth\drivers, не помогло)

Не в сети

#6 24.09.2012 00:54:05

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Прикрутить форум FluxBB, как грамотно сделать?

для подключения драйвера укажите в настройках авторизации 'driver' => 'FluxBB'

Не в сети

#7 24.09.2012 06:02:06

Re: Прикрутить форум FluxBB, как грамотно сделать?

поменял, на Auth::check() выбрасывает ошибку:
Fatal error: Method Laravel\Response::__toString() must not throw an exception in C:\wamp\www\laravel\view.php(359) : eval()'d code on line 27

Не в сети

#8 24.09.2012 10:37:33

Re: Прикрутить форум FluxBB, как грамотно сделать?

  1. поменял, на Auth::check() выбрасывает ошибку:

Такая ошибка возникает, когда шаблон пытается отрисоваться и в нём выкидывается исключение. Судя по коду PHPAuth::check() он не может это вызывать, скорее всего ошибка когда ваш маршрут возвращает шаблон в ответ на запрос.

Не в сети

#9 24.09.2012 15:17:20

Re: Прикрутить форум FluxBB, как грамотно сделать?

пробую запускать прямо в routes:

Route::get('/',function(){
	if (Auth::check()) exit("ok");
	else exit("neok");
})

в итоге:

Unhandled Exception

Message:

Auth driver FluxBB is not supported.
Location:

C:\wamp\www\laravel\auth.php on line 61
Stack Trace:

#0 C:\wamp\www\laravel\auth.php(31): Laravel\Auth::factory('FluxBB')
#1 C:\wamp\www\laravel\auth.php(90): Laravel\Auth::driver()
#2 C:\wamp\www\application\routes.php(10): Laravel\Auth::__callStatic('check', Array)
#3 C:\wamp\www\application\routes.php(10): Laravel\Auth::check()
#4 [internal function]: {closure}()
#5 C:\wamp\www\laravel\routing\route.php(163): call_user_func_array(Object(Closure), Array)
#6 C:\wamp\www\laravel\routing\route.php(124): Laravel\Routing\Route->response()
#7 C:\wamp\www\laravel\laravel.php(165): Laravel\Routing\Route->call()
#8 C:\wamp\www\public\index.php(34): require('C:\wamp\www\lar...')
#9 {main}

попробовал удалить все роуты кроме одного, тоже самое.
не знаю куда копать... вы так же делали, взяли драйвер выше, просто прописали драйвер в конфиг и работает?

Изменено lanc (24.09.2012 15:19:30)

Не в сети

#10 24.09.2012 15:41:41

Cheshirrski
masterМастер
Откуда: Днепр
Сообщений: 116
Статей: 2

Re: Прикрутить форум FluxBB, как грамотно сделать?

Попробуйте так: драйвер

<?php

namespace Laravel\Auth\Drivers;

use Laravel\Str;
use Laravel\Cookie;
use Laravel\Config;
use Laravel\Session;
use Laravel\Crypter;
use Laravel\Hash;
use Laravel\Database as DB;

class FluxBB extends Fluent {

	/**
	 * Determine if the user is logged in.
	 *
	 * @return bool
	 */
	public function check()
	{
		return ! is_null($this->user()) && $this->user()->id != 1;
	}

	/**
	 * Get the current user of the application.
	 *
	 * If the user is a guest, null should be returned.
	 *
	 * @param  int         $id
	 * @return mixed|null
	 */
	public function retrieve($id)
	{
		Config::set('auth.table', 'users');
		return parent::retrieve($id);
	}

	/**
	 * Attempt to log a user into the application.
	 *
	 * @param  array $arguments
	 * @return void
	 */
	public function attempt($arguments = array())
	{
		Config::set('auth.table', 'users');
		Config::set('auth.password', 'password');
		return parent::attempt($arguments);
	}

	/**
	 * Get the user from the database table.
	 *
	 * @param  array  $arguments
	 * @return mixed
	 */
	protected function get_user($arguments)
	{
		Config::set('auth.table', 'users');
		Config::set('auth.username', 'username');
		return parent::get_user($arguments);
	}

}

в конфиге:   

'driver' => 'fluxbb'

в Laravel/Auth в методе factory добавить

case 'fluxbb':
	return new Auth\Drivers\fluxbb(Config::get('auth.table'));

Изменено Cheshirrski (24.09.2012 15:48:21)

Не в сети

#11 24.09.2012 16:46:22

Re: Прикрутить форум FluxBB, как грамотно сделать?

  1. вы так же делали, взяли драйвер выше, просто прописали драйвер в конфиг и работает?

На Laravel.ru авторизация есть только во FluxBB, поэтому мне прикручивать ничего не нужно было. Сам форум находится вообще снаружи от DocumentRoot и подключается напрямую в виртуальный хост через алиас:

confAlias /forum /...laravel.ru.../forum

Иными словами, никакой связи между Laravel и форумом на этом сайте нет.

Не в сети

Подвал раздела