Вывод ссылки на оригинально объявление.
Здравствуйте!
Есть такой сайт trudvsem.ru Там есть свой api и открытые данные по вакансиям. У меня есть скрипт, он находит вакансии по определённому городу и публикует на другой сайт. Работает он хорошо, в конце публикует ссылку на источник. Источник: <a href="http://trudvsem.ru" target="_blank" rel="nofollow noopenerz">trudvsem.ru</a> 146 строка в коде Подскажите как сделать что бы ссылка была не на корень сайта, а на оригинальное объявление? Например: Вакансия, требуется бухгалтер, там текст и ниже ссылка, человек нажимает на неё и переходит на оригинальное объявление. В самом json есть ссылка на оригинал. Просто я не знаю PHP. пример json по региону, лимит 100 вакансий вроде сам php <?php require_once __DIR__ . '/UApiModule.php'; $dir = __DIR__; $pdo = new PDO("sqlite:{$dir}/base.sqlite"); $myWebsite = 'домен.ру'; $config = [ 'oauth_consumer_key' => '***', 'oauth_consumer_secret' => '***', 'oauth_token' => '**', 'oauth_token_secret' => ***', ]; $uApiClient = new UApiModule($myWebsite, $config); function loadAllVacancies() { $allVacancies = []; $regionId = '6200000000000'; $offset = 0; $limit = 100; do { $queryParams = [ 'limit' => $limit, 'offset' => $offset, ]; $query = http_build_query($queryParams); $vacanciesUrl = "http://opendata.trudvsem.ru/api/v1/vacancies/region/{$regionId}?{$query}"; $vacanciesData = json_decode(file_get_contents($vacanciesUrl), true); if (count($vacanciesData['results'])) { $allVacancies = array_merge($allVacancies, $vacanciesData['results']['vacancies']); $hasNextPage = true; // echo "load {$offset}\n"; $offset++; } else { $hasNextPage = false; } } while ($hasNextPage); return $allVacancies; } function filterLoadedVacanciesByRelevance($vacancies) { $relevant = []; foreach ($vacancies as $vacancy) { foreach ($vacancy['vacancy']['addresses'] as $address) { foreach ($address as $address) { if (mb_stripos($address['location'], 'Название города') !== false) { $relevant[] = $vacancy; } } } } return $relevant; } function getVacanciesForRemoving($publishedVacancies, $allExistsVacancies) { $existsIds = []; foreach ($allExistsVacancies as $vacancy) { $existsIds[] = $vacancy['vacancy']['id']; } $idsForRemove = []; foreach ($publishedVacancies as $publishedVacancy) { if (!in_array($publishedVacancy['trudvsem_id'], $existsIds)) { $idsForRemove[] = $publishedVacancy; } } return $idsForRemove; } function getVacanciesForPublishing($publishedVacancies, $allExistsVacancies) { $existsIds = []; foreach ($publishedVacancies as $vacancy) { $existsIds[] = $vacancy['trudvsem_id']; } $vacanciesForPublish = []; foreach ($allExistsVacancies as $vacancy) { if (!in_array($vacancy['vacancy']['id'], $existsIds)) { $vacanciesForPublish[] = $vacancy; } } return $vacanciesForPublish; } function getPublishedVacancies() { global $pdo; $sql = "SELECT * FROM vacancies"; $statement = $pdo->prepare($sql); $statement->execute(); return $statement->fetchAll(PDO::FETCH_ASSOC); } function removeVacancy($vacancySiteId) { global $uApiClient, $pdo; $r = $uApiClient->delete('/board/posts', ['id' => $vacancySiteId]); var_dump(['id' => $vacancySiteId], json_decode($r)); $sql = "DELETE FROM vacancies WHERE `board_id` = ?"; $statement = $pdo->prepare($sql); $statement->execute([$vacancySiteId]); } function publishVacancy($vacancy) { global $uApiClient, $pdo; $description = <<<TEXT Должностные обязанности: {$vacancy['duty']} Дополнительная информация по вакансии: {$vacancy['requirement']['qualification']} Образование: {$vacancy['requirement']['education']} График работы: {$vacancy['schedule']} Тип занятости: {$vacancy['employment']} Дополнительные бонусы: {$vacancy['term']['text']} Контакт: {$vacancy['company']['name']} Источник: <a href="http://trudvsem.ru" target="_blank" rel="nofollow noopenerz">trudvsem.ru</a> TEXT; $addressParts = explode(',', $vacancy['addresses']['address'][0]['location']); unset($addressParts[0]); unset($addressParts[0]); $address = join(', ', $addressParts); $address = str_replace('Рязанская область', '', $address); $data = [ 'category' => '276', 'title' => $vacancy['job-name'], 'description' => $description, 'description_type' => 'html', 'name' => mb_strimwidth($vacancy['company']['name'], 0, 30), 'author_phone' => mb_strimwidth($vacancy['company']['phone'],0, 30), 'other1' => 'От ' . number_format($vacancy['salary_min'], 0, ',', ' ') . ' руб', 'other2' => 'Рязанская область', 'other3' => mb_strimwidth($address, 0, 100), ]; $response = json_decode($uApiClient->post('/board', $data)); var_dump($data, $response); $vacancyId = $vacancy['id']; $publishedId = $response->id; $sql = "INSERT INTO vacancies (`trudvsem_id`, `board_id`) VALUES (?, ?)"; $statement = $pdo->prepare($sql); $statement->execute([$vacancyId, $publishedId]); } $vacancies = loadAllVacancies(); $relevantVacancies = filterLoadedVacanciesByRelevance($vacancies); $publishedVacancies = getPublishedVacancies(); $vacanciesForRemove = getVacanciesForRemoving($publishedVacancies, $relevantVacancies); if ($vacanciesForRemove) { removeVacancy($vacanciesForRemove[0]['board_id']); } else { $vacanciesForPublish = getVacanciesForPublishing($publishedVacancies, $relevantVacancies); if ($vacanciesForPublish) { publishVacancy($vacanciesForPublish[0]['vacancy']); } } ?> Так побывали публикуется ссылка на мой сайт а не на сайт источник "<a href=".{$vacancy['requirement']['vac_url']}." target='_blank' rel='nofollow noopenerz'>ССЫЛКА</a>"; фото https://sun1-3.userapi.com/c840639/v...kreFyHBMmI.jpg |
Это к JS не имеет никакого отношения.
|
laimas,
а куда написать что бы помогли? |
|
laimas,
модератор может сам перекинуть эту тему? |
Да.
|
PHP на этом форуме никто не знает?
|
Часовой пояс GMT +3, время: 12:23. |