📄 blog.lib.php
字号:
/** * Deletes an assigned task from a blog * * @param Integer $blog_id * @param Integer $assignment_id */ function delete_assigned_task($blog_id, $assignment_id) { // Init $tbl_blogs_tasks_rel_user = Database::get_course_table(TABLE_BLOGS_TASKS_REL_USER); $parameters = explode('|',$assignment_id); $task_id = $parameters[0]; $user_id = $parameters[1]; // Delete posts $sql = "DELETE FROM $tbl_blogs_tasks_rel_user WHERE `blog_id` = '".(int)$blog_id."' AND `task_id` = '".(int)$task_id."' AND `user_id` = '".(int)$user_id."'"; api_sql_query($sql, __FILE__, __LINE__); return void; } /** * Get personal task list * @author Toon Keppens * * @return Returns an unsorted list (<ul>) with the users' tasks */ function get_personal_task_list() { global $_user; // Init $tbl_blogs = Database::get_course_table(TABLE_BLOGS); $tbl_blogs_tasks_rel_user = Database::get_course_table(TABLE_BLOGS_TASKS_REL_USER); $tbl_blogs_tasks = Database::get_course_table(TABLE_BLOGS_TASKS); if($_user['user_id']) { $sql = "SELECT task_rel_user.*, task.title, blog.blog_name FROM $tbl_blogs_tasks_rel_user task_rel_user INNER JOIN $tbl_blogs_tasks task ON task_rel_user.task_id = task.task_id INNER JOIN $tbl_blogs blog ON task_rel_user.blog_id = blog.blog_id AND blog.blog_id = ".intval($_GET['blog_id'])." WHERE task_rel_user.user_id = ".(int)$_user['user_id']." ORDER BY `target_date` ASC"; $result = api_sql_query($sql, __FILE__, __LINE__); if(mysql_numrows($result) > 0) { echo '<ul>'; while($mytask = mysql_fetch_array($result)) { echo '<li><a href="blog.php?action=execute_task&blog_id=' . $mytask['blog_id'] . '&task_id='.stripslashes($mytask['task_id']) . '" title="[Blog: '.stripslashes($mytask['blog_name']) . '] ' . get_lang('ExecuteThisTask') . '">'.stripslashes($mytask['title']) . '</a></li>'; } echo '<ul>'; } else { echo get_lang('NoTasks'); } } else { echo get_lang('NoTasks'); } } /** * Changes the visibility of a blog * @author Toon Keppens * * @param Integer $blog_id * * @return void */ function change_blog_visibility($blog_id) { // Init $tbl_blogs = Database::get_course_table(TABLE_BLOGS); $tbl_tool = Database::get_course_table(TABLE_TOOL_LIST); // Get blog properties $sql = "SELECT blog_name, visibility FROM $tbl_blogs WHERE blog_id='".(int)$blog_id."'"; $result = api_sql_query($sql, __FILE__, __LINE__); $blog = mysql_fetch_array($result); $visibility = $blog['visibility']; $title = $blog['blog_name']; if($visibility == 1) { // Change visibility state, remove from course home. $sql = "UPDATE $tbl_blogs SET `visibility` = '0' WHERE `blog_id` ='".(int)$blog_id."' LIMIT 1"; $result = api_sql_query($sql, __FILE__, __LINE__); $sql = "DELETE FROM $tbl_tool WHERE name = '".mysql_real_escape_string($title)."' LIMIT 1"; $result = api_sql_query($sql, __FILE__, __LINE__); } else { // Change visibility state, add to course home. $sql = "UPDATE $tbl_blogs SET `visibility` = '1' WHERE `blog_id` ='".(int)$blog_id."' LIMIT 1"; $result = api_sql_query($sql, __FILE__, __LINE__); $sql = "INSERT INTO $tbl_tool (`name`, `link`, `image`, `visibility`, `admin`, `address`, `added_tool`, `target` ) VALUES ('".mysql_real_escape_string($title)."', 'blog/blog.php?blog_id=".(int)$blog_id."', 'blog.gif', '1', '0', 'pastillegris.gif', '0', '_self')"; $result = api_sql_query($sql, __FILE__, __LINE__); } return void; } /** * Shows the posts of a blog * @author Toon Keppens * * @param Integer $blog_id */ function display_blog_posts($blog_id, $filter = '1=1', $max_number_of_posts = 20) { // Init $tbl_blogs_posts = Database::get_course_table(TABLE_BLOGS_POSTS); $tbl_blogs_comments = Database::get_course_table(TABLE_BLOGS_COMMENTS); $tbl_users = Database::get_main_table(TABLE_MAIN_USER); global $dateFormatLong; // Get posts and authors $sql = "SELECT post.*, user.lastname, user.firstname FROM $tbl_blogs_posts post INNER JOIN $tbl_users user ON post.author_id = user.user_id WHERE post.blog_id = '".(int)$blog_id."' AND $filter ORDER BY post_id DESC LIMIT 0,".(int)$max_number_of_posts; $result = api_sql_query($sql, __FILE__, __LINE__); // Display if(mysql_num_rows($result) > 0) { while($blog_post = mysql_fetch_array($result)) { // Get number of comments $sql = "SELECT COUNT(1) as number_of_comments FROM $tbl_blogs_comments WHERE blog_id = '".(int)$blog_id."' AND post_id = '" . (int)$blog_post['post_id']."'"; $tmp = api_sql_query($sql, __FILE__, __LINE__); $blog_post_comments = mysql_fetch_array($tmp); // Prepare data $blog_post_id = $blog_post['post_id']; $blog_post_text = make_clickable(stripslashes($blog_post['full_text'])); $blog_post_date = ucfirst(format_locale_date($dateFormatLong,strtotime($blog_post['date_creation']))); $blog_post_time = date('H:i',strtotime($blog_post['date_creation'])); // Create an introduction text (but keep FULL sentences) $limit = 100; //nmbr of words in introduction text $introduction_text = ""; $words = 0; $tok = strtok(make_clickable(stripslashes($blog_post['full_text'])), " "); //original //$tok = strtok(make_clickable(stripslashes(strip_tags($blog_post['full_text'],"<br><p><ol><ul><li><img>"))), " "); while($tok) { $introduction_text .= " $tok"; $words++; // check if the number of words is larger than our limit AND if this token ends with a ! . or ? (meaning end of sentance). if(($words >= $limit) && ((substr($tok, -1) == "!")||(substr($tok, -1) == ".")||(substr($tok, -1) == "?"))) { break; } $tok = strtok(" "); } if($words >= $limit) { $readMoreLink = ' <span class="link" onclick="document.getElementById(\'blogpost_text_' . $blog_post_id . '\').style.display=\'block\'; document.getElementById(\'blogpost_introduction_' . $blog_post_id . '\').style.display=\'none\'">' . get_lang('ReadMore') . '</span>'; } else { $readMoreLink = ''; } $introduction_text=stripslashes($introduction_text); echo '<div class="blogpost">'."\n"; echo '<span class="blogpost_title"><a href="blog.php?action=view_post&blog_id=' . $blog_id . '&post_id=' . $blog_post['post_id'] . '#add_comment" title="' . get_lang('ReadPost') . '" >'.stripslashes($blog_post['title']) . '</a></span>'."\n"; echo '<span class="blogpost_date"><a href="blog.php?action=view_post&blog_id=' . $blog_id . '&post_id=' . $blog_post['post_id'] . '#add_comment" title="' . get_lang('ReadPost') . '" >' . $blog_post_date . ' (' . $blog_post_time . ')</span>'."\n"; echo '<span class="blogpost_introduction" id="blogpost_introduction_' . $blog_post_id . '">' . $introduction_text . $readMoreLink . '</span>'."\n"; echo '<span class="blogpost_text" id="blogpost_text_' . $blog_post_id . '" style="display: none">' . $blog_post_text . '</span>'."\n"; $file_name_array=get_blog_attachment($blog_id,$blog_post_id,0); if (!empty($file_name_array)) { echo '<br /><br />'; echo Display::return_icon('attachment.gif',get_lang('Attachment')); echo '<a href="download.php?file='; echo $file_name_array['path']; echo ' "> '.$file_name_array['filename'].' </a><br />'; echo '</span>'; } echo '<span class="blogpost_info">' . get_lang('Author') . ': ' . $blog_post['lastname'] . ' ' . $blog_post['firstname'] . ' - <a href="blog.php?action=view_post&blog_id=' . $blog_id . '&post_id=' . $blog_post['post_id'] . '#add_comment" title="' . get_lang('ReadPost') . '" >' . get_lang('Comments') . ': ' . $blog_post_comments['number_of_comments'] . '</a></span>'."\n"; echo '</div>'."\n"; } } else { if($filter == '1=1') { echo get_lang('NoArticles'); } else { echo get_lang('NoArticleMatches'); } }} /** * Display the search results * * @param Integer $blog_id * @param String $query_string */ function display_search_results($blog_id, $query_string) { // Init $query_string_parts = explode(' ',$query_string); $query_string = array(); foreach ($query_string_parts as $query_part) { $query_string[] = " full_text LIKE '%" . $query_part."%' OR title LIKE '%" . $query_part."%' "; } $query_string = '('.implode('OR',$query_string) . ')'; // Display the posts echo '<span class="blogpost_title">' . get_lang('SearchResults') . '</span>'; Blog::display_blog_posts($blog_id, $query_string); } /** * Display posts from a certain date * * @param Integer $blog_id * @param String $query_string */ function display_day_results($blog_id, $query_string) { // Init $date_output = $query_string; $date = explode('-',$query_string); $query_string = ' DAYOFMONTH(`date_creation`) =' . $date[2] . ' AND MONTH(`date_creation`) =' . $date[1] . ' AND YEAR(`date_creation`) =' . $date[0]; global $dateFormatLong; // Put date in correct output format $date_output = ucfirst(format_locale_date($dateFormatLong,strtotime($date_output))); // Display the posts echo '<span class="blogpost_title">' . get_lang('PostsOf') . ': ' . $date_output . '</span>'; Blog::display_blog_posts($blog_id, $query_string); } /** * Displays a post and his comments * * @param Integer $blog_id * @param Integer $post_id */ function display_post($blog_id, $post_id) { // Init $tbl_blogs_posts = Database::get_course_table(TABLE_BLOGS_POSTS); $tbl_blogs_comments = Database::get_course_table(TABLE_BLOGS_COMMENTS); $tbl_users = Database::get_main_table(TABLE_MAIN_USER); global $charset,$dateFormatLong; // Get posts and author $sql = "SELECT post.*, user.lastname, user.firstname FROM $tbl_blogs_posts post INNER JOIN $tbl_users user ON post.author_id = user.user_id WHERE post.blog_id = '".(int)$blog_id."' AND post.post_id = '".(int)$post_id."' ORDER BY post_id DESC"; $result = api_sql_query($sql, __FILE__, __LINE__); $blog_post = mysql_fetch_array($result); // Get number of comments $sql = "SELECT COUNT(1) as number_of_comments FROM $tbl_blogs_comments WHERE blog_id = '".(int)$blog_id."' AND post_id = '".(int)$post_id."'"; $result = api_sql_query($sql, __FILE__, __LINE__); $blog_post_comments = mysql_fetch_array($result); // Prepare data $blog_post_text = make_clickable(stripslashes($blog_post['full_text'])); $blog_post_date = ucfirst(format_locale_date($dateFormatLong,strtotime($blog_post['date_creation']))); $blog_post_time = date('H:m',strtotime($blog_post['date_creation'])); $blog_post_actions = ""; $task_id = (isset($_GET['task_id']) && is_numeric($_GET['task_id'])) ? $_GET['task_id'] : 0; if(api_is_allowed('BLOG_' . $blog_id, 'article_edit', $task_id)) $blog_post_actions .= '<a href="blog.php?action=edit_post&blog_id=' . $blog_id . '&post_id=' . $post_id . '&article_id=' . $blog_post['post_id'] . '&task_id=' . $task_id . '" title="' . get_lang('EditThisPost') . '"><img src="../img/edit.gif" /></a>'; if(api_is_allowed('BLOG_' . $blog_id, 'article_delete', $task_id)) $blog_post_actions .= '<a href="blog.php?action=view_post&blog_id=' . $blog_id . '&post_id=' . $post_id . '&do=delete_article&article_id=' . $blog_post['post_id'] . '&task_id=' . $task_id . '" title="' . get_lang('DeleteThisArticle') . '" onclick="javascript:if(!confirm(\''.addslashes(htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset)). '\')) return false;"><img src="../img/delete.gif" border="0" /></a>'; if(api_is_allowed('BLOG_' . $blog_id, 'article_rate')) $rating_select = Blog::display_rating_form('post',$blog_id,$post_id); $blog_post_text=stripslashes($blog_post_text); // Display post echo '<div class="blogpost">'; echo '<span class="blogpost_title"><a href="blog.php?action=view_post&blog_id=' . $blog_id . '&post_id=' . $blog_post['post_id'] . '" title="' . get_lang('ReadPost') . '" >'.stripslashes($blog_post['title']) . '</a></span>'; echo '<span class="blogpost_date">' . $blog_post_date . ' (' . $blog_post_time . ')</span>'; echo '<span class="blogpost_text">' . $blog_post_text . '</span><br />'; $file_name_array=get_blog_attachment($blog_id,$post_id); if (!empty($file_name_array)) { echo ' <br />'; echo Display::return_icon('attachment.gif',get_lang('Attachment')); echo '<a href="download.php?file='; echo $file_name_array['path']; echo ' "> '.$file_name_array['filename'].' </a>'; echo '</span>'; echo '<span class="attachment_comment">'; echo $file_name_array['comment']; echo '</span>'; echo '<br />'; } echo '<span class="blogpost_info">' . get_lang('Author') . ': ' . $blog_post['lastname'] . ' ' . $blog_post['firstname'] . ' - ' . get_lang('Comments') . ': ' . $blog_post_comments['number_of_comments'] . ' - ' . get_lang('Rating') . ': '.Blog::display_rating('post',$blog_id,$post_id) . $rating_select . '</span>'; echo '<span class="blogpost_actions">' . $blog_post_actions . '</span>'; echo '</div>'; // Display comments if there are any if($blog_post_comments['number_of_comments'] > 0) { echo '<div class="comments">'; echo '<span class="blogpost_title">' . get_lang('Comments') . '</span><br />'; Blog::get_threaded_comments(0, 0, $blog_id, $post_id, $task_id); echo '</div>'; } // Display comment form if(api_is_allowed('BLOG_' . $blog_id, 'article_comments_add'))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -