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

📄 collections_functions.php

📁 php网页设计
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?# Collections functions# Functions to manipulate collectionsfunction get_user_collections($user)	{	# Returns a list of user collections.	# Additionally, if the user hasn't got any collections, then create a default 'My Collection'.	#$list=sql_query("select c.*,u.username,count(r.resource) count from user u,collection c left outer join collection_resource r on c.ref=r.collection where u.ref=c.user and c.user='$user' group by c.ref union select c.*,u.username,count(r.resource) count from user_collection uc left join collection c on uc.collection=c.ref left outer join collection_resource r on c.ref=r.collection left join user u on c.user=u.ref where uc.user='$user' group by c.ref order by created;");	$list=sql_query("select * from (select c.*,u.username,count(r.resource) count from user u,collection c left outer join collection_resource r on c.ref=r.collection where u.ref=c.user and c.user='$user' and (length(c.theme)=0 or c.theme is null) group by c.ref union select c.*,u.username,count(r.resource) count from user_collection uc,collection c left outer join collection_resource r on c.ref=r.collection left join user u on c.user=u.ref where uc.collection=c.ref and uc.user='$user' and c.user<>'$user' and (length(c.theme)=0 or c.theme is null) group by c.ref) clist order by name='My Collection' desc,name");	return $list;	}function get_collection($ref)	{	# Returns all data for collection $ref	$return=sql_query("select * from collection where ref='$ref'");	if (count($return)==0) {return false;} else 		{		$return=$return[0];		if ($return["public"]==0)			{			# If private, also return a list of users with access to this collection			$return["users"]=join(", ",sql_array("select u.username value from user u,user_collection c where u.ref=c.user and c.collection='$ref' order by u.username"));			}		return $return;}	}function get_collection_resources($collection)	{	# Returns all resources in collection	# For many cases (e.g. when displaying a collection for a user) a search is used instead so permissions etc. are honoured.	return sql_array("select resource value from collection_resource where collection='$collection' order by date_added desc"); 	}	function add_resource_to_collection($resource,$collection)	{	$collectiondata=get_collection($collection);	global $userref;	if (($userref==$collectiondata["user"]) || ($collectiondata["allow_changes"]==1) || (checkperm("h")))		{			sql_query("delete from collection_resource where resource='$resource' and collection='$collection'");		sql_query("insert into collection_resource(resource,collection) values ('$resource','$collection')");		return true;		}	else		{		return false;		}	}function remove_resource_from_collection($resource,$collection)	{	$collectiondata=get_collection($collection);	global $userref;	if (($userref==$collectiondata["user"]) || ($collectiondata["allow_changes"]==1) || (checkperm("h")))		{			sql_query("delete from collection_resource where resource='$resource' and collection='$collection'");		return true;		}	else		{		return false;		}	}	function set_user_collection($user,$collection)	{	global $usercollection;	sql_query("update user set current_collection='$collection' where ref='$user'");	$usercollection=$collection;	}	function create_collection($userid,$name,$allowchanges=0,$cant_delete=0)	{	# Creates a new collection and returns the reference	sql_query("insert into collection (name,user,created,allow_changes,cant_delete) values ('" . escape_check($name) . "','$userid',now(),'$allowchanges','$cant_delete')");	return sql_insert_id();	}		function delete_collection($ref)	{	# Deletes the collection with reference $ref	sql_query("delete from collection where ref='$ref'");	}	function refresh_collection_frame()	{	global $headerinsert,$baseurl;	$headerinsert.="<script language=\"Javascript\">	top.collections.location.href=\"" . $baseurl . "/collections.php?nc=" . time() . "\";	</script>";	}	function search_public_collections($search)	{	if ($search!="") {$qsearch="and (c.name like '%$search%' or u.username like '%$search%' or c.ref='$search')";} else {$qsearch="";}	return sql_query("select c.*,u.username from collection c,user u where c.user=u.ref and c.public=1 $qsearch and (length(c.theme)=0 or c.theme is null) order by c.created desc");	}	function add_collection($user,$collection)	{	# Add a collection to a user's 'My Collections'		# Remove any existing collection first	remove_collection($user,$collection);	# Insert row	sql_query("insert into user_collection(user,collection) values ('$user','$collection')");	}function remove_collection($user,$collection)	{	# Remove someone else's collection from a user's My Collections	sql_query("delete from user_collection where user='$user' and collection='$collection'");	}function save_collection($ref)	{	$theme=getvalescaped("theme","");	if (getval("newtheme","")!="") {$theme=getvalescaped("newtheme","");}	$allow_changes=(getval("allow_changes","")!=""?1:0);		# Next line disabled as it seems incorrect to override the user's setting here. 20071217 DH.	#if ($theme!="") {$allow_changes=0;} # lock allow changes to off if this is a theme		# Update collection with submitted form data	sql_query("update collection set				name='" . getvalescaped("name","") . "',				public='" . getvalescaped("public","") . "',				theme='" . $theme . "',				allow_changes='" . $allow_changes . "'	where ref='$ref'");		# Reset archive status if specified	if (getval("archive","")!="")		{		sql_query("update resource set archive='" . getvalescaped("archive",0) . "' where ref in (select resource from collection_resource where collection='$ref')");		}			# If 'users' is specified (i.e. access is private) then rebuild users list	$users=getvalescaped("users",false);	if ($users!==false)		{		sql_query("delete from user_collection where collection='$ref'");		if (($users)!="")			{			# Build a new list and insert			$ulist=array_unique(trim_array(explode(",",$users)));			$urefs=sql_array("select ref value from user where username in ('" . join("','",$ulist) . "')");			sql_query("insert into user_collection(collection,user) values ($ref," . join("),(" . $ref . ",",$urefs) . ")");			}		}			# Relate all resources?	if (getval("relateall","")!="")		{		$rlist=get_collection_resources($ref);		for ($n=0;$n<count($rlist);$n++)			{			for ($m=0;$m<count($rlist);$m++)				{				if ($rlist[$n]!=$rlist[$m]) # Don't relate a resource to itself					{					sql_query("insert into resource_related (resource,related) values ('" . $rlist[$n] . "','" . $rlist[$m] . "')");					}				}			}		}			# Remove all resources?	if (getval("removeall","")!="")		{		sql_query("delete from collection_resource where collection='$ref'");		}			# Delete all resources?	if (getval("deleteall","")!="")		{		$resources=do_search("!collection" . $ref);		for ($n=0;$n<count($resources);$n++)			{			if (checkperm("e" . $resources[$n]["archive"]))				{				delete_resource($resources[$n]["ref"]);					}			}		}	}function get_theme_headers()	{	# Return a list of theme headers, i.e. theme categories	#return sql_array("select theme value,count(*) c from collection where public=1 and length(theme)>0 group by theme order by theme");			$return=array();	$themes=sql_query("select * from collection where public=1 and theme is not null and length(theme)>0 order by theme");	for ($n=0;$n<count($themes);$n++)		{		if ((!in_array($themes[$n]["theme"],$return)) && (checkperm("j*") || checkperm("j" . $themes[$n]["theme"]))) {$return[]=$themes[$n]["theme"];}		}	return $return;	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -