I'm struggling to integrate Q2A with Chyrp-Lite (a lightweight open source blog program) through SSO. Following is the part of my "qa-external-users.php" file I modified before creating database. Please help. Thank you.
function qa_get_mysql_user_column_type()
{
return 'INT';
}
function qa_get_login_links($relative_url_prefix, $redirect_back_to_url)
{
return array(
'login' => $relative_url_prefix.'blog/?action=login',
'register' => $relative_url_prefix.'blog/?action=register',
'logout' => $relative_url_prefix.'blog/'
);
}
function qa_get_logged_in_user()
{
session_start(); /*I tried with and without this line*/
if (!empty($_SESSION['user_id'])) { /*I tried replacing !empty with isset*/
$userid = $_SESSION['user_id'];
$result = qa_db_read_one_assoc(qa_db_query_sub(
'SELECT id, login, email, group_id FROM chy_users WHERE id=$', /*I tried id=# also tried id=$userid*/
$userid
));
if (is_array($result)) {
return array(
'userid' => $result['id'],
'publicusername' => $result['login'],
'email' => $result['email'],
'level' => ($result['group_id'] == 1) ? QA_USER_LEVEL_ADMIN : QA_USER_LEVEL_BASIC
); /*I tried ($result['group_id'] == '1')*/
}
}
return null;
}
function qa_get_user_email($userid)
{
$result = qa_db_read_one_assoc(qa_db_query_sub(
'SELECT email FROM chy_users WHERE id=#',
$userid
));
if (is_array($result))
return $result['email'];
return null;
}
function qa_get_userids_from_public($publicusernames)
{
$publictouserid = array();
if (count($publicusernames)) {
$escapedusernames = array();
foreach ($publicusernames as $publicusername)
$escapedusernames[] = "'" . qa_db_escape_string($publicusername) . "'";
$results = qa_db_read_all_assoc(qa_db_query_raw(
'SELECT login, id FROM chy_users WHERE login IN (' . implode(',', $escapedusernames) . ')'
));
foreach ($results as $result)
$publictouserid[$result['login']] = $result['id'];
}
return $publictouserid;
}
function qa_get_public_from_userids($userids)
{
$useridtopublic = array();
if (count($userids)) {
$escapeduserids = array();
foreach ($userids as $userid)
$escapeduserids[] = "'" . qa_db_escape_string($userid) . "'";
$results = qa_db_read_all_assoc(qa_db_query_raw(
'SELECT login, id FROM chy_users WHERE id IN (' . implode(',', $escapeduserids) . ')'
));
foreach ($results as $result)
$useridtopublic[$result['id']] = $result['login'];
}
return $useridtopublic;
}