[ 'name' => 'Kategoria', 'type' => 'list', 'values' => [ 'Najnowsze (wszystkie)' => 'najnowsze', 'Newsy' => 'newsy', 'Recenzje' => 'recenzje', 'Teksty' => [ 'Publicystyka' => 'publicystyka', 'Zapowiedzi' => 'zapowiedzi', 'Już graliśmy' => 'juz-gralismy', 'Poradniki' => 'poradniki', ], 'Kultura' => 'kultura', 'Wideo' => 'wideo', 'Czasopismo' => 'czasopismo', 'Technologie' => [ 'Artykuły' => 'artykuly', 'Testy' => 'testy', ], 'Na luzie' => [ 'Konkursy' => 'konkursy', 'Nadgodziny' => 'nadgodziny', ] ] ]] ]; public function collectData() { $html = getSimpleHTMLDOM($this->getURI() . '/' . $this->getInput('category')); $newsJson = $html->find('script#__NEXT_DATA__', 0)->innertext; if (!$newsJson = json_decode($newsJson)) { return; } $queriesIndex = $this->getInput('category') === 'najnowsze' ? 0 : 1; foreach ($newsJson->props->pageProps->dehydratedState->queries[$queriesIndex]->state->data->results as $news) { $item = []; $item['uri'] = $this->getURI() . '/' . $news->category->slug . '/' . $news->slug; $item['title'] = $news->title; $item['timestamp'] = $news->publishedAt; $item['author'] = $news->editor->fullName; $item['content'] = $news->lead; $item['enclosures'][] = $news->bannerUrl; $item['categories'] = array_column($news->tags, 'name'); $item['uid'] = $news->id; $this->items[] = $item; } } }