90 lines
1.9 KiB
PHP
90 lines
1.9 KiB
PHP
<?php namespace RainLab\Blog\Components;
|
|
|
|
use Lang;
|
|
use Response;
|
|
use Cms\Classes\Page;
|
|
use Cms\Classes\ComponentBase;
|
|
use RainLab\Blog\Models\Post as BlogPost;
|
|
use RainLab\Blog\Models\Category as BlogCategory;
|
|
use Carbon\Carbon;
|
|
use GuzzleHttp\Client;
|
|
|
|
class Meilisearch extends ComponentBase
|
|
{
|
|
|
|
public $posts;
|
|
|
|
public $query;
|
|
|
|
public $page;
|
|
|
|
|
|
public function componentDetails()
|
|
{
|
|
return [
|
|
'name' => 'meilisearch',
|
|
'description' => 'meilisearch'
|
|
];
|
|
}
|
|
|
|
|
|
public function onRun()
|
|
{
|
|
//dd("hi");
|
|
$this->posts = $this->listPosts();
|
|
//$this->page = $this->listPosts();
|
|
}
|
|
|
|
protected function listPosts()
|
|
{
|
|
|
|
$query = get('q') ?? 'Turkmenistan';
|
|
$page = get('page');
|
|
//dd($query);
|
|
if(is_null($page))
|
|
{
|
|
$page = 1;
|
|
}
|
|
|
|
if(is_null($query))
|
|
{
|
|
$query = 'сотрудников';
|
|
}
|
|
|
|
$this->page = $page;
|
|
|
|
$this->query = $query;
|
|
|
|
|
|
$per_page = 2;
|
|
$offset=$per_page * ($page - 1);
|
|
|
|
$client = new Client([
|
|
'headers' => [ 'Content-Type' => 'application/json' ]
|
|
]);
|
|
//---------------------------------------------------------------
|
|
|
|
// $response = BlogPost::search('архитектуры')->get();
|
|
$queries = explode(' ', $query);
|
|
|
|
$response = BlogPost::search(implode(' OR ', $queries))->where('locale', 'en')->get();
|
|
|
|
$json = json_decode($response);
|
|
|
|
dd($json);
|
|
//-----------------------------------------------------------------
|
|
|
|
|
|
//$res = json_decode($response->getBody()->getContents());
|
|
|
|
//$query = post('query');
|
|
//dd($res);
|
|
//return $res->hits;
|
|
|
|
return $response;
|
|
}
|
|
|
|
|
|
|
|
|
|
} |