@@ -28,6 +28,8 @@ class BrokenLinkListFilter implements Arrayable
2828
2929 protected const KEY_HOWTOTRAVERSE = 'howtotraverse ' ;
3030
31+ protected const KEY_ERROR = 'error ' ;
32+
3133 /** @var string */
3234 protected const LINK_TYPE_FILTER_DEFAULT = 'all ' ;
3335
@@ -61,6 +63,8 @@ class BrokenLinkListFilter implements Arrayable
6163 /** @var string */
6264 protected $ urlFilterMatch = self ::URL_MATCH_DEFAULT ;
6365
66+ protected string $ errorFilter = '' ;
67+
6468 protected int $ checkStatusFilter = self ::CHECK_STATUS_DEFAULT ;
6569
6670 protected bool $ usePagetreeCache = true ;
@@ -78,6 +82,7 @@ public function __construct(
7882 string $ linkType = self ::LINK_TYPE_DEFAULT ,
7983 string $ url = '' ,
8084 string $ urlMatch = self ::URL_MATCH_DEFAULT ,
85+ string $ errorFilter = '' ,
8186 int $ checkStatus = self ::CHECK_STATUS_DEFAULT ,
8287 bool $ usePagetreeCache = true ,
8388 string $ howtotraverse = self ::HOW_TO_TRAVERSE_DEFAULT
@@ -86,6 +91,7 @@ public function __construct(
8691 $ this ->linktype_filter = $ linkType ;
8792 $ this ->url_filtre = $ url ;
8893 $ this ->urlFilterMatch = $ urlMatch ;
94+ $ this ->errorFilter = $ errorFilter ;
8995 $ this ->checkStatusFilter = $ checkStatus ;
9096 $ extensionConfiguration = GeneralUtility::makeInstance (ExtensionConfiguration::class);
9197 $ this ->usePagetreeCache = $ usePagetreeCache ;
@@ -99,6 +105,7 @@ public static function getInstanceFromModuleData(ModuleData $moduleData): Broken
99105 $ moduleData ->get ('linktype_searchFilter ' , 'all ' ),
100106 $ moduleData ->get ('url_searchFilter ' , '' ),
101107 $ moduleData ->get ('url_match_searchFilter ' , 'partial ' ),
108+ $ moduleData ->get ('error_searchFilter ' , '' ),
102109 (int )$ moduleData ->get ('check_status ' , (string )self ::CHECK_STATUS_DEFAULT ),
103110 (bool )$ moduleData ->get ('useCache ' , 1 ),
104111 $ moduleData ->get ('howtotraverse ' , self ::HOW_TO_TRAVERSE_DEFAULT ),
@@ -112,6 +119,7 @@ public static function getInstanceFromArray(array $values): BrokenLinkListFilter
112119 $ values [self ::KEY_LINKTYPE ] ?? self ::LINK_TYPE_DEFAULT ,
113120 $ values [self ::KEY_URL ] ?? '' ,
114121 $ values [self ::KEY_URL_MATCH ] ?? self ::URL_MATCH_DEFAULT ,
122+ $ values [self ::KEY_ERROR ] ?? '' ,
115123 $ values [self ::KEY_CHECK_STATUS ] ?? self ::CHECK_STATUS_DEFAULT ,
116124 $ values [self ::KEY_USE_CACHE ] ?? 1 ,
117125 $ values [self ::KEY_HOWTOTRAVERSE ] ?? self ::HOW_TO_TRAVERSE_DEFAULT ,
@@ -125,6 +133,7 @@ public function toArray(): array
125133 self ::KEY_LINKTYPE => $ this ->getLinktypeFilter (),
126134 self ::KEY_URL => $ this ->getUrlFilter (),
127135 self ::KEY_URL_MATCH => $ this ->getUrlFilterMatch (),
136+ self ::KEY_ERROR => $ this ->getErrorFilter (),
128137 self ::KEY_CHECK_STATUS => $ this ->getCheckStatusFilter (),
129138 self ::KEY_USE_CACHE => $ this ->isUsePagetreeCache (),
130139 self ::KEY_HOWTOTRAVERSE => $ this ->getHowtotraverse (),
@@ -204,6 +213,47 @@ public function setUrlFilterMatch(string $urlFilterMatch): void
204213 $ this ->urlFilterMatch = $ urlFilterMatch ;
205214 }
206215
216+ /**
217+ * Combined eror of <errorType>:<errno> or several e.g. 'libcurlErrno:6|custom:11'
218+ */
219+ public function getErrorFilter (): string
220+ {
221+ return $ this ->errorFilter ;
222+ }
223+
224+ /**
225+ * @deprecated because errorFilter can contain several, e.g. ''
226+ */
227+ public function getErrorTypeFilter (): string
228+ {
229+ $ errorFilter = $ this ->errorFilter ;
230+ if (!$ errorFilter ) {
231+ return '' ;
232+ }
233+ $ parts = explode (': ' , $ errorFilter );
234+ return $ parts [0 ] ?? '' ;
235+ }
236+
237+ /**
238+ * @deprecated because errorFilter can contain several, e.g. ''
239+ */
240+
241+ public function getErrnoFilter (): int
242+ {
243+ $ errorFilter = $ this ->errorFilter ;
244+ if (!$ errorFilter ) {
245+ return '' ;
246+ }
247+ $ parts = explode (': ' , $ errorFilter );
248+ return (int )($ parts [1 ] ?? 0 );
249+ }
250+
251+
252+ public function setErrorFilter (string $ errorFilter ): void
253+ {
254+ $ this ->errorFilter = $ errorFilter ;
255+ }
256+
207257 public function getCheckStatusFilter (): int
208258 {
209259 return $ this ->checkStatusFilter ;
0 commit comments