Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
В идеале - чтобы форум был "в фреймворке", тоесть запуск с роута, чтобы все модули работали.. возможно ли так сделать без особых затрат и как?
и второй вопрос - по авторизации, как связать?
сейчас просто закинул форум в /public/forum , форум работает), но модули не запустить (в сайте в layout запускаю через Route::forward), а тут как раз нужные контроллеры недоступны.
Не в сети
Я бы создал отдельный контроллер, который бы разворачивал URL вида /forum/script, где script — имя скрипта FluxBB без .php (например, forum/viewtopic). Правда, нужно будет менять все ссылки и URL в выводе — подозреваю, что кроме как прогоняя его весь через регулярку это не решить.
Авторизацию нужно прикрутить от FluxBB к Laravel или наоборот? Во втором случае надо написать свой драйвер (это проще всего), в первом — переписать login.php под себя.
Не в сети
Proger_XP, почему без .php?
Мне сейчас пришла мысль, написать роут /forum/(:all) , а саму папку форума переименовать.
в routes добавить роут, в котором через curl - отправлять запрос в папку форума и получать ответ в виде контента, который потом и вставлять в сайт. плохой вариант? чувствую url конечно все равно будут проблемой и нужно будет править..
спасибо, за ответ, попробую.
Не в сети
Не в сети
Proger_XP, подскажи пожалуйста, по драйверу, что написать, куда, где, или где почитать об этом? первый раз с этим сталкиваюсь.
нашел в сети - https://gist.github.com/3235734 оно?
если да, то как его подключить? закинул в папку laravel\auth\drivers, не помогло)
Не в сети
для подключения драйвера укажите в настройках авторизации 'driver' => '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
Не в сети
Не в сети
пробую запускать прямо в 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)
Не в сети
Попробуйте так: драйвер
<?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)
Не в сети
- вы так же делали, взяли драйвер выше, просто прописали драйвер в конфиг и работает?
На Laravel.ru авторизация есть только во FluxBB, поэтому мне прикручивать ничего не нужно было. Сам форум находится вообще снаружи от DocumentRoot и подключается напрямую в виртуальный хост через алиас:
confAlias /forum /...laravel.ru.../forum
Иными словами, никакой связи между Laravel и форумом на этом сайте нет.
Не в сети
Страницы 1