165 lines
5.5 KiB
PHP
165 lines
5.5 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use CodeIgniter\Controller;
|
|
use CodeIgniter\HTTP\CLIRequest;
|
|
use CodeIgniter\HTTP\IncomingRequest;
|
|
use CodeIgniter\HTTP\RequestInterface;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
use App\Services\WpContentsClient;
|
|
|
|
/**
|
|
* Class BaseController
|
|
*
|
|
* BaseController provides a convenient place for loading components
|
|
* and performing functions that are needed by all your controllers.
|
|
* Extend this class in any new controllers:
|
|
* class Home extends BaseController
|
|
*
|
|
* For security be sure to declare any new methods as protected or private.
|
|
*/
|
|
|
|
class BaseController extends Controller
|
|
{
|
|
/**
|
|
* Instance of the main Request object.
|
|
*
|
|
* @var IncomingRequest|CLIRequest
|
|
*/
|
|
protected $request;
|
|
|
|
/**
|
|
* An array of helpers to be loaded automatically upon
|
|
* class instantiation. These helpers will be available
|
|
* to all other controllers that extend BaseController.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $helpers = [];
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param RequestInterface $request
|
|
* @param ResponseInterface $response
|
|
* @param LoggerInterface $logger
|
|
*/
|
|
|
|
protected $session = [];
|
|
|
|
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
|
{
|
|
// Do Not Edit This Line
|
|
parent::initController($request, $response, $logger);
|
|
|
|
//--------------------------------------------------------------------
|
|
// Preload any models, libraries, etc, here.
|
|
//--------------------------------------------------------------------
|
|
// E.g.: $this->session = \Config\Services::session();
|
|
$this->session = \Config\Services::session();
|
|
}
|
|
|
|
public function APIcall($method, $url, $data) {
|
|
// $curl = curl_init();
|
|
$curl = curl_init($url);
|
|
switch ($method) {
|
|
case "GET":
|
|
$params2 = '';
|
|
foreach($data as $key2=>$value2)
|
|
$params2 .= $key2.'='.$value2.'&';
|
|
|
|
$params2 = trim($params2, '&');
|
|
$url = $url.'?'.$params2;// add param to URL
|
|
log_message('critical', "API URL FINAL =>".$url );
|
|
//curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
|
|
//curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
|
//curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
|
|
break;
|
|
case "POST":
|
|
curl_setopt($curl, CURLOPT_POST, 1);
|
|
if ($data)
|
|
// curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
|
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
|
|
// curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
|
|
break;
|
|
case "PUT":
|
|
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
|
|
if ($data)
|
|
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
|
break;
|
|
}
|
|
|
|
curl_setopt($curl, CURLOPT_URL, $url);
|
|
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
|
|
'APIKEY: RegisteredAPIkey',
|
|
'Content-Type: application/json',
|
|
));
|
|
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
|
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
|
$result = curl_exec($curl);
|
|
|
|
if(!$result) {
|
|
//echo("Connection failure!");
|
|
return json_decode('', true);
|
|
}
|
|
curl_close($curl);
|
|
return json_decode($result, true);
|
|
}
|
|
|
|
protected function getBlogOneItem($postId) :array {
|
|
$siteData = $this->getBlogItems();
|
|
$blogItem = $this->loopToFindItem($siteData['blogdata'],$postId); // $siteData['blogdata'][0];
|
|
$blogItem['blog_media_url'] = $siteData['blog_media_url'];
|
|
|
|
return $blogItem;
|
|
}
|
|
|
|
// TODO - This is bad idea - good for now
|
|
private function loopToFindItem($blogItem, $postId) {
|
|
foreach($blogItem as $p) {
|
|
if($p['id'] == $postId) {
|
|
return $p;
|
|
}
|
|
}
|
|
}
|
|
protected function getBlogItems() :array {
|
|
$siteData =[];
|
|
|
|
if ( $this->session->get("siteData") !== null && count( $this->session->get("siteData")) > 0 ){
|
|
return $this->session->get("siteData");
|
|
}
|
|
$blogURL = 'https://blogdata.chiefsoft.net/blogdata/coregrade'; //http://10.10.10.35:8805/blogdata/coregrade
|
|
|
|
$out = $this->APIcall('GET',$blogURL,[]);
|
|
$siteData['blogdata'] = is_array( $out['payload']['blogdata']) ? $out['payload']['blogdata'] : [];
|
|
$siteData['blog_media_url'] = $out['payload']['image_url'];
|
|
|
|
$this->session->set("siteData",$siteData);
|
|
|
|
return $siteData;
|
|
|
|
// $apiEndpointsConfig = config('ApiEndpoints');
|
|
// $wpData = WpContentsClient::serviceGetBlogItems($apiEndpointsConfig->baseUrl);
|
|
// $blog_post = array();
|
|
// $blog_cnt =0;
|
|
// foreach ($wpData[0]->payload as $item) {
|
|
// $itemA = array(
|
|
// 'title' => $item->post_title,
|
|
// 'desc' => substr($item->post_content,0,100),
|
|
// 'link' => $item->guid,
|
|
// 'date' => date_format(date_create( $item->post_date),'Y-m-d'),
|
|
// 'image' => "https://blog.mermsemr.com/wp-content/uploads/".$item->meta_value,
|
|
// );
|
|
// if ($blog_cnt == 0){
|
|
// $this->session->blogItem = $itemA ;
|
|
// }
|
|
// $blog_cnt++;
|
|
// array_push($blog_post, $itemA);
|
|
// }
|
|
// return $blog_post;
|
|
}
|
|
}
|