|
|
|
|
@ -875,32 +875,36 @@ function deleteForumCategoryThread($content, $id) |
|
|
|
|
*/ |
|
|
|
|
function delete_post($post_id) |
|
|
|
|
{ |
|
|
|
|
$table_posts = Database :: get_course_table(TABLE_FORUM_POST); |
|
|
|
|
$table_threads = Database :: get_course_table(TABLE_FORUM_THREAD); |
|
|
|
|
$post_id = intval($post_id); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$em = Database::getManager(); |
|
|
|
|
|
|
|
|
|
// Get parent_post_id of deleted post. |
|
|
|
|
$tab_post_info = get_post_information($post_id); |
|
|
|
|
$post = $em |
|
|
|
|
->getRepository('ChamiloCourseBundle:CForumPost') |
|
|
|
|
->findOneBy(['cId' => $course_id, 'postId' => $post_id]); |
|
|
|
|
|
|
|
|
|
if ($tab_post_info) { |
|
|
|
|
$post_parent_id_of_deleted_post = intval($tab_post_info['post_parent_id']); |
|
|
|
|
$thread_id_of_deleted_post = $tab_post_info['thread_id']; |
|
|
|
|
$forum_if_of_deleted_post = $tab_post_info['forum_id']; |
|
|
|
|
$sql = "UPDATE $table_posts |
|
|
|
|
SET post_parent_id=$post_parent_id_of_deleted_post |
|
|
|
|
if ($post) { |
|
|
|
|
$em |
|
|
|
|
->createQuery(' |
|
|
|
|
UPDATE ChamiloCourseBundle:CForumPost p |
|
|
|
|
SET p.postParentId = :parent_of_deleted_post |
|
|
|
|
WHERE |
|
|
|
|
c_id = $course_id AND |
|
|
|
|
post_parent_id=$post_id AND |
|
|
|
|
thread_id=$thread_id_of_deleted_post AND |
|
|
|
|
forum_id=$forum_if_of_deleted_post"; |
|
|
|
|
|
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
// Note: This has to be a recursive function that deletes all of the posts in this block. |
|
|
|
|
$sql = "DELETE FROM $table_posts |
|
|
|
|
WHERE c_id = $course_id AND post_id = ".intval($post_id).""; |
|
|
|
|
Database::query($sql); |
|
|
|
|
p.cId = :course AND |
|
|
|
|
p.postParentId = :post AND |
|
|
|
|
p.threadId = :thread_of_deleted_post AND |
|
|
|
|
p.forumId = :forum_of_deleted_post |
|
|
|
|
') |
|
|
|
|
->execute([ |
|
|
|
|
'parent_of_deleted_post' => $post->getPostParentId(), |
|
|
|
|
'course' => $course_id, |
|
|
|
|
'post' => $post->getPostId(), |
|
|
|
|
'thread_of_deleted_post' => $post->getThreadId(), |
|
|
|
|
'forum_of_deleted_post' => $post->getForumId() |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
$em->remove($post); |
|
|
|
|
$em->flush(); |
|
|
|
|
|
|
|
|
|
// Delete attachment file about this post id. |
|
|
|
|
delete_attachment($post_id); |
|
|
|
|
@ -1867,7 +1871,7 @@ function getThreadInfo($threadId, $cId) |
|
|
|
|
* |
|
|
|
|
* @return array containing all the information about the posts of a given thread |
|
|
|
|
*/ |
|
|
|
|
function getPosts($threadId, $orderDirection = 'ASC', $recursive = false, $postId = 0, $depth = -1) |
|
|
|
|
function getPosts($threadId, $orderDirection = 'ASC', $recursive = false, $postId = null, $depth = -1) |
|
|
|
|
{ |
|
|
|
|
$list = []; |
|
|
|
|
|
|
|
|
|
@ -2498,7 +2502,7 @@ function store_thread($current_forum, $values, $courseInfo = array(), $showMessa |
|
|
|
|
'poster_name' => isset($values['poster_name']) ? $values['poster_name'] : '', |
|
|
|
|
'post_date' => $post_date, |
|
|
|
|
'post_notification' => isset($values['post_notification']) ? $values['post_notification'] : '', |
|
|
|
|
'post_parent_id' => 0, |
|
|
|
|
'post_parent_id' => null, |
|
|
|
|
'visible' => $visible, |
|
|
|
|
]; |
|
|
|
|
$last_post_id = Database::insert($table_posts, $params); |
|
|
|
|
@ -3379,7 +3383,7 @@ function show_edit_post_form( |
|
|
|
|
$form->addElement('hidden', 'thread_id', $current_thread['thread_id']); |
|
|
|
|
$form->addElement('hidden', 'id_attach', $id_attach); |
|
|
|
|
|
|
|
|
|
if ($current_post['post_parent_id'] == 0) { |
|
|
|
|
if (empty($current_post['post_parent_id'])) { |
|
|
|
|
$form->addElement('hidden', 'is_first_post_of_thread', '1'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -3481,7 +3485,7 @@ function show_edit_post_form( |
|
|
|
|
|
|
|
|
|
if ($forum_setting['allow_sticky'] && |
|
|
|
|
api_is_allowed_to_edit(null, true) && |
|
|
|
|
$current_post['post_parent_id'] == 0 |
|
|
|
|
empty($current_post['post_parent_id']) |
|
|
|
|
) { |
|
|
|
|
// The sticky checkbox only appears when it is the first post of a thread. |
|
|
|
|
$form->addElement('checkbox', 'thread_sticky', '', get_lang('StickyPost')); |
|
|
|
|
@ -4264,12 +4268,12 @@ function store_move_post($values) |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Moving the post to the newly created thread. |
|
|
|
|
$sql = "UPDATE $table_posts SET thread_id='".intval($new_thread_id)."', post_parent_id='0' |
|
|
|
|
$sql = "UPDATE $table_posts SET thread_id='".intval($new_thread_id)."', post_parent_id = NULL |
|
|
|
|
WHERE c_id = $course_id AND post_id='".intval($values['post_id'])."'"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
// Resetting the parent_id of the thread to 0 for all those who had this moved post as parent. |
|
|
|
|
$sql = "UPDATE $table_posts SET post_parent_id='0' |
|
|
|
|
$sql = "UPDATE $table_posts SET post_parent_id = NULL |
|
|
|
|
WHERE c_id = $course_id AND post_parent_id='".intval($values['post_id'])."'"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
@ -4328,12 +4332,12 @@ function store_move_post($values) |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
// moving to the chosen thread |
|
|
|
|
$sql = "UPDATE $table_posts SET thread_id='".intval($_POST['thread'])."', post_parent_id='0' |
|
|
|
|
$sql = "UPDATE $table_posts SET thread_id='".intval($_POST['thread'])."', post_parent_id = NULL |
|
|
|
|
WHERE c_id = $course_id AND post_id='".intval($values['post_id'])."'"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
// resetting the parent_id of the thread to 0 for all those who had this moved post as parent |
|
|
|
|
$sql = "UPDATE $table_posts SET post_parent_id='0' |
|
|
|
|
$sql = "UPDATE $table_posts SET post_parent_id = NULL |
|
|
|
|
WHERE c_id = $course_id AND post_parent_id='".intval($values['post_id'])."'"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
|