Fix create forum whithout session - refs BT#9892 #TMI

Angel Fernando Quiroz Campos 11 years ago
parent 60d135be7c
commit 17f8e38ed4
  1. 19
      main/forum/forumfunction.inc.php
  2. 19
      main/newscorm/learnpath.class.php
  3. 21
      main/newscorm/learnpathItem.class.php

@ -5590,14 +5590,23 @@ function getAttachmentIdsByPostId($postId, $courseId = null) {
*/
function getForumCategoryByTitle($title, $courseId, $sessionId = 0)
{
$sessionId = intval($sessionId);
$forumCategoryTable = Database::get_course_table(TABLE_FORUM_CATEGORY);
$itemProperty = Database::get_course_table(TABLE_ITEM_PROPERTY);
$fakeFrom = <<<SQL
$forumCategoryTable fc
INNER JOIN $itemProperty ip
ON (fc.cat_id = ip.ref AND fc.c_id = ip.c_id AND fc.session_id = ip.session_id)
SQL;
$fakeFrom = "$forumCategoryTable fc
INNER JOIN $itemProperty ip ";
if ($sessionId === 0) {
$fakeFrom .= "ON (
fc.cat_id = ip.ref AND fc.c_id = ip.c_id AND (fc.session_id = ip.session_id OR ip.session_id IS NULL)
) ";
} else {
$fakeFrom .= "ON (
fc.cat_id = ip.ref AND fc.c_id = ip.c_id AND fc.session_id = ip.session_id
) ";
}
$resultData = Database::select(
'fc.*',

@ -10784,11 +10784,20 @@ EOD;
$forumTable = Database::get_course_table(TABLE_FORUM);
$itemProperty = Database::get_course_table(TABLE_ITEM_PROPERTY);
$fakeFrom = <<<SQL
$forumTable f
INNER JOIN $itemProperty ip
ON (f.forum_id = ip.ref AND f.c_id = ip.c_id AND f.session_id = ip.session_id)
SQL;
$fakeFrom = "$forumTable f
INNER JOIN $itemProperty ip ";
if ($this->lp_session_id == 0) {
$fakeFrom .= "ON (
f.forum_id = ip.ref AND f.c_id = ip.c_id AND (
f.session_id = ip.session_id OR ip.session_id IS NULL
)
) ";
} else {
$fakeFrom .= "ON (
f.forum_id = ip.ref AND f.c_id = ip.c_id AND f.session_id = ip.session_id
) ";
}
$resultData = Database::select(
'f.*',

@ -4418,14 +4418,25 @@ class learnpathItem
*/
public function getForumThread($lpCourseId, $lpSessionId = 0)
{
$lpSessionId = intval($lpSessionId);
$forumThreadTable = Database::get_course_table(TABLE_FORUM_THREAD);
$itemProperty = Database::get_course_table(TABLE_ITEM_PROPERTY);
$fakeFrom = <<<SQL
$forumThreadTable ft
INNER JOIN $itemProperty ip
ON (ft.thread_id = ip.ref AND ft.c_id = ip.c_id AND ft.session_id = ip.session_id)
SQL;
$fakeFrom = "$forumThreadTable ft
INNER JOIN $itemProperty ip ";
if ($lpSessionId == 0) {
$fakeFrom .= "ON (
ft.thread_id = ip.ref AND ft.c_id = ip.c_id AND (
ft.session_id = ip.session_id OR ip.session_id IS NULL
)
) ";
} else {
$fakeFrom .= "ON (
ft.thread_id = ip.ref AND ft.c_id = ip.c_id AND ft.session_id = ip.session_id
) ";
}
$resultData = Database::select(
'ft.*',

Loading…
Cancel
Save