mirror of
https://github.com/dwaxweiler/connector-mobilizon
synced 2025-02-16 11:41:24 +01:00
finish implemention for PHP parts
This commit is contained in:
parent
fb1fe56970
commit
ce7a108e97
@ -62,6 +62,17 @@ final class GraphQlClient {
|
|||||||
self::checkData($data);
|
self::checkData($data);
|
||||||
|
|
||||||
$events = $data['data']['events']['elements'];
|
$events = $data['data']['events']['elements'];
|
||||||
|
foreach ($events as &$event) {
|
||||||
|
if ($event['picture']) {
|
||||||
|
$picture_response = self::download_image($event['picture']['url']);
|
||||||
|
if ($picture_response !== false) {
|
||||||
|
$picture_encoded = 'data:' . $event['picture']['contentType'] . ';base64,' . base64_encode($picture_response);
|
||||||
|
$event['picture']['base64'] = $picture_encoded;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($event);
|
||||||
|
}
|
||||||
|
|
||||||
EventsCache::set(['url' => $url, 'query' => $query, 'limit' => $limit], $events);
|
EventsCache::set(['url' => $url, 'query' => $query, 'limit' => $limit], $events);
|
||||||
return $events;
|
return $events;
|
||||||
}
|
}
|
||||||
@ -95,11 +106,10 @@ final class GraphQlClient {
|
|||||||
|
|
||||||
$afterDatetime = date(\DateTime::ISO8601);
|
$afterDatetime = date(\DateTime::ISO8601);
|
||||||
|
|
||||||
// TODO
|
$cachedEvents = EventsCache::get(['url' => $url, 'query' => $query, 'afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit]);
|
||||||
// $cachedEvents = EventsCache::get(['url' => $url, 'query' => $query, 'afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit]);
|
if ($cachedEvents !== false) {
|
||||||
// if ($cachedEvents !== false) {
|
return $cachedEvents;
|
||||||
// return $cachedEvents;
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
$endpoint = $url . '/api';
|
$endpoint = $url . '/api';
|
||||||
$data = self::query($endpoint, $query, ['afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit]);
|
$data = self::query($endpoint, $query, ['afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit]);
|
||||||
@ -107,22 +117,19 @@ final class GraphQlClient {
|
|||||||
|
|
||||||
$events = $data['data']['group']['organizedEvents']['elements'];
|
$events = $data['data']['group']['organizedEvents']['elements'];
|
||||||
|
|
||||||
foreach ($data['data']['group']['organizedEvents']['elements'] as &$event) {
|
foreach ($events as &$event) {
|
||||||
if ($event['picture']) {
|
if ($event['picture']) {
|
||||||
$picture_response = self::get_encoded_image($event['picture']['url']);
|
$picture_response = self::download_image($event['picture']['url']);
|
||||||
if ($picture_response !== false) {
|
if ($picture_response !== false) {
|
||||||
$picture_encoded = 'data:' . $event['picture']['contentType'] . ';base64,' . base64_encode($picture_response);
|
$picture_encoded = 'data:' . $event['picture']['contentType'] . ';base64,' . base64_encode($picture_response);
|
||||||
$event['picture']['base64'] = $picture_encoded;
|
$event['picture']['base64'] = $picture_encoded;
|
||||||
// TODO
|
|
||||||
// EventsCache::set(['url' => $url, 'query' => $query, 'afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit, 'eventId' => $event['id']], $picture_encoded);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unset($event);
|
unset($event);
|
||||||
}
|
}
|
||||||
|
|
||||||
EventsCache::set(['url' => $url, 'query' => $query, 'afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit], $data['data']['group']['organizedEvents']['elements']);
|
EventsCache::set(['url' => $url, 'query' => $query, 'afterDatetime' => $afterDatetime, 'groupName' => $groupName, 'limit' => $limit], $events);
|
||||||
|
return $events;
|
||||||
return $data['data']['group']['organizedEvents']['elements'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function checkData($data) {
|
private static function checkData($data) {
|
||||||
@ -137,7 +144,7 @@ final class GraphQlClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function get_encoded_image($url) {
|
private static function download_image($url) {
|
||||||
// Initialize curl handle
|
// Initialize curl handle
|
||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
|
|
||||||
@ -145,7 +152,6 @@ final class GraphQlClient {
|
|||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
|
||||||
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Set timeout to 60 seconds (adjust as needed)
|
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Set timeout to 60 seconds (adjust as needed)
|
||||||
curl_setopt($ch, CURLOPT_VERBOSE, 1); // TODO
|
|
||||||
|
|
||||||
// Execute the request
|
// Execute the request
|
||||||
$image_data = curl_exec($ch);
|
$image_data = curl_exec($ch);
|
||||||
@ -154,16 +160,11 @@ final class GraphQlClient {
|
|||||||
if (curl_errno($ch)) {
|
if (curl_errno($ch)) {
|
||||||
print_r(curl_error($ch));
|
print_r(curl_error($ch));
|
||||||
throw new \Error('Error: ' . curl_error($ch));
|
throw new \Error('Error: ' . curl_error($ch));
|
||||||
// return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close curl handle
|
// Close curl handle
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
// Encode image data (base64 in this example)
|
|
||||||
// $encoded_image = base64_encode($image_data);
|
|
||||||
|
|
||||||
return $image_data;
|
return $image_data;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ if (!defined('ABSPATH')) {
|
|||||||
<div class="<?php echo esc_attr($classNamePrefix); ?>_events-list">
|
<div class="<?php echo esc_attr($classNamePrefix); ?>_events-list">
|
||||||
<ul style="list-style-type: none; padding-left: 0;">
|
<ul style="list-style-type: none; padding-left: 0;">
|
||||||
<?php foreach ($events as $event) { ?>
|
<?php foreach ($events as $event) { ?>
|
||||||
<li style="margin-top: 10px;">
|
<li style="line-height: 150%; margin-top: 20px;">
|
||||||
<?php if (isset($event['picture'])) { ?>
|
<?php if (isset($event['picture'])) { ?>
|
||||||
<img alt="<?php echo esc_attr($event['picture']['alt']); ?>" src="<?php echo esc_attr($event['picture']['base64']); ?>" style="display: block;">
|
<img alt="<?php echo esc_attr($event['picture']['alt']); ?>" src="<?php echo esc_attr($event['picture']['base64']); ?>" style="display: block;">
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user