Как получать данные с сайта на сайт?

На сайте есть что-то вроде календаря событий на каждый день. Хочу эти события выводить ещё на локальном сайте. Я смутно, но представляю общую картину, что, видимо, надо делать отдельную страницу на сайте, где будет формироваться json или xml. А локальный будет обращаться к этой странице и парсить сниппетом. Требований к оптимизации нагрузки нет, локально оно будет раз в день открываться. Но вот с практической точки я не знаю с чего начать, какие есть возможности для этого и т.п.
Как лучше сделать? Может уже есть готовые примеры? Оба сайта на modx revo.
Andrey
10 августа 2021, 18:05
modx.pro
452
0

Комментарии: 3

Артур Шевченко
10 августа 2021, 22:37
0
Непонятно. Календарь событий на одном сайте, а вывести ты его хочешь на другом? Что он из себя представляет? Таблица в БД? TV?
Если это разные сайты, то можно использовать встроенный RESTful API клиент для общения между сайтами.
    Артур Шевченко
    10 августа 2021, 22:48
    +1
    Примерно так
    <?php
    $client = $modx->getService('rest', 'rest.modRest'); // подключаешь restful api
    $params = array();
    $response = json_decode(sendRequest($client,$params),1); // отправляешь запрос
    // тут как-то его обрабатываешь
    
    function sendRequest($client,$params){
        $data = array();
        $url = 'https://domain.ru/assets/reciever.php';
        if($client){    
            $response = $client->post($url, $params);
            $data = $response->process();  
        }
        return $data;
    }
    reciever.php
    <?php
    require_once '/home/d/doskazaym/doskazaymov.tech/public_html/config.core.php';
    require_once MODX_CORE_PATH.'model/modx/modx.class.php';
    $modx = new modX();
    $modx->initialize('web');
    $modx->getService('error','error.modError', '', '');
    $params = $_POST;
    $output = array();
    // тут получаешь список событий и записываешь в $output
    echo json_encode($output);
    В reciever.php хорошо бы проверку какую-нибудь добавить, чтобы все подряд не могли запросы слать.
      Andrey
      11 августа 2021, 17:05
      0
      Календарь, да — через tv, через migx.
      Посмотрю на restful api, что за штука. Не сталкивался с ним, не знаю про него ничего. Спасибо за пример!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3