فهرست منبع

Strong type array parameter helper (#6661)

Also useful for extensions (including one I am writing)
Alexandre Alapetite 1 سال پیش
والد
کامیت
5c8369ce38
2فایلهای تغییر یافته به همراه10 افزوده شده و 1 حذف شده
  1. 1 1
      app/Controllers/entryController.php
  2. 9 0
      lib/Minz/Request.php

+ 1 - 1
app/Controllers/entryController.php

@@ -114,7 +114,7 @@ class FreshRSS_entry_Controller extends FreshRSS_ActionController {
 			}
 		} else {
 			/** @var array<numeric-string> $idArray */
-			$idArray = Minz_Request::paramArray('id');
+			$idArray = Minz_Request::paramArrayString('id');
 			$idString = Minz_Request::paramString('id');
 			if (count($idArray) > 0) {
 				$ids = $idArray;

+ 9 - 0
lib/Minz/Request.php

@@ -69,6 +69,15 @@ class Minz_Request {
 		return $specialchars ? Minz_Helper::htmlspecialchars_utf8(self::$params[$key]) : self::$params[$key];
 	}
 
+	/** @return array<string> */
+	public static function paramArrayString(string $key, bool $specialchars = false): array {
+		if (empty(self::$params[$key]) || !is_array(self::$params[$key])) {
+			return [];
+		}
+		$result = array_filter(self::$params[$key], 'is_string');
+		return $specialchars ? Minz_Helper::htmlspecialchars_utf8($result) : $result;
+	}
+
 	public static function paramTernary(string $key): ?bool {
 		if (isset(self::$params[$key])) {
 			$p = self::$params[$key];