Jelajahi Sumber

:bug: channel隐藏,其他译文仍然显示

visuddhinanda 5 tahun lalu
induk
melakukan
53707658ee
1 mengubah file dengan 38 tambahan dan 4 penghapusan
  1. 38 4
      app/usent/get.php

+ 38 - 4
app/usent/get.php

@@ -6,18 +6,50 @@ require_once "../path.php";
 require_once "../public/_pdo.php";
 require_once "../public/function.php";
 
+	#查询有阅读权限的channel
+	$channal_list = array();
+	if(isset($_COOKIE["userid"])){
+		PDO_Connect("sqlite:"._FILE_DB_CHANNAL_);
+		$query = "SELECT id from channal where owner = ?   limit 0,100";
+		$Fetch_my = PDO_FetchAll($query,array($_COOKIE["userid"]));
+		foreach ($Fetch_my as $key => $value) {
+			# code...
+			$channal_list[]=$value["id"];
+		}
 
+		# 找协作的
+		$Fetch_coop = array();
+		$query = "SELECT channal_id FROM cooperation WHERE  user_id = ? ";
+		$coop_channal = PDO_FetchAll($query,array($_COOKIE["userid"]));
+		if(count($coop_channal)>0){
+			foreach ($coop_channal as $key => $value) {
+				# code...
+				$channal_list[]=$value["channal_id"];
+			}
+		}
+		/*  创建一个填充了和params相同数量占位符的字符串 */
+
+	}
+	if(count($channal_list)>0){
+		$channel_place_holders = implode(',', array_fill(0, count($channal_list), '?'));
+		$channel_query = " OR channal IN ($channel_place_holders)";
+	}
+	else{
+		$channel_query = "";
+	}
+
+	# 查询有阅读权限的channel 结束
 
 $dns = "sqlite:"._FILE_DB_SENTENCE_;
 $dbh = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  
 /* 开始一个事务,关闭自动提交 */
-$query="SELECT * FROM sentence WHERE 0";
+
 if(isset($_GET["sentences"])){
     $arrSent = explode(",",$_GET["sentences"]);
     /*  创建一个填充了和params相同数量占位符的字符串 */
     $place_holders = implode(',', array_fill(0, count($arrSent), '?'));
-    $query="SELECT * FROM sentence WHERE id IN ($place_holders)";
+    $query="SELECT * FROM sentence WHERE id IN ($place_holders) and (status = 30 {$channel_query} )";
     $stmt = $dbh->prepare($query);
     $stmt->execute($arrSent);
 }
@@ -26,9 +58,11 @@ else{
     $para = $_GET["para"];
     $begin = $_GET["begin"];
     $end = $_GET["end"];
-    $query="SELECT * FROM sentence WHERE (book = ?  AND paragraph = ? AND begin = ? AND end = ? and text <> '' ) order by modify_time DESC  ";
+    $query="SELECT * FROM sentence WHERE (book = ?  AND paragraph = ? AND begin = ? AND end = ? and strlen >0 and (status = 30 {$channel_query} ) ) order by modify_time DESC  ";
     $stmt = $dbh->prepare($query);
-    $stmt->execute(array($book,$para,$begin,$end));
+    $parm = array($book,$para,$begin,$end);
+    $parm = array_merge_recursive($parm,$channal_list);
+    $stmt->execute($parm);
 }
 
 $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);