diff --git a/typo3/sysext/linkvalidator/Classes/LinkAnalyzer.php b/typo3/sysext/linkvalidator/Classes/LinkAnalyzer.php index 189ed1cb7081e4d64b5e1dc01afb6bbacd2573fb..5daffacf1cd631ddc943fd4351b3a32986828017 100644 --- a/typo3/sysext/linkvalidator/Classes/LinkAnalyzer.php +++ b/typo3/sysext/linkvalidator/Classes/LinkAnalyzer.php @@ -37,11 +37,11 @@ class LinkAnalyzer protected $searchFields = []; /** - * List of comma separated page uids (rootline downwards) + * List of page uids (rootline downwards) * - * @var string + * @var array */ - protected $pidList = ''; + protected $pids = []; /** * Array of tables and the number of external links they contain @@ -116,14 +116,14 @@ class LinkAnalyzer /** * Store all the needed configuration values in class variables * - * @param array $searchField List of fields in which to search for links - * @param string $pid List of comma separated page uids in which to search for links - * @param array $tsConfig The currently active TSConfig. + * @param array $searchField List of fields in which to search for links + * @param string $pidList List of comma separated page uids in which to search for links + * @param array $tsConfig The currently active TSConfig. */ - public function init(array $searchField, $pid, $tsConfig) + public function init(array $searchField, $pidList, $tsConfig) { $this->searchFields = $searchField; - $this->pidList = $pid; + $this->pids = GeneralUtility::intExplode(',', $pidList, true); $this->tsConfig = $tsConfig; } @@ -136,8 +136,7 @@ class LinkAnalyzer public function getLinkStatistics($checkOptions = [], $considerHidden = false) { $results = []; - $pidList = GeneralUtility::intExplode(',', $this->pidList, true); - if (!empty($checkOptions) && !empty($pidList)) { + if (!empty($checkOptions) && !empty($this->pids)) { $checkKeys = array_keys($checkOptions); $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) @@ -148,12 +147,12 @@ class LinkAnalyzer $queryBuilder->expr()->orX( $queryBuilder->expr()->in( 'record_pid', - $queryBuilder->createNamedParameter($pidList, Connection::PARAM_INT_ARRAY) + $queryBuilder->createNamedParameter($this->pids, Connection::PARAM_INT_ARRAY) ), $queryBuilder->expr()->andX( $queryBuilder->expr()->in( 'record_uid', - $queryBuilder->createNamedParameter($pidList, Connection::PARAM_INT_ARRAY) + $queryBuilder->createNamedParameter($this->pids, Connection::PARAM_INT_ARRAY) ), $queryBuilder->expr()->eq( 'table_name', @@ -192,7 +191,7 @@ class LinkAnalyzer ->where( $queryBuilder->expr()->in( ($table === 'pages' ? 'uid' : 'pid'), - $queryBuilder->createNamedParameter($pidList, Connection::PARAM_INT_ARRAY) + $queryBuilder->createNamedParameter($this->pids, Connection::PARAM_INT_ARRAY) ) ) ->execute(); @@ -420,7 +419,6 @@ class LinkAnalyzer public function getLinkCounts($curPage) { $markerArray = []; - $this->pidList = GeneralUtility::intExplode(',', ($this->pidList ?: $curPage), true); $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('tx_linkvalidator_link'); @@ -432,7 +430,7 @@ class LinkAnalyzer ->where( $queryBuilder->expr()->in( 'record_pid', - $queryBuilder->createNamedParameter($this->pidList, Connection::PARAM_INT_ARRAY) + $queryBuilder->createNamedParameter($this->pids, Connection::PARAM_INT_ARRAY) ) ) ->groupBy('link_type') diff --git a/typo3/sysext/linkvalidator/Classes/Task/ValidatorTask.php b/typo3/sysext/linkvalidator/Classes/Task/ValidatorTask.php index 9ec80effe22f9dfb0fdbb33c275c74677e7184ba..0573cede553fc49792e6957e2223c09017ab3d23 100644 --- a/typo3/sysext/linkvalidator/Classes/Task/ValidatorTask.php +++ b/typo3/sysext/linkvalidator/Classes/Task/ValidatorTask.php @@ -281,6 +281,9 @@ class ValidatorTask extends AbstractTask $pageList = GeneralUtility::trimExplode(',', $this->page, true); $modTs = $this->loadModTsConfig($this->page); if (is_array($pageList)) { + // reset broken link counts as they were stored in the serialized object + $this->oldTotalBrokenLink = 0; + $this->totalBrokenLink = 0; foreach ($pageList as $page) { $pageSections .= $this->checkPageLinks($page); } diff --git a/typo3/sysext/linkvalidator/Classes/Task/ValidatorTaskAdditionalFieldProvider.php b/typo3/sysext/linkvalidator/Classes/Task/ValidatorTaskAdditionalFieldProvider.php index d885fc0dba623744dd00fef7fe6288cb8e94f85c..18f3ff1f34d23534c92ea90810f607f892abb525 100644 --- a/typo3/sysext/linkvalidator/Classes/Task/ValidatorTaskAdditionalFieldProvider.php +++ b/typo3/sysext/linkvalidator/Classes/Task/ValidatorTaskAdditionalFieldProvider.php @@ -225,7 +225,11 @@ class ValidatorTaskAdditionalFieldProvider implements AdditionalFieldProviderInt // @todo which is normally a comma separated string $lang = $this->getLanguageService(); if (!empty($submittedData['linkvalidator']['email'])) { - $emailList = GeneralUtility::trimExplode(',', $submittedData['linkvalidator']['email']); + if (strpos($submittedData['linkvalidator']['email'], ',') !== false) { + $emailList = GeneralUtility::trimExplode(',', $submittedData['linkvalidator']['email']); + } else { + $emailList = GeneralUtility::trimExplode(LF, $submittedData['linkvalidator']['email']); + } foreach ($emailList as $emailAdd) { if (!GeneralUtility::validEmail($emailAdd)) { $isValid = false; diff --git a/typo3/sysext/linkvalidator/Resources/Private/Templates/mailtemplate.html b/typo3/sysext/linkvalidator/Resources/Private/Templates/mailtemplate.html index 8758d715729a8caa4172e7eab05aa23bf05c8c31..da3e7a9a30b2c7283a20c84a438ff7210013c4e0 100644 --- a/typo3/sysext/linkvalidator/Resources/Private/Templates/mailtemplate.html +++ b/typo3/sysext/linkvalidator/Resources/Private/Templates/mailtemplate.html @@ -11,8 +11,9 @@ Total broken links: ###TOTALBROKENLINK### (last report: ###TOTALBROKENLINK_OLD## <!-- ###PAGE_SECTION### --> Page: ###TITLE###<br /> All links types: ###BROKENLINKCOUNT### (last report: ###BROKENLINKCOUNT_OLD###)<br /> - Internal link: ###DB### (last report: ###DB_OLD###)<br /> - External link: ###EXTERNAL### (last report: ###EXTERNAL_OLD###)<br /> + Internal links: ###DB### (last report: ###DB_OLD###)<br /> + File links: ###FILE### (last report: ###FILE_OLD###)<br /> + External links: ###EXTERNAL### (last report: ###EXTERNAL_OLD###)<br /> <!-- ###PAGE_SECTION### -->