⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blog.lib.php

📁 完美的在线教育系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
	/**	 * 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&amp;blog_id=' . $mytask['blog_id'] . '&amp;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&amp;blog_id=' . $blog_id . '&amp;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&amp;blog_id=' . $blog_id . '&amp;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&amp;blog_id=' . $blog_id . '&amp;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&amp;blog_id=' . $blog_id . '&amp;post_id=' . $post_id . '&amp;article_id=' . $blog_post['post_id'] . '&amp;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&amp;blog_id=' . $blog_id . '&amp;post_id=' . $post_id . '&amp;do=delete_article&amp;article_id=' . $blog_post['post_id'] . '&amp;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&amp;blog_id=' . $blog_id . '&amp;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 + -