Files
2025-06-22 09:49:23 -04:00

345 lines
12 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
class BlogData extends BaseController
{
use ResponseTrait;
protected $db;
public $con_name = 'wrench_dockerblog'; // 'wrench_blog';
private $blogDataBase = '10.10.11.48';
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 anyBlogData($blogName)
{
log_message('critical', "anyBlogData DATA CALL ********* ".$blogName );
$blogsArray =
['chiefsoft',
'blackfaces',
'mermsemr',
'myfit',
'dorcastore',
'sanyaameye',
'oluameye_www',
'automedsys',
'tokslaw',
'oluameye',
'coregrade',
'wrenchboard',
'tokslaw_blog',
'modupeameye'];
$custom = [
'DSN' => '',
'hostname' => $this->blogDataBase,
'username' => 'bloguser',
'password' => 'bloguserF22!',
'database' => $blogName,
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3307,
];
$dbConnection = \Config\Database::connect($custom);
// var_dump( $general_blog );
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
log_message('critical', "anyBlogData DATA CALL ********* ".serialize($in) );
$out = $this->apiBlogData($dbConnection, 0);
//var_dump($out);
$out['blogconfig'] = [
"media_url" => "https://blog.wrenchboard.com/wp-content/uploads",
"site_url" => "https://blog.wrenchboard.com",
"other_cofig2" => "NONE",
];
switch( $blogName ){
case 'oluameye':
$out['blogconfig'] = [
"media_url" => "https://blog.oluameye.com/wp-content/uploads",
"site_url" => "https://blog.oluameye.com/",
"other_cofig2" => "NONE",
];
break;
}
return $this->response->setJson($out);
// return $this->respond( $this->response->setJson($out), 200);
}
private function apiBlogData($dbConnection, $blog_id=0) {
$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 =$dbConnection->query($mysql);
$data['payload']['blogdata'] = $query->getResult('array');
$totalCount = count( $data['payload']['blogdata'] );
$randomIndex = rand(1, $totalCount);
$siteConfig = $this->blogConfigData($dbConnection);
$siteUrl = $siteConfig[0]["option_value"];
//var_dump($siteConfig);
$data['payload']['featured'] = $data['payload']['blogdata'][$randomIndex ];
$data['payload']['image_url'] = $siteUrl.'/wp-content/uploads/';
$data['payload']['blog_url'] = $siteUrl; //https://blog.wrenchboard.com/';
$data['payload']['total'] = $totalCount;
} catch (Exception $ex) {
}
return $data;
}
private function blogConfigData($dbConnection){
$opSql ="SELECT * FROM `wp_options` WHERE option_name='siteurl'";
$query =$dbConnection->query($opSql);
return $query->getResult('array');
}
public function anyMermsBlogData($blogName)
{
log_message('critical', "0001");
header('Access-Control-Allow-Origin: *');
log_message('critical', "anyMermsBlogData Path GATE 001");
$call_backend = true;
/*
//header("Access-Control-Allow-Origin: http://localhost:9057 ");
header('Access-Control-Expose-Headers: Access-Control-Allow-Origin');
//header('Access-Control-Allow-Credentials: true ');
//header("Access-Control-Allow-Headers: Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With");
header('Access-Control-Allow-Headers :Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS');
header('Content-type: application/json');
*/
header("Access-Control-Allow-Headers: Origin, X-API-KEY, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Access-Control-Allow-Headers, Authorization, observe, enctype, Content-Length, X-Csrf-Token");
log_message('critical', "0003");
header("Access-Control-Allow-Methods: GET, PUT, POST, DELETE, PATCH, OPTIONS");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Max-Age: 3600");
header('content-type: application/json; charset=utf-8');
log_message('critical', "anyBlogData DATA CALL ********* ".$blogName );
$blogsArray =
['chiefsoft',
'blackfaces',
'mermsemr',
'myfit',
'dorcastore',
'sanyaameye',
'oluameye_www',
'automedsys',
'tokslaw',
'oluameye',
'coregrade',
'wrenchboard',
'tokslaw_blog',
'modupeameye'];
$custom = [
'DSN' => '',
'hostname' => $this->blogDataBase,
'username' => 'bloguser',
'password' => 'bloguserF22!',
'database' => $blogName,
'DBDriver' => 'MySQLi',
'DBPrefix' => '',
'pConnect' => false,
'DBDebug' => (ENVIRONMENT !== 'production'),
'charset' => 'utf8',
'DBCollat' => 'utf8_general_ci',
'swapPre' => '',
'encrypt' => false,
'compress' => false,
'strictOn' => false,
'failover' => [],
'port' => 3307,
];
$dbConnection = \Config\Database::connect($custom);
// var_dump( $general_blog );
$raw_json = file_get_contents('php://input');
$in = json_decode($raw_json, true);
log_message('critical', "anyBlogData DATA CALL ********* ".serialize($in) );
$out = $this->apiBlogData($dbConnection, 0);
//var_dump($out);
$out['blogconfig'] = [
"media_url" => "https://blog.wrenchboard.com/wp-content/uploads",
"site_url" => "https://blog.wrenchboard.com",
"other_cofig2" => "NONE",
];
switch( $blogName ){
case 'oluameye':
$out['blogconfig'] = [
"media_url" => "https://blog.oluameye.com/wp-content/uploads",
"site_url" => "https://blog.oluameye.com/",
"other_cofig2" => "NONE",
];
break;
case 'mermsemr':
$out['blogconfig'] = [
"media_url" => "https://blog.mermsemr.com/wp-content/uploads",
"site_url" => "https://blog.mermsemr.com/",
"other_cofig2" => "NONE",
];
break;
}
return $this->response->setJson($out);
// return $this->respond( $this->response->setJson($out), 200);
}
}