我对 Laravel 最满意,并希望使用 Q2A 或 OSQA 等问答框架来扩展它。如何将两者整合在一起(例如 Q2A + Laravel)?
问问题
1613 次
3 回答
3
我已经设法在 Laravel 安装中运行 Q2A 作为子文件夹,这就是我所做的:
将 Question2Answer 安装到 laravel public/qa 文件夹中
按照http://www.question2answer.org/single-sign-on.php的设置说明进行操作
将以下函数添加到 public/qa/qa-external/qa-external-users.php
function laravelauth() {
//modified from https://laracasts.com/discuss/channels/general-discussion/how-to-use-laravel-authuser-outside-laravel-and-pass-data-in-custom-php
require getcwd() . '/../../bootstrap/autoload.php';
$app = require_once getcwd() . '/../../bootstrap/app.php';
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$id = $app['encrypter']->decrypt($_COOKIE[$app['config']['session.cookie']]);
$app['session']->driver()->setId($id);
$app['session']->driver()->start();
if(!$app['auth']->check()) return ["is_loggedin"=>false];
$salida = $app['auth']->user()->toArray();
$salida["is_loggedin"] = true;
return($salida);
}
然后将 qa_get_logged_in_user() 修改为
$r = laravelauth();
if($r["is_loggedin"]){
return array(
'userid' => $r["id"],
'publicusername' => $r["name"],
'email' => $r['email'],
'level' => QA_USER_LEVEL_BASIC //(select the level)
);
}
您可以根据 laravel 用户属性或您喜欢的任何内容选择用户级别。
于 2015-05-06T01:16:32.720 回答
0
创建一个作曲家包怎么样,更好的是,使用 laravel 工作台来创建一个 laravel 特定的作曲家包?
于 2013-10-18T17:13:56.113 回答
0
OSQA 使用完全不同的语言,老实说,这会更加困难。Q2A 像 Laravel 一样使用 PHP,但它是一个独立的应用程序,并且本身就是它自己的框架。
然而,Q2A 确实有一个单点登录的概念,所以如果你在 Laravel 中设置了用户,他们可以与 Q2A 集成。有关更多信息,请参阅 Q2A 文档。
于 2014-01-31T16:17:38.007 回答