first commit
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
<?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;
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
abstract class BaseController extends Controller
|
||||
{
|
||||
/**
|
||||
* Instance of the main Request object.
|
||||
*
|
||||
* @var CLIRequest|IncomingRequest
|
||||
*/
|
||||
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 list<string>
|
||||
*/
|
||||
protected $helpers = [];
|
||||
|
||||
/**
|
||||
* Be sure to declare properties for any property fetch you initialized.
|
||||
* The creation of dynamic property is deprecated in PHP 8.2.
|
||||
*/
|
||||
// protected $session;
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
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();
|
||||
}
|
||||
|
||||
public function saveCache($cacheKey,$data,$timeLine=5000){
|
||||
$cacheKey = $this->cache_tag."-".$cacheKey;
|
||||
// $cache = \Config\Services::cache();
|
||||
if (! $foo = cache($cacheKey)) {
|
||||
// echo 'Saving to the cache!<br>';
|
||||
// cache()->save($cacheKey, $this->data_stringify($data), 3000);
|
||||
cache()->save($cacheKey, serialize($data), $timeLine);
|
||||
|
||||
//serialize
|
||||
}
|
||||
$foo = cache()->get($cacheKey);
|
||||
log_message('critical', "FROM Cache -> ".$foo );
|
||||
|
||||
}
|
||||
|
||||
public function getCache($cacheKey){
|
||||
$data = [];
|
||||
$cacheKey = $this->cache_tag."-".$cacheKey;
|
||||
if (cache($cacheKey)) {
|
||||
// echo 'Getting Data From Cache!<br>';
|
||||
$data = unserialize(cache()->get($cacheKey));
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
private function data_stringify($data) {
|
||||
switch (gettype($data)) {
|
||||
case 'string' : return '\''.addcslashes($data, "'\\").'\'';
|
||||
case 'boolean': return $data ? 'true' : 'false';
|
||||
case 'NULL' : return 'null';
|
||||
case 'object' :
|
||||
case 'array' :
|
||||
$expressions = [];
|
||||
foreach ($data as $c_key => $c_value) {
|
||||
$expressions[] = $this->data_stringify($c_key).' => '.
|
||||
$this->data_stringify($c_value);
|
||||
}
|
||||
return gettype($data) === 'object' ?
|
||||
'(object)['.implode(', ', $expressions).']' :
|
||||
'['.implode(', ', $expressions).']';
|
||||
default: return (string)$data;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
//use CodeIgniter\API\ResponseTrait;
|
||||
|
||||
class BlogData extends BaseController
|
||||
{
|
||||
|
||||
//use ResponseTrait;
|
||||
|
||||
protected $db;
|
||||
public $con_name = 'wrench_dockerblog'; // 'wrench_blog';
|
||||
|
||||
private function apiData($blog_id) {
|
||||
$this->db = \Config\Database::connect($this->con_name);
|
||||
$data = array();
|
||||
$extra_filter = "";
|
||||
if ($blog_id > 0 ){
|
||||
$extra_filter = " AND p1.id = $blog_id ";
|
||||
}
|
||||
|
||||
try {
|
||||
$mysql = "SELECT id, post_title, post_content,post_date,comment_count FROM wp_posts WHERE post_type='post' AND post_status = 'publish' ORDER BY post_date DESC LIMIT 9";
|
||||
$mysql = "SELECT p1.id AS id, p1.*, wm2.meta_value FROM wp_posts p1 LEFT JOIN wp_postmeta wm1
|
||||
ON (wm1.post_id = p1.id AND wm1.meta_value IS NOT NULL AND wm1.meta_key = '_thumbnail_id' )
|
||||
LEFT JOIN
|
||||
wp_postmeta wm2
|
||||
ON (wm1.meta_value = wm2.post_id AND wm2.meta_key = '_wp_attached_file' AND wm2.meta_value IS NOT NULL )
|
||||
WHERE
|
||||
p1.post_status='publish'
|
||||
AND p1.post_type='post' $extra_filter
|
||||
ORDER BY p1.post_date DESC LIMIT 2000";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
$data['payload']['blogdata'] = $query->getResult('array');
|
||||
$totalCount = count( $data['payload']['blogdata'] );
|
||||
|
||||
$randomIndex = rand(1, $totalCount);
|
||||
|
||||
$data['payload']['featured'] = $data['payload']['blogdata'][$randomIndex ];
|
||||
$data['payload']['image_url'] = 'https://blog.wrenchboard.com/wp-content/uploads/';
|
||||
$data['payload']['blog_url'] = 'https://blog.wrenchboard.com/';
|
||||
$data['payload']['total'] = $totalCount;
|
||||
} catch (Exception $ex) {
|
||||
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function blogData($endpoint,$raw_array)
|
||||
{
|
||||
/*
|
||||
$rawData = $this->apiData();
|
||||
// $res1= $rawData[0]['payload'];
|
||||
$res1= $rawData; //[0]['payload'];
|
||||
$this->saveCache('blogdata',$res1['payload']);
|
||||
*/
|
||||
|
||||
$res1 = $this->getCache($endpoint);
|
||||
if (count($res1)==0){
|
||||
$rawData = $this->apiData();
|
||||
$res1= $rawData['payload']; //[0]['payload'];
|
||||
$this->saveCache($endpoint,$res1);
|
||||
}
|
||||
//$resJson = $this->response->setJson($res1);
|
||||
return $res1;
|
||||
}
|
||||
|
||||
public function website(){
|
||||
|
||||
$blog_id = 0;
|
||||
// echo "EXYTACT INPUT DATA HERE";
|
||||
$raw_json = file_get_contents('php://input');
|
||||
$in = json_decode($raw_json, true);
|
||||
|
||||
log_message('critical', "BLOG DATA CALL ********* ".serialize($in) );
|
||||
|
||||
if (isset($in['blog_id'])){
|
||||
$blog_id = (int) $in['blog_id'];
|
||||
}
|
||||
|
||||
if ($blog_id > 0 ){
|
||||
$rawData = $this->apiData($blog_id);
|
||||
$res1= $rawData['payload']; //[0]['payload'];
|
||||
}
|
||||
else{
|
||||
$endpoint = "WRENCH_BLOG_DATA";
|
||||
$res1 = $this->getCache($endpoint);
|
||||
if (count($res1)==0){
|
||||
$rawData = $this->apiData($blog_id);
|
||||
$res1= $rawData['payload']; //[0]['payload'];
|
||||
$this->saveCache($endpoint,$res1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$limit = isset($in['limit']) ? $in['limit']: 0;
|
||||
if ($limit> 0){
|
||||
$res1['blogdata'] = array_slice($res1['blogdata'], 0, $limit);
|
||||
}
|
||||
|
||||
|
||||
$res1['blogconfig'] = [
|
||||
"media_url" => "https://blog.wrenchboard.com/wp-content/uploads",
|
||||
"site_url" => "https://blog.wrenchboard.com",
|
||||
"other_cofig2" => "NONE",
|
||||
];
|
||||
return $this->response->setJson($res1);
|
||||
}
|
||||
|
||||
public function blogLimitedData($inData){
|
||||
log_message('critical', "blogLimitedData-> ".$inData );
|
||||
$res1 = $this->blogData('blogdata',$raw_array=['limit'=>$inData ]);
|
||||
|
||||
$res1['blogdata'] = array_slice($res1['blogdata'], 0, $inData);
|
||||
|
||||
return $this->response->setJson($res1);
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controllers;
|
||||
|
||||
class Home extends BaseController
|
||||
{
|
||||
public function index(): string
|
||||
{
|
||||
return view('welcome_message');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user