|
@@ -670,7 +670,7 @@ function store_forumcategory($values, $courseInfo = [], $showMessage = true)
|
|
|
function store_forum($values, $courseInfo = [], $returnId = false)
|
|
|
{
|
|
|
$courseInfo = empty($courseInfo) ? api_get_course_info() : $courseInfo;
|
|
|
- $course_id = $courseInfo['real_id'];
|
|
|
+ $courseId = $courseInfo['real_id'];
|
|
|
$session_id = api_get_session_id();
|
|
|
$group_id = api_get_group_id();
|
|
|
if (isset($values['group_id']) && !empty($values['group_id'])) {
|
|
@@ -690,7 +690,7 @@ function store_forum($values, $courseInfo = [], $returnId = false)
|
|
|
$sql = "SELECT MAX(forum_order) as sort_max
|
|
|
FROM $table_forums
|
|
|
WHERE
|
|
|
- c_id = $course_id AND
|
|
|
+ c_id = $courseId AND
|
|
|
forum_category='".Database::escape_string($values['forum_category'])."'";
|
|
|
$result = Database::query($sql);
|
|
|
$row = Database::fetch_array($result);
|
|
@@ -770,10 +770,62 @@ function store_forum($values, $courseInfo = [], $returnId = false)
|
|
|
delete_forum_image($values['forum_id']);
|
|
|
}
|
|
|
|
|
|
+ // Move groups from one group to another
|
|
|
+ if (isset($values['group_forum'])) {
|
|
|
+ $forumData = get_forums($values['forum_id']);
|
|
|
+ $currentGroupId = $forumData['forum_of_group'];
|
|
|
+ if ($currentGroupId != $values['group_forum']) {
|
|
|
+ $threads = get_threads($values['forum_id']);
|
|
|
+ $toGroupId = 'NULL';
|
|
|
+ if (!empty($values['group_forum'])) {
|
|
|
+ $toGroupId = $values['group_forum'];
|
|
|
+ }
|
|
|
+ $tableItemProperty = Database::get_course_table(TABLE_ITEM_PROPERTY);
|
|
|
+ foreach ($threads as $thread) {
|
|
|
+ $sql = "UPDATE $tableItemProperty
|
|
|
+ SET to_group_id = $toGroupId
|
|
|
+ WHERE
|
|
|
+ tool = '".TOOL_FORUM_THREAD."' AND
|
|
|
+ ref = ".$thread['thread_id']." AND
|
|
|
+ c_id = ".$courseId;
|
|
|
+ Database::query($sql);
|
|
|
+
|
|
|
+ $posts = getPosts(
|
|
|
+ $forumData,
|
|
|
+ $thread['thread_id']
|
|
|
+ );
|
|
|
+
|
|
|
+ foreach ($posts as $post) {
|
|
|
+ $postId = $post['post_id'];
|
|
|
+ $attachMentList = getAllAttachment($postId);
|
|
|
+ if (!empty($attachMentList)) {
|
|
|
+ foreach ($attachMentList as $attachMent) {
|
|
|
+ $sql = "UPDATE $tableItemProperty
|
|
|
+ SET to_group_id = $toGroupId
|
|
|
+ WHERE
|
|
|
+ tool = '".TOOL_FORUM_ATTACH."' AND
|
|
|
+ ref = ".$attachMent['iid']." AND
|
|
|
+ c_id = ".$courseId;
|
|
|
+ Database::query($sql);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql = "UPDATE $tableItemProperty
|
|
|
+ SET to_group_id = $toGroupId
|
|
|
+ WHERE
|
|
|
+ tool = '".TOOL_FORUM_POST."' AND
|
|
|
+ ref = $postId AND
|
|
|
+ c_id = $courseId";
|
|
|
+ Database::query($sql);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
Database::update(
|
|
|
$table_forums,
|
|
|
$params,
|
|
|
- ['c_id = ? AND forum_id = ?' => [$course_id, $values['forum_id']]]
|
|
|
+ ['c_id = ? AND forum_id = ?' => [$courseId, $values['forum_id']]]
|
|
|
);
|
|
|
|
|
|
api_item_property_update(
|
|
@@ -792,7 +844,7 @@ function store_forum($values, $courseInfo = [], $returnId = false)
|
|
|
$new_file_name = isset($new_file_name) ? $new_file_name : '';
|
|
|
}
|
|
|
$params = [
|
|
|
- 'c_id' => $course_id,
|
|
|
+ 'c_id' => $courseId,
|
|
|
'forum_title' => $values['forum_title'],
|
|
|
'forum_image' => $new_file_name,
|
|
|
'forum_comment' => isset($values['forum_comment']) ? $values['forum_comment'] : null,
|
|
@@ -1917,12 +1969,12 @@ function get_last_post_information($forum_id, $show_invisibles = false, $course_
|
|
|
function get_threads($forum_id, $courseId = null, $sessionId = null)
|
|
|
{
|
|
|
$groupId = api_get_group_id();
|
|
|
- $sessionId = $sessionId !== null ? intval($sessionId) : api_get_session_id();
|
|
|
+ $sessionId = $sessionId !== null ? (int) $sessionId : api_get_session_id();
|
|
|
$table_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
|
|
|
$table_threads = Database::get_course_table(TABLE_FORUM_THREAD);
|
|
|
$table_users = Database::get_main_table(TABLE_MAIN_USER);
|
|
|
|
|
|
- $courseId = $courseId !== null ? intval($courseId) : api_get_course_int_id();
|
|
|
+ $courseId = $courseId !== null ? (int) $courseId : api_get_course_int_id();
|
|
|
$groupInfo = GroupManager::get_group_properties($groupId);
|
|
|
$groupCondition = '';
|
|
|
|
|
@@ -3984,10 +4036,11 @@ function increase_thread_view($thread_id)
|
|
|
*
|
|
|
* @version february 2006, dokeos 1.8
|
|
|
*
|
|
|
+ * @param int $threadId
|
|
|
* @param string $lastPostId
|
|
|
* @param string $post_date
|
|
|
*/
|
|
|
-function updateThreadInfo($thread_id, $lastPostId, $post_date)
|
|
|
+function updateThreadInfo($threadId, $lastPostId, $post_date)
|
|
|
{
|
|
|
$table_threads = Database::get_course_table(TABLE_FORUM_THREAD);
|
|
|
$course_id = api_get_course_int_id();
|
|
@@ -3997,7 +4050,7 @@ function updateThreadInfo($thread_id, $lastPostId, $post_date)
|
|
|
thread_date = '".Database::escape_string($post_date)."'
|
|
|
WHERE
|
|
|
c_id = $course_id AND
|
|
|
- thread_id='".Database::escape_string($thread_id)."'"; // this needs to be cleaned first
|
|
|
+ thread_id='".Database::escape_string($threadId)."'"; // this needs to be cleaned first
|
|
|
Database::query($sql);
|
|
|
}
|
|
|
|
|
@@ -5041,7 +5094,7 @@ function edit_forum_attachment_file($file_comment, $post_id, $id_attach)
|
|
|
/**
|
|
|
* Show a list with all the attachments according to the post's id.
|
|
|
*
|
|
|
- * @param int $post_id
|
|
|
+ * @param int $postId
|
|
|
*
|
|
|
* @return array with the post info
|
|
|
*
|
|
@@ -5049,15 +5102,20 @@ function edit_forum_attachment_file($file_comment, $post_id, $id_attach)
|
|
|
*
|
|
|
* @version avril 2008, dokeos 1.8.5
|
|
|
*/
|
|
|
-function get_attachment($post_id)
|
|
|
+function get_attachment($postId)
|
|
|
{
|
|
|
- $forum_table_attachment = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
|
|
|
+ $table = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
|
|
|
$course_id = api_get_course_int_id();
|
|
|
$row = [];
|
|
|
- $post_id = intval($post_id);
|
|
|
+ $postId = (int) $postId;
|
|
|
+
|
|
|
+ if (empty($postId)) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+
|
|
|
$sql = "SELECT iid, path, filename, comment
|
|
|
- FROM $forum_table_attachment
|
|
|
- WHERE c_id = $course_id AND post_id = $post_id";
|
|
|
+ FROM $table
|
|
|
+ WHERE c_id = $course_id AND post_id = $postId";
|
|
|
$result = Database::query($sql);
|
|
|
if (Database::num_rows($result) != 0) {
|
|
|
$row = Database::fetch_array($result);
|
|
@@ -5075,7 +5133,12 @@ function getAllAttachment($postId)
|
|
|
{
|
|
|
$forumAttachmentTable = Database::get_course_table(TABLE_FORUM_ATTACHMENT);
|
|
|
$courseId = api_get_course_int_id();
|
|
|
- $postId = intval($postId);
|
|
|
+ $postId = (int) $postId;
|
|
|
+
|
|
|
+ if (empty($postId)) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+
|
|
|
$columns = ['iid', 'path', 'filename', 'comment'];
|
|
|
$conditions = [
|
|
|
'where' => [
|