Fix forum categories, forum list using resources and entities.

pull/3064/head
Julio 5 years ago
parent ff47afe4e3
commit 68eaa416a2
  1. 219
      public/main/forum/forumfunction.inc.php
  2. 129
      public/main/forum/index.php
  3. 2
      src/CourseBundle/Entity/CForumCategory.php
  4. 4
      src/CourseBundle/Entity/CForumForum.php

@ -1,8 +1,15 @@
<?php
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Entity\Resource\AbstractResource;
use Chamilo\CoreBundle\Entity\Resource\ResourceLink;
use Chamilo\CoreBundle\Framework\Container;
use Chamilo\CourseBundle\Entity\CForumCategory;
use Chamilo\CourseBundle\Entity\CForumForum;
use Chamilo\CourseBundle\Entity\CForumPost;
use Chamilo\CourseBundle\Entity\CForumThread;
use Chamilo\CourseBundle\Entity\CGroupInfo;
use Chamilo\UserBundle\Entity\User;
use ChamiloSession as Session;
use Doctrine\Common\Collections\Criteria;
@ -292,8 +299,9 @@ function show_add_forum_form($inputvalues = [], $lp_id)
// Dropdown list: Forum categories
$forum_categories = get_forum_categories();
foreach ($forum_categories as $key => $value) {
$forum_categories_titles[$value['cat_id']] = $value['cat_title'];
$forum_categories_titles = [];
foreach ($forum_categories as $value) {
$forum_categories_titles[$value->getCatId()] = $value->getCatTitle();
}
$form->addElement(
'select',
@ -587,10 +595,6 @@ function show_edit_forumcategory_form($inputvalues = [])
* @param array $values
* @param array $courseInfo
* @param bool $showMessage
*
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
*
* @version february 2006, dokeos 1.8
*/
function store_forumcategory($values, $courseInfo = [], $showMessage = true)
{
@ -609,6 +613,8 @@ function store_forumcategory($values, $courseInfo = [], $showMessage = true)
$clean_cat_title = $values['forum_category_title'];
$last_id = null;
$repo = Container::getForumCategoryRepository();
if (isset($values['forum_category_id'])) {
// Storing after edition.
$params = [
@ -648,22 +654,30 @@ function store_forumcategory($values, $courseInfo = [], $showMessage = true)
$values['item_id'] = $values['forum_category_id'];
} else {
$params = [
'c_id' => $course_id,
'cat_title' => $clean_cat_title,
'cat_comment' => isset($values['forum_category_comment']) ? $values['forum_category_comment'] : '',
'cat_order' => $new_max,
'session_id' => $session_id,
'locked' => 0,
'cat_id' => 0,
];
$last_id = Database::insert($table_categories, $params);
$category = new CForumCategory();
$category
->setCatTitle($clean_cat_title)
->setCatComment(isset($values['forum_category_comment']) ? $values['forum_category_comment'] : '')
->setCatOrder($new_max)
->setCId($course_id)
->setSessionId($session_id)
;
$user = api_get_user_entity(api_get_user_id());
$course = api_get_course_entity($course_id);
$session = api_get_session_entity($session_id);
$repo->addResourceToCourse($category, ResourceLink::VISIBILITY_PUBLISHED, $user, $course, $session);
$repo->getEntityManager()->persist($category);
$repo->getEntityManager()->flush();
$last_id = $category->getIid();
if ($last_id > 0) {
$sql = "UPDATE $table_categories SET cat_id = $last_id WHERE iid = $last_id";
Database::query($sql);
api_item_property_update(
/*api_item_property_update(
$courseInfo,
TOOL_FORUM_CATEGORY,
$last_id,
@ -675,7 +689,7 @@ function store_forumcategory($values, $courseInfo = [], $showMessage = true)
TOOL_FORUM_CATEGORY,
0,
$courseInfo
);
);*/
}
$return_message = get_lang('The forum category has been added');
@ -710,10 +724,6 @@ function store_forumcategory($values, $courseInfo = [], $showMessage = true)
* @param bool $returnId
*
* @return string language variable
*
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
*
* @version february 2006, dokeos 1.8
*/
function store_forum($values, $courseInfo = [], $returnId = false)
{
@ -786,40 +796,65 @@ function store_forum($values, $courseInfo = [], $returnId = false)
}
}
$repo = Container::getForumRepository();
if (!isset($values['forum_id'])) {
$forum = new CForumForum();
$forum
->setCId($courseId)
->setSessionId($session_id)
->setForumOrder(isset($new_max) ? $new_max : null)
;
} else {
$forum = $repo->find($values['forum_id']);
}
$forumCategory = null;
if (!empty($values['forum_category'])) {
$repoForumCategory = Container::getForumCategoryRepository();
$forumCategory = $repoForumCategory->find($values['forum_category']);
}
//'forum_image' => $new_file_name,
$forum
->setForumTitle($values['forum_title'])
->setForumComment($values['forum_comment'] ?? null)
->setForumCategory($forumCategory)
->setAllowAnonymous($values['allow_anonymous_group']['allow_anonymous'] ?? null)
->setAllowEdit($values['students_can_edit_group']['students_can_edit'] ?? null)
->setApprovalDirectPost($values['approval_direct_group']['approval_direct'] ?? null)
->setAllowAttachments($values['allow_attachments_group']['allow_attachments'] ?? null)
->setAllowNewThreads($values['allow_new_threads_group']['allow_new_threads'] ?? null)
->setDefaultView($values['default_view_type_group']['default_view_type'] ?? null)
->setForumOfGroup($values['group_forum'] ?? null)
->setForumGroupPublicPrivate($values['public_private_group_forum_group']['public_private_group_forum'] ?? null)
->setModerated($values['moderated']['moderated'] ?? null)
->setStartTime(!empty($values['start_time']) ? api_get_utc_datetime($values['start_time']) : null)
->setEndTime(!empty($values['end_time']) ? api_get_utc_datetime($values['end_time']) : null)
->setSessionId($session_id)
->setLpId($values['lp_id'] ?? 0)
;
$user = api_get_user_entity(api_get_user_id());
$course = api_get_course_entity($courseId);
$session = api_get_session_entity($session_id);
if (isset($values['forum_id'])) {
// Storing after edition.
$params = [
'forum_title' => $values['forum_title'],
'forum_comment' => isset($values['forum_comment']) ? $values['forum_comment'] : null,
'forum_category' => isset($values['forum_category']) ? $values['forum_category'] : null,
'allow_anonymous' => isset($values['allow_anonymous_group']['allow_anonymous']) ? $values['allow_anonymous_group']['allow_anonymous'] : null,
'allow_edit' => isset($values['students_can_edit_group']['students_can_edit']) ? $values['students_can_edit_group']['students_can_edit'] : null,
'approval_direct_post' => isset($values['approval_direct_group']['approval_direct']) ? $values['approval_direct_group']['approval_direct'] : null,
'allow_attachments' => isset($values['allow_attachments_group']['allow_attachments']) ? $values['allow_attachments_group']['allow_attachments'] : null,
'allow_new_threads' => isset($values['allow_new_threads_group']['allow_new_threads']) ? $values['allow_new_threads_group']['allow_new_threads'] : null,
'default_view' => isset($values['default_view_type_group']['default_view_type']) ? $values['default_view_type_group']['default_view_type'] : null,
'forum_of_group' => isset($values['group_forum']) ? $values['group_forum'] : null,
'forum_group_public_private' => isset($values['public_private_group_forum_group']['public_private_group_forum']) ? $values['public_private_group_forum_group']['public_private_group_forum'] : null,
'moderated' => $values['moderated']['moderated'],
'start_time' => !empty($values['start_time']) ? api_get_utc_datetime($values['start_time']) : null,
'end_time' => !empty($values['end_time']) ? api_get_utc_datetime($values['end_time']) : null,
'session_id' => $session_id,
'lp_id' => isset($values['lp_id']) ? intval($values['lp_id']) : 0,
];
$repo->getEntityManager()->persist($forum);
$repo->getEntityManager()->flush();
if (isset($upload_ok)) {
if ($has_attachment) {
$params['forum_image'] = $new_file_name;
//$params['forum_image'] = $new_file_name;
}
}
if (isset($values['remove_picture']) && $values['remove_picture'] == 1) {
$params['forum_image'] = '';
delete_forum_image($values['forum_id']);
/*$params['forum_image'] = '';
delete_forum_image($values['forum_id']);*/
}
// Move groups from one group to another
if (isset($values['group_forum'])) {
if (isset($values['group_forum']) && false) {
$forumData = get_forums($values['forum_id']);
$currentGroupId = $forumData['forum_of_group'];
if ($currentGroupId != $values['group_forum']) {
@ -870,12 +905,7 @@ function store_forum($values, $courseInfo = [], $returnId = false)
}
}
Database::update(
$table_forums,
$params,
['c_id = ? AND forum_id = ?' => [$courseId, $values['forum_id']]]
);
/*
api_item_property_update(
$courseInfo,
TOOL_FORUM,
@ -883,10 +913,10 @@ function store_forum($values, $courseInfo = [], $returnId = false)
'ForumUpdated',
api_get_user_id(),
$groupInfo
);
);*/
$return_message = get_lang('The forum has been modified');
$forumId = $values['forum_id'];
$forumId = $forum->getIid();
$logInfo = [
'tool' => TOOL_FORUM,
@ -900,31 +930,12 @@ function store_forum($values, $courseInfo = [], $returnId = false)
if ($image_moved) {
$new_file_name = isset($new_file_name) ? $new_file_name : '';
}
$params = [
'c_id' => $courseId,
'forum_title' => $values['forum_title'],
'forum_image' => $new_file_name,
'forum_comment' => isset($values['forum_comment']) ? $values['forum_comment'] : null,
'forum_category' => isset($values['forum_category']) ? $values['forum_category'] : null,
'allow_anonymous' => isset($values['allow_anonymous_group']['allow_anonymous']) ? $values['allow_anonymous_group']['allow_anonymous'] : null,
'allow_edit' => isset($values['students_can_edit_group']['students_can_edit']) ? $values['students_can_edit_group']['students_can_edit'] : null,
'approval_direct_post' => isset($values['approval_direct_group']['approval_direct']) ? $values['approval_direct_group']['approval_direct'] : null,
'allow_attachments' => isset($values['allow_attachments_group']['allow_attachments']) ? $values['allow_attachments_group']['allow_attachments'] : null,
'allow_new_threads' => isset($values['allow_new_threads_group']['allow_new_threads']) ? $values['allow_new_threads_group']['allow_new_threads'] : null,
'default_view' => isset($values['default_view_type_group']['default_view_type']) ? $values['default_view_type_group']['default_view_type'] : null,
'forum_of_group' => isset($values['group_forum']) ? $values['group_forum'] : null,
'forum_group_public_private' => isset($values['public_private_group_forum_group']['public_private_group_forum']) ? $values['public_private_group_forum_group']['public_private_group_forum'] : null,
'moderated' => isset($values['moderated']['moderated']) ? (int) $values['moderated']['moderated'] : 0,
'start_time' => !empty($values['start_time']) ? api_get_utc_datetime($values['start_time']) : null,
'end_time' => !empty($values['end_time']) ? api_get_utc_datetime($values['end_time']) : null,
'forum_order' => isset($new_max) ? $new_max : null,
'session_id' => $session_id,
'lp_id' => isset($values['lp_id']) ? (int) $values['lp_id'] : 0,
'locked' => 0,
'forum_id' => 0,
];
$forumId = Database::insert($table_forums, $params);
$repo->addResourceToCourse($forum, ResourceLink::VISIBILITY_PUBLISHED, $user, $course, $session);
$repo->getEntityManager()->persist($forum);
$repo->getEntityManager()->flush();
$forumId = $forum->getIid();
if ($forumId > 0) {
$sql = "UPDATE $table_forums SET forum_id = iid WHERE iid = $forumId";
Database::query($sql);
@ -948,7 +959,7 @@ function store_forum($values, $courseInfo = [], $returnId = false)
}
}
api_item_property_update(
/*api_item_property_update(
$courseInfo,
TOOL_FORUM,
$forumId,
@ -962,7 +973,7 @@ function store_forum($values, $courseInfo = [], $returnId = false)
TOOL_FORUM,
$group_id,
$courseInfo
);
);*/
$logInfo = [
'tool' => TOOL_FORUM,
@ -1553,14 +1564,19 @@ function move_up_down($content, $direction, $id)
* @param int $courseId Optional. The course ID
* @param int $sessionId Optional. The session ID
*
* @return array containing all the information about all the forum categories
*
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
*
* @version february 2006, dokeos 1.8
* @return CForumCategory[]
*/
function get_forum_categories($id = '', $courseId = 0, $sessionId = 0)
function get_forum_categories($id = 0, $courseId = 0, $sessionId = 0)
{
$repo = Container::getForumCategoryRepository();
$course = api_get_course_entity($courseId);
$session = api_get_session_entity($sessionId);
$qb = $repo->getResources(api_get_user_entity(api_get_user_id()), $course->getResourceNode(), $course, $session);
return $qb->getQuery()->getResult();
$table_categories = Database::get_course_table(TABLE_FORUM_CATEGORY);
$table_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
@ -1648,6 +1664,16 @@ function get_forum_categories($id = '', $courseId = 0, $sessionId = 0)
*/
function get_forums_in_category($cat_id, $courseId = 0)
{
$repo = Container::getForumRepository();
$course = api_get_course_entity($courseId);
$qb = $repo->getResourcesByCourse($course, null);
$qb->andWhere('resource.forumCategory = :catId')
->setParameter('catId', $cat_id);
return $qb->getQuery()->getResult();
$table_forums = Database::get_course_table(TABLE_FORUM);
$table_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY);
@ -1696,20 +1722,27 @@ function get_forums_in_category($cat_id, $courseId = 0)
* @param bool $includeGroupsForum
* @param int $sessionId
*
* @return array an array containing all the information about the forums (regardless of their category)
*
* @todo check $sql4 because this one really looks fishy.
*
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
*
* @version february 2006, dokeos 1.8
* @return CForumForum[]
*/
function get_forums(
$id = 0,
$course_code = '',
$courseId = '',
$includeGroupsForum = true,
$sessionId = 0
) {
$repo = Container::getForumRepository();
$courseId = empty($courseId) ? api_get_course_int_id() : $courseId;
$course = api_get_course_entity($courseId);
$session = api_get_session_entity($sessionId);
$qb = $repo->getResourcesByCourse($course, $session);
/*$qb->andWhere('resource.forumCategory = :catId')
->setParameter('catId', $cat_id);
*/
return $qb->getQuery()->getResult();
$id = (int) $id;
$course_info = api_get_course_info($course_code);

@ -44,7 +44,9 @@ $this_section = SECTION_COURSES;
$nameTools = get_lang('Forums');
$_course = api_get_course_info();
$courseEntity = $_course['entity'];
$sessionId = api_get_session_id();
$sessionEntity = api_get_session_entity($sessionId);
$_user = api_get_user_info();
$hideNotifications = api_get_course_setting('hide_forum_notifications');
@ -252,6 +254,7 @@ if ($translate) {
// Fixes error if there forums with no category.
$forumsInNoCategory = get_forums_in_category(0);
if (!empty($forumsInNoCategory)) {
$forumCategories = array_merge(
$forumCategories,
@ -270,34 +273,39 @@ if (!empty($forumsInNoCategory)) {
// Step 3: We display the forum_categories first.
$listForumCategory = [];
$forumCategoryInfo = [];
if (is_array($forumCategories)) {
foreach ($forumCategories as $forumCategory) {
$forumCategoryInfo['id'] = $forumCategory['cat_id'];
$categoryId = $forumCategory->getIid();
$categorySessionId = $forumCategory->getSessionId();
$forumCategoryInfo['id'] = $categoryId;
$forumCategoryInfo['title'] = $forumCategory->getCatTitle();
/*
if (empty($forumCategory['cat_title'])) {
$forumCategoryInfo['title'] = get_lang('Without category');
} else {
$forumCategoryInfo['title'] = $forumCategory['cat_title'];
}
$forumCategoryInfo['extra_fields'] = $forumCategory['extra_fields'];
$forumCategoryInfo['icon_session'] = api_get_session_image($forumCategory['session_id'], $_user['status']);
}*/
//$forumCategoryInfo['extra_fields'] = $forumCategory['extra_fields'];
$forumCategoryInfo['icon_session'] = api_get_session_image($categorySessionId, $_user['status']);
// Validation when belongs to a session
$forumCategoryInfo['description'] = $forumCategory['cat_comment'];
$forumCategory['session_display'] = null;
if (empty($sessionId) && !empty($forumCategory['session_name'])) {
$forumCategory['session_display'] = ' ('.Security::remove_XSS($forumCategory['session_name']).')';
$forumCategoryInfo['description'] = $forumCategory->getCatComment();
$forumCategoryInfo['session_display'] = null;
if (!empty($sessionId)) {
$forumCategoryInfo['session_display'] = ' ('.Security::remove_XSS($categorySessionId).')';
}
$tools = null;
$idCategory = (int) $forumCategory['cat_id'];
$forumCategoryInfo['url'] = 'viewforumcategory.php?'.api_get_cidreq().'&forumcategory='.$idCategory;
$forumCategoryInfo['url'] = 'viewforumcategory.php?'.api_get_cidreq().'&forumcategory='.$categoryId;
$visibility = $forumCategory->isVisible($courseEntity, $sessionEntity);
if (!empty($idCategory)) {
if (api_is_allowed_to_edit(false, true) &&
!($forumCategory['session_id'] == 0 && $sessionId != 0)
!($categorySessionId == 0 && $sessionId != 0)
) {
$tools .= '<a href="'.api_get_self().'?'.api_get_cidreq()
.'&action=edit&content=forumcategory&id='.$idCategory
.'&action=edit&content=forumcategory&id='.$categoryId
.'">'.Display::return_icon(
'edit.png',
get_lang('Edit'),
@ -307,7 +315,7 @@ if (is_array($forumCategories)) {
.'</a>';
$tools .= '<a href="'.api_get_self().'?'.api_get_cidreq()
.'&action=delete&content=forumcategory&id='.$idCategory
.'&action=delete&content=forumcategory&id='.$categoryId
."\" onclick=\"javascript:if(!confirm('"
.addslashes(api_htmlentities(
get_lang('Delete forum category ?'),
@ -323,17 +331,17 @@ if (is_array($forumCategories)) {
.'</a>';
$tools .= return_visible_invisible_icon(
'forumcategory',
$idCategory,
$forumCategory['visibility']
$categoryId,
$visibility
);
$tools .= return_lock_unlock_icon(
'forumcategory',
$idCategory,
$forumCategory['locked']
$categoryId,
$forumCategory->getLocked()
);
$tools .= return_up_down_icon(
'forumcategory',
$idCategory,
$categoryId,
$forumCategories
);
}
@ -343,15 +351,16 @@ if (is_array($forumCategories)) {
$forumCategoryInfo['forums'] = [];
// The forums in this category.
$forumInfo = [];
$forumsInCategory = get_forums_in_category($forumCategory['cat_id']);
$forumsInCategory = get_forums_in_category($categoryId);
if (!empty($forumsInCategory)) {
$forumsDetailsList = [];
// We display all the forums in this category.
foreach ($allCourseForums as $forum) {
$forumId = $forum->getIid();
// Here we clean the whatnew_post_info array a little bit because to display the icon we
// test if $whatsnew_post_info[$forum['forum_id']] is empty or not.
if (isset($forum['forum_id'])) {
/*if ($forum) {
if (!empty($whatsnew_post_info)) {
if (isset($whatsnew_post_info[$forum['forum_id']]) &&
is_array($whatsnew_post_info[$forum['forum_id']])
@ -364,11 +373,12 @@ if (is_array($forumCategories)) {
}
}
}
}
}*/
// Note: This can be speed up if we transform the $allCourseForums
// to an array that uses the forum_category as the key.
if (isset($forum['forum_category']) && $forum['forum_category'] == $forumCategory['cat_id']) {
if (true) {
//if (isset($forum['forum_category']) && $forum['forum_category'] == $forumCategory['cat_id']) {
$show_forum = false;
// SHOULD WE SHOW THIS PARTICULAR FORUM
// you are teacher => show forum
@ -391,15 +401,15 @@ if (is_array($forumCategories)) {
if ($show_forum) {
$form_count++;
$mywhatsnew_post_info = isset($whatsnew_post_info[$forum['forum_id']])
/*$mywhatsnew_post_info = isset($whatsnew_post_info[$forum['forum_id']])
? $whatsnew_post_info[$forum['forum_id']]
: null;
$forumInfo['id'] = $forum['forum_id'];
$forumInfo['forum_of_group'] = $forum['forum_of_group'];
$forumInfo['title'] = $forum['forum_title'];
: null;*/
$forumInfo['id'] = $forumId;
$forumInfo['forum_of_group'] = $forum->getForumOfGroup();
$forumInfo['title'] = $forum->getForumTitle();
$forumInfo['forum_image'] = null;
// Showing the image
if (!empty($forum['forum_image'])) {
/*if (!empty($forum['forum_image'])) {
$image_path = api_get_path(WEB_COURSE_PATH).api_get_course_path().'/upload/forum/images/'
.$forum['forum_image'];
$image_size = api_getimagesize($image_path);
@ -407,13 +417,13 @@ if (is_array($forumCategories)) {
if (!empty($image_size)) {
$forumInfo['forum_image'] = $image_path;
}
}
}*/
// Validation when belongs to a session
$forumInfo['icon_session'] = api_get_session_image(
$forum['session_id'],
$forum->getSessionId(),
$_user['status']
);
if ($forum['forum_of_group'] != '0') {
if ($forum->getForumOfGroup() != '0') {
$my_all_groups_forum_name = isset($all_groups[$forum['forum_of_group']]['name'])
? $all_groups[$forum['forum_of_group']]['name']
: null;
@ -424,27 +434,25 @@ if (is_array($forumCategories)) {
$forumInfo['forum_group_title'] = $group_title;
}
$forum['forum_of_group'] == 0 ? $groupid = '' : $groupid = $forum['forum_of_group'];
$forumInfo['visibility'] = $forum['visibility'];
$forumInfo['number_threads'] = isset($forum['number_of_threads'])
$groupId = $forum->getForumOfGroup();
$forumInfo['visibility'] = $forum->isVisible($courseEntity, $sessionEntity);
/*$forumInfo['number_threads'] = isset($forum['number_of_threads'])
? (int) $forum['number_of_threads']
: 0;
//$number_posts = isset($forum['number_of_posts']) ? $forum['number_of_posts'] : 0;
: 0;*/
$linkForum = api_get_path(WEB_CODE_PATH).'forum/viewforum.php?'.api_get_cidreq()
.'&gid='.$groupid.'&forum='.$forum['forum_id'];
.'&gid='.$groupId.'&forum='.$forumId;
$forumInfo['url'] = $linkForum;
if (!empty($forum['start_time']) && !empty($forum['end_time'])) {
$res = api_is_date_in_date_range($forum['start_time'], $forum['end_time']);
if (!empty($forum->getStartTime()) && !empty($forum->getEndTime())) {
$res = api_is_date_in_date_range($forum->getStartTime(), $forum->getEndTime());
if (!$res) {
$linkForum = $forum['forum_title'];
$linkForum = $forum->getForumTitle();
}
}
$forumInfo['description'] = Security::remove_XSS($forum['forum_comment']);
if ($forum['moderated'] == 1 && api_is_allowed_to_edit(false, true)) {
$forumInfo['description'] = Security::remove_XSS($forum->getForumComment());
if ($forum->isModerated() && api_is_allowed_to_edit(false, true)) {
$waitingCount = getCountPostsWithStatus(
CForumPost::STATUS_WAITING_MODERATION,
$forum
@ -459,7 +467,8 @@ if (is_array($forumCategories)) {
// The number of topics and posts.
if ($hideNotifications == false) {
// The number of topics and posts.
if ($forum['forum_of_group'] !== '0') {
/*
if ($forum->getForumOfGroup() !== '0') {
if (is_array($mywhatsnew_post_info) && !empty($mywhatsnew_post_info)) {
$forumInfo['alert'] = ' '.
Display::return_icon(
@ -478,11 +487,11 @@ if (is_array($forumCategories)) {
ICON_SIZE_SMALL
);
}
}
}*/
}
$poster_id = null;
// The last post in the forum.
if (isset($forum['last_poster_name']) && $forum['last_poster_name'] != '') {
/*if (isset($forum['last_poster_name']) && $forum['last_poster_name'] != '') {
$name = $forum['last_poster_name'];
$poster_id = 0;
$username = "";
@ -499,24 +508,24 @@ if (is_array($forumCategories)) {
$userinfo['username']
);
}
}
}*/
$forumInfo['last_poster_id'] = $poster_id;
if (!empty($forum['last_poster_id'])) {
/*if (!empty($forum['last_poster_id'])) {
$forumInfo['last_poster_date'] = api_convert_and_format_date($forum['last_post_date']);
$forumInfo['last_poster_user'] = display_user_link($poster_id, $name, null, $username);
$forumInfo['last_post_title'] = Security::remove_XSS(cut($forum['last_post_title'], 140));
$forumInfo['last_post_text'] = Security::remove_XSS(cut($forum['last_post_text'], 140));
}
}*/
if (api_is_allowed_to_edit(false, true)
&& !($forum['session_id'] == 0 && $sessionId != 0)
&& !($forum->getSessionId() == 0 && $sessionId != 0)
) {
$toolActions .= '<a href="'.api_get_self().'?'.api_get_cidreq()
.'&action=edit&content=forum&id='.$forum['forum_id'].'">'
.'&action=edit&content=forum&id='.$forumId.'">'
.Display::return_icon('edit.png', get_lang('Edit'), [], ICON_SIZE_SMALL)
.'</a>';
$toolActions .= '<a href="'.api_get_self().'?'.api_get_cidreq()
.'&action=delete&content=forum&id='.$forum['forum_id']
.'&action=delete&content=forum&id='.$forumId
."\" onclick=\"javascript:if(!confirm('".addslashes(
api_htmlentities(get_lang('Delete forum ?'), ENT_QUOTES)
)
@ -526,24 +535,24 @@ if (is_array($forumCategories)) {
$toolActions .= return_visible_invisible_icon(
'forum',
$forum['forum_id'],
$forum['visibility']
$forumId,
$visibility
);
$toolActions .= return_lock_unlock_icon(
'forum',
$forum['forum_id'],
$forum['locked']
$forumId,
$forum->getLocked()
);
$toolActions .= return_up_down_icon(
'forum',
$forum['forum_id'],
$forumId,
$forumsInCategory
);
}
$iconnotify = 'notification_mail_na.png';
/*$iconnotify = 'notification_mail_na.png';
$session_forum_notification = isset($_SESSION['forum_notification']['forum'])
? $_SESSION['forum_notification']['forum']
: false;
@ -560,7 +569,7 @@ if (is_array($forumCategories)) {
.Display::return_icon($iconnotify, get_lang('Notify me'), null, ICON_SIZE_SMALL)
.'</a>';
}
$forumInfo['tools'] = $toolActions;
$forumInfo['tools'] = $toolActions;*/
$forumsDetailsList[] = $forumInfo;
}
}

@ -232,7 +232,7 @@ class CForumCategory extends AbstractResource implements ResourceInterface
*/
public function getSessionId()
{
return $this->sessionId;
return (int) $this->sessionId;
}
/**

@ -217,6 +217,10 @@ class CForumForum extends AbstractResource implements ResourceInterface
*/
public function __construct()
{
$this->forumId = 0;
$this->locked = 0;
$this->forumImage = '';
$this->forumOfGroup = 0;
}
public function __toString(): string

Loading…
Cancel
Save