}
// fetch articles
- $articleIDs = $articles = [];
+ $articleContentIDs = [];
foreach ($comments as $comment) {
- $articleIDs[] = $comment->objectID;
+ $articleContentIDs[] = $comment->objectID;
}
- if (!empty($articleIDs)) {
+
+ $articles = $articleContentToArticle = [];
+ if (!empty($articleContentIDs)) {
$articleList = new ViewableArticleList();
- $articleList->setObjectIDs($articleIDs);
+ $articleList->getConditionBuilder()->add("article.articleID IN (SELECT articleID FROM wcf".WCF_N."_article_content WHERE articleContentID IN (?))", [$articleContentIDs]);
$articleList->readObjects();
- $articles = $articleList->getObjects();
+ foreach ($articleList as $article) {
+ $articles[$article->articleID] = $article;
+
+ $articleContentToArticle[$article->getArticleContent()->articleContentID] = $article->articleID;
+ }
}
// fetch users
if (isset($responses[$event->objectID])) {
$response = $responses[$event->objectID];
$comment = $comments[$response->commentID];
- if (isset($articles[$comment->objectID]) && isset($users[$comment->userID])) {
- $article = $articles[$comment->objectID];
+ if (isset($articleContentToArticle[$comment->objectID]) && isset($users[$comment->userID])) {
+ $article = $articles[$articleContentToArticle[$comment->objectID]];
// check permissions
if (!$article->canRead()) {
$comments = $commentList->getObjects();
// fetch articles
- $articleIDs = $articles = [];
+ $articleContentIDs = [];
foreach ($comments as $comment) {
- $articleIDs[] = $comment->objectID;
+ $articleContentIDs[] = $comment->objectID;
}
- if (!empty($articleIDs)) {
+
+ $articles = $articleContentToArticle = [];
+ if (!empty($articleContentIDs)) {
$articleList = new ViewableArticleList();
- $articleList->setObjectIDs($articleIDs);
+ $articleList->getConditionBuilder()->add("article.articleID IN (SELECT articleID FROM wcf".WCF_N."_article_content WHERE articleContentID IN (?))", [$articleContentIDs]);
$articleList->readObjects();
- $articles = $articleList->getObjects();
+ foreach ($articleList as $article) {
+ $articles[$article->articleID] = $article;
+
+ $articleContentToArticle[$article->getArticleContent()->articleContentID] = $article->articleID;
+ }
}
// set message
if (isset($comments[$event->objectID])) {
// short output
$comment = $comments[$event->objectID];
- if (isset($articles[$comment->objectID])) {
- $article = $articles[$comment->objectID];
+ if (isset($articleContentToArticle[$comment->objectID])) {
+ $article = $articles[$articleContentToArticle[$comment->objectID]];
// check permissions
if (!$article->canRead()) {
+ wcfDebug("nope");
continue;
}
$event->setIsAccessible();