Відгуки з freelancehunt на сайт ModX revo

Блог Фрилансера 2 хвилин 7 секунд 11 квіт. 2018
 Відгуки з freelancehunt на сайт ModX revo

 freelancehunt це Біржа Фрілансерів і у Сайту є Api що дає нам можливість отримувати інформацію про ваш профіль. Відгуки, портфоліо. Сьогодні я покажу як отримати відгуки та вивести їх у себе на сайті  MODx revo.

Для роботи з Аpі потрібен Сurl. Він є на всіх платних хостингах. Але іноді його потрібно включити. Як це зробити  залежить вже від панелі керування хостингом.Але думаю ви знайдете.

І так почнемо.

Для початку нам потрібно отримати ключ і токен, за якими ми будемо підключатися до сайту Фріланса. Для цього топаємо в налаштування вашого профілю фрілансера. Розділ Програми та API

Далі буде код Сніпета в ньому все зрозуміло.

$tpl = $modx->getOption('tpl', $scriptProperties, 'FileItemTpl');





$api_token = 'xxxxxxxxxxxxxxxxx';
$api_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

function signsa($api_secret, $url, $method, $post_params = '') {
    return base64_encode(hash_hmac("sha256", $url.$method.$post_params, $api_secret, true));
}
$url = "https://api.freelancehunt.com/profiles/Pechenki_PSD?include=reviews";
$method = "GET";
$signature = signsa($api_secret, $url, $method); // реалізацію функції дивіться вище
$ curl = curl_init ();
curl_setopt_array($curl, [
    //CURLOPT_HEADER => 1, // дозволяє переглянути заголовки відповіді сервера за необхідності налагодження
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_USERPWD => $api_token. ":". $signature,
    CURLOPT_URL => $url
]);
$ reviers = curl_exec ($ curl);


 $ rev = json_decode ($ reviers, true);
curl_close ($ curl);

$list = array();
// Початок роботи
for ($i = 0; $i < count($rev['reviews']); $i++)
    {
        $itemArr['url'] = $rev['reviews'][$i]['project']['url'];
        $itemArr['name'] = $rev['reviews'][$i]['project']['name'];
        $itemArr['budget_amount'] = $rev['reviews'][$i]['project']['budget_amount'];
        $itemArr['budget_currency_code'] = $rev['reviews'][$i]['project']['budget_currency_code'];
        $itemArr['review_comment'] = $rev['reviews'][$i]['review_comment'];
        $itemArr['from_avatar'] = $rev['reviews'][$i]['from']['avatar'];
        $itemArr['from_fname'] = $rev['reviews'][$i]['from']['fname'];
        $itemArr['from_url'] = $rev['reviews'][$i]['from']['url'];
        

        $list[] = $modx->getChunk($tpl, $itemArr);
    }
  unset($i);
  
$output = implode($outputSeparator, $list);
if (!empty($toPlaceholder)) {

$modx->setPlaceholder($toPlaceholder, $output);

return '';
}

return $output;
Далі створюємо чанк для відображення вмісту відгуків. Викликаємо як звичайний сніпет modx
[[rewies?
   &tpl=`FrelanceRews`
]]

Список змінних для виведення шаблону

[[+url]] url  проекту
[[+name]] назва проекту
[[+budget_amount]] ціна проекту
[[+budget_currency_code]] код валюти
[[+review_comment]] коментар відгуку
[[+from_fname]] ім'я автора коментаря
[[+from_avatar]] фото автора коментаря
[[+from_url]] url автора коментаря

Приклад роботи можна переглянути на головній сторінці