Source of file JobBoardSitemapExtension.php
Size: 1,487 Bytes - Last Modified: 2022-01-13T10:01:49+00:00
/var/www/docs.ssmods.com/process/src/src/Extensions/JobBoardSitemapExtension.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344 | <?php use SilverStripe\Control\Director; use SilverStripe\Core\Config\Config; use SilverStripe\ORM\DataExtension; use SilverStripe\View\ArrayData; class JobBoardSitemapExtension extends DataExtension { public function updateGoogleSitemapItems($items, $class, $page) { $jobBoardURLPath = Config::inst()->get('BiffBangPow\SilverStripeREJB\SilverstripeREJB', 'job_board_url_path'); $apiBaseURL = Config::inst()->get('BiffBangPow\SilverStripeREJB\SilverstripeREJB', 'api_base_url'); $brandSlug = Config::inst()->get('BiffBangPow\SilverStripeREJB\SilverstripeREJB', 'brand_slug'); $now = new DateTime(); $now->format('YYYY-MM-DD'); $allJobsURL = sprintf( '%s/api/brands/%s/jobs?expiryDate[strictly_after]=%s', $apiBaseURL, $brandSlug, $now->format('Y-m-d') ); $client = new GuzzleHttp\Client(['base_uri' => $allJobsURL]); $response = $client->request('GET'); $arrayResponse = json_decode((string)$response->getBody(), true); $jobs = $arrayResponse['hydra:member']; foreach ($jobs as $job) { $jobURL = rtrim(Director::absoluteBaseURL(),'/') .$jobBoardURLPath . '/job/' . ltrim($job['slug'],$brandSlug . '-'); $items->push(new ArrayData(array( 'AbsoluteLink' => $jobURL, 'ChangeFrequency' => 'weekly', 'GooglePriority' => 1, ))); } } } |