echo Display::return_icon('exclamation.gif'); } echo '</td>'; echo '<td>'; echo '<a href="viewthread.php?' . api_get_cidreq() . '&forum=' . Security::remove_XSS($my_forum) . '&origin=' . $origin . '&thread=' . $row['thread_id'] . $origin_string . '&search=' . Security::remove_XSS(urlencode($my_search)) . '" ' . class_visible_invisible($row['visibility']) . '>' . prepare4display($row['thread_title']) . '</a></td>'; echo '<td>' . $row['thread_replies'] . '</td>'; echo '<td>' . $row['thread_views'] . '</td>'; // display the author name $tab_poster_info = api_get_user_info($row['user_id']); $poster_username = sprintf(get_lang('LoginX'), $tab_poster_info['username']); if ($origin != 'learnpath') { echo '<td>' . display_user_link($row['user_id'], api_get_person_name($row['firstname'], $row['lastname']), '', $poster_username) . '</td>'; } else { echo '<td>' . Display::tag('span', api_get_person_name($row['firstname'], $row['lastname']), array("title" => api_htmlentities($poster_username, ENT_QUOTES))) . '</td>'; } $last_post_info = get_last_post_by_thread($row['c_id'], $row['thread_id'], $row['forum_id'], is_allowed_to_edit()); $last_post = null; if ($last_post_info) { $poster_info = api_get_user_info($last_post_info['poster_id']); $post_date = api_convert_and_format_date($last_post_info['post_date']); $last_post = $post_date . ' ' . get_lang('By') . ' ' . display_user_link($last_post_info['poster_id'], $poster_info['complete_name'], '', $poster_info['username']); } /* if ($row['last_poster_user_id'] == '0') { $name = $row['poster_name']; $last_poster_username = ""; } else { $name = api_get_person_name($row['last_poster_firstname'], $row['last_poster_lastname']); $tab_last_poster_info = api_get_user_info($row['last_poster_user_id']); $last_poster_username = sprintf(get_lang('LoginX'), $tab_last_poster_info['username']); }
function is_allowed_to_edit($user_id, $theme_id) { if ($user_id == 0) { return false; } $theme_editors = get_post_meta($theme_id, 'editors', true); if (is_array($theme_editors)) { if (in_array($user_id, $theme_editors)) { return true; } } elseif ($theme_editors == $user_id) { return true; } } $editor_user_id = get_current_user_id(); if (current_user_can('manage_options') || is_allowed_to_edit($editor_user_id, $theme_id)) { ?> <div class="fg-editor inactive"> <form action="<?php echo get_template_directory_uri(); ?> /async/ajax-post.php"> <input type="hidden" name="type" value="tema-post"/> <input type="hidden" name="theme_id" value="<?php echo $theme_id; ?> "/> <input type="hidden" name="existing" value="false"/> <div> <label for="title">Titel</label> <input required type="text" name="title" placeholder="Skriv titel her"/>
if (empty($document_data['parents'])) { $interbreadcrumb[] = array('url' => '#', 'name' => $document_data['title']); } else { foreach ($document_data['parents'] as $document_sub_data) { if ($document_data['title'] == $document_sub_data['title']) { continue; } $interbreadcrumb[] = array('url' => $document_sub_data['document_url'], 'name' => $document_sub_data['title']); } } if (!api_is_allowed_to_edit()) { api_not_allowed(true); } event_access_tool(TOOL_DOCUMENT); //TODO:check the below code and his funcionality if (!is_allowed_to_edit()) { if (DocumentManager::check_readonly($course_info, $user_id, $file)) { api_not_allowed(); } } /* MAIN TOOL CODE */ /* Code to change the comment */ if (isset($_POST['comment'])) { // Fixing the path if it is wrong $comment = Database::escape_string(trim($_POST['comment'])); $title = Database::escape_string(trim($_POST['title'])); //Just in case see BT#3525 if (empty($title)) { $title = $documen_data['title']; } if (empty($title)) {
*/ /** * Chamilo Metadata: MD API test and demo * The API allows other Dokeos scripts to define & manipulate metadata * In this example, MD is defined for 'Document.1001', 1002, 1003 */ require "../md_funcs.php"; define('EID_TYPE', 'Document'); require '../md_' . strtolower(EID_TYPE) . '.php'; // name of the language file that needs to be included /* $language_file = 'Whatever'; */ require "../../inc/global.inc.php"; isset($_course) or give_up("Select a course first..."); $is_allowed_to_edit = isset($_user['user_id']) && $is_courseMember && is_allowed_to_edit(); if (!$is_allowed_to_edit) { give_up("You're not allowed to edit..."); } $mdStore = new mdstore($is_allowed_to_edit); // create table if needed require api_get_path(LIBRARY_PATH) . 'xmd.lib.php'; // mds_update_xml_and_mdt require api_get_path(LIBRARY_PATH) . 'xht.lib.php'; // mdo_generate_default_xml_metadata $noPHP_SELF = TRUE; Display::display_header($nameTools); echo "\n"; // if the language file in use is not 'md_' . EID_TYPE ... $langMdTitle = 'Default Title (if doc not in DB)'; $langMdDescription = 'Default description (if doc has no comment)';
/** * This function gets all the forum information of the all the forum of the group * * @param integer $group_id the id of the group we need the fora of (see forum.forum_of_group) * @return array * * @todo this is basically the same code as the get_forums function. Consider merging the two. */ function get_forums_of_group($group_id) { $table_forums = Database::get_course_table(TABLE_FORUM); $table_threads = Database::get_course_table(TABLE_FORUM_THREAD); $table_posts = Database::get_course_table(TABLE_FORUM_POST); $table_item_property = Database::get_course_table(TABLE_ITEM_PROPERTY); $course_id = api_get_course_int_id(); // Student // Select all the forum information of all forums (that are visible to students). $sql = "SELECT * FROM " . $table_forums . " forum , " . $table_item_property . " item_properties\n WHERE\n forum.forum_of_group = '" . Database::escape_string($group_id) . "' AND\n forum.c_id = {$course_id} AND\n item_properties.c_id = {$course_id} AND\n forum.forum_id = item_properties.ref AND\n item_properties.visibility = 1 AND\n item_properties.tool = '" . TOOL_FORUM . "'\n ORDER BY forum.forum_order ASC"; // Select the number of threads of the forums (only the threads that are visible). $sql2 = "SELECT count(thread_id) AS number_of_threads, threads.forum_id\n FROM {$table_threads} threads, " . $table_item_property . " item_properties\n WHERE\n threads.thread_id = item_properties.ref AND\n threads.c_id = {$course_id} AND\n item_properties.c_id = {$course_id} AND\n item_properties.visibility = 1 AND\n item_properties.tool='" . TOOL_FORUM_THREAD . "'\n GROUP BY threads.forum_id"; // Select the number of posts of the forum (post that are visible and that are in a thread that is visible). $sql3 = "SELECT count(post_id) AS number_of_posts, posts.forum_id\n FROM {$table_posts} posts, {$table_threads} threads, " . $table_item_property . " item_properties\n WHERE posts.visible=1 AND\n posts.c_id = {$course_id} AND\n item_properties.c_id = {$course_id} AND\n threads.c_id = {$course_id}\n AND posts.thread_id=threads.thread_id\n AND threads.thread_id=item_properties.ref\n AND item_properties.visibility = 1\n AND item_properties.tool='" . TOOL_FORUM_THREAD . "'\n GROUP BY threads.forum_id"; // Course Admin if (is_allowed_to_edit()) { // Select all the forum information of all forums (that are not deleted). $sql = "SELECT *\n FROM " . $table_forums . " forum , " . $table_item_property . " item_properties\n WHERE\n forum.forum_of_group = '" . Database::escape_string($group_id) . "' AND\n forum.c_id = {$course_id} AND\n item_properties.c_id = {$course_id} AND\n forum.forum_id = item_properties.ref AND\n item_properties.visibility <> 2 AND\n item_properties.tool = '" . TOOL_FORUM . "'\n ORDER BY forum_order ASC"; // Select the number of threads of the forums (only the threads that are not deleted). $sql2 = "SELECT count(thread_id) AS number_of_threads, threads.forum_id\n FROM {$table_threads} threads, " . $table_item_property . " item_properties\n WHERE\n threads.thread_id=item_properties.ref AND\n threads.c_id = {$course_id} AND\n item_properties.c_id = {$course_id} AND\n item_properties.visibility <> 2 AND\n item_properties.tool='" . TOOL_FORUM_THREAD . "'\n GROUP BY threads.forum_id"; // Select the number of posts of the forum. $sql3 = "SELECT count(post_id) AS number_of_posts, forum_id\n FROM {$table_posts}\n WHERE c_id = {$course_id} GROUP BY forum_id"; } // Handling all the forum information. $result = Database::query($sql); $forum_list = array(); while ($row = Database::fetch_array($result, 'ASSOC')) { $forum_list[$row['forum_id']] = $row; } // Handling the thread count information. $result2 = Database::query($sql2); while ($row2 = Database::fetch_array($result2, 'ASSOC')) { if (is_array($forum_list)) { if (array_key_exists($row2['forum_id'], $forum_list)) { $forum_list[$row2['forum_id']]['number_of_threads'] = $row2['number_of_threads']; } } } // Handling the post count information. $result3 = Database::query($sql3); while ($row3 = Database::fetch_array($result3, 'ASSOC')) { if (is_array($forum_list)) { if (array_key_exists($row3['forum_id'], $forum_list)) { // This is needed because sql3 takes also the deleted forums into account. $forum_list[$row3['forum_id']]['number_of_posts'] = $row3['number_of_posts']; } } } // Finding the last post information (last_post_id, last_poster_id, last_post_date, last_poster_name, last_poster_lastname, last_poster_firstname). if (!empty($forum_list)) { foreach ($forum_list as $key => $value) { $last_post_info_of_forum = get_last_post_information($key, is_allowed_to_edit()); $forum_list[$key]['last_post_id'] = $last_post_info_of_forum['last_post_id']; $forum_list[$key]['last_poster_id'] = $last_post_info_of_forum['last_poster_id']; $forum_list[$key]['last_post_date'] = $last_post_info_of_forum['last_post_date']; $forum_list[$key]['last_poster_name'] = $last_post_info_of_forum['last_poster_name']; $forum_list[$key]['last_poster_lastname'] = $last_post_info_of_forum['last_poster_lastname']; $forum_list[$key]['last_poster_firstname'] = $last_post_info_of_forum['last_poster_firstname']; } } return $forum_list; }