[FRAMEWORK] Xây dựng page Search (ok)
Search People, Search Group
Last updated
Was this helpful?
Search People, Search Group
Last updated
Was this helpful?
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\controllers\Search.php
<?php
class BJ_Search_Controller extends Pv_Controller{
function __construct(){
$this->index();
}
public function index() {
$data = array();
$this->load()->View("search",$data,"page");
}
}
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\js\custom.js
jQuery(document).ready(function($) {
function addLoading() {
$('#page-load').css({ 'opacity': '1', 'visibility': 'visible' });
}
function unLoading() {
$('#page-load').css({ 'opacity': '0', 'visibility': 'hidden' });
}
const boxMessage = $('.notifi__update');
$("body").on("submit", "form#form-update-info", function(e) {
e.preventDefault();
var fd = new FormData(document.getElementById("form-update-info"));
fd.append('action', 'app_update_info');
$.ajax({
url: app.ajaxUrl,
type: "post",
contentType: false,
processData: false,
data: fd,
beforeSend: function() {
addLoading()
},
success: function(output) {
unLoading();
var result = $.parseJSON(output);
if (result.status === false) {
setTimeout(() => {
var currURL = window.location.href;
var urlReload = replaceUrlParam(currURL, 'appt', 'C');
window.location.replace(urlReload);
}, 1500)
} else {
boxMessage.text(result.message);
}
boxMessage.removeClass('hidden');
},
error: function(jqXHR, textStatus, errorThrown) {
unLoading();
alert('error');
}
});
});
$("input").blur(function() {
boxMessage.addClass('hidden');
});
$("#event-datepicker").datepicker({
onSelect: function() {
let dateObject = $(this).datepicker('getDate');
$("#date").val($.datepicker.formatDate("yy-mm-dd", dateObject));
}
});
$("body").on("submit", "form#form-update-post", function(e) {
e.preventDefault();
var fd = new FormData(document.getElementById("form-update-post"));
fd.append('action', 'edit_post_single');
$.ajax({
url: app.ajaxUrl,
type: "post",
contentType: false,
processData: false,
data: fd,
beforeSend: function() {
addLoading()
},
success: function(output) {
unLoading();
var currURL = window.location.href;
currURL = currURL.split('?')[0];
currURL = currURL + "?appt=C";
window.location.replace(currURL);
},
error: function(jqXHR, textStatus, errorThrown) {
unLoading();
alert('error');
}
});
});
// For Search
var typeSearch = $('.filters__item.active').data('type');
const boxResult = $('.box-results__list');
$("body").on("click", ".filters__item", function (e) {
$('.filters__item').removeClass('active');
$(this).addClass('active');
typeSearch = $('.filters__item.active').data('type');
const keyWord = $('#search').val().trim();
if ( keyWord.length == 0) return;
searchFilter(keyWord, typeSearch);
})
$("#search").keyup(function(){
const keyWord = $(this).val().trim();
if ( keyWord.length == 0) return;
searchFilter(keyWord, typeSearch);
});
function searchFilter(keyWord, typeSearch){
$.ajax({
url: app.ajaxUrl,
type: "post",
dataType: "text",
data: {
action: 'search_by_filters',
keyword : keyWord,
type: typeSearch,
token: $('#nonce_token').val(),
},
beforeSend: function () {
boxResult.css('opacity', '0.6');
},
success: function(output) {
boxResult.css('opacity', '1');
boxResult.html(output);
},
error: function () { alert('error'); }
});
}
});
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\page-search.php
<?php get_header()?>
<?php
require get_template_directory() . '/framework/frontend.php';
new BJ_Frontend();
?>
<?php get_footer()?>
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\framework\frontend.php
<?php
class BJ_Frontend {
private function load() {
global $bj_controller;
return $bj_controller;
}
function __construct() {
if (is_page('account')) {
$this->load()->Controller("Account");
}elseif ( is_page('search') ) {
$this->load()->Controller("Search");
}
}
}
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\layout\searchs\item-account.php
<div class="box-results__item d-flex align-items-center justify-content-between border-b-1 py-2">
<div class="box-results__item__avatar">
<a href="<?php echo $args['link'] ?>" class="d-block">
<img src="<?php echo $args['avatar'] ?>" class="rounded-circle" width="40" height="40">
</a>
</div>
<div class="box-results__item__name flex-fill font-weight-500 ml-4">
<a href="<?php echo $args['link'] ?>"><?php echo $args['name']; ?></a>
</div>
</div>
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\inc\functions\function-global.php
<?php
/**
*
* @return HTML - option list tỉnh thành
*/
function reder_province_option($default = "") {
$json_file = get_stylesheet_directory() . "/json/tinh_tp.json";
if (file_exists($json_file)) {
$json = file_get_contents($json_file);
$tinh_thanh = json_decode($json, true);
foreach ($tinh_thanh as $key => $value) {
if ($key == $default) {$select = "selected";} else { $select = "";}
echo "<option " . $select . " value='" . $key . "'>" . $value["name"] . "</option>";
}
}
}
/**
* @return HTML - option list quận huyện
*/
function reder_quan_huyen_option($tinh_thanh, $default) {
$default = sprintf('%02d', intval($default));
$tinh_thanh = sprintf('%02d', intval($tinh_thanh));
$json_file = get_stylesheet_directory() . "/json/quan-huyen/" . $tinh_thanh . ".json";
if (file_exists($json_file)) {
$json = file_get_contents($json_file);
$quan_huyen = json_decode($json, true);
foreach ($quan_huyen as $key => $value) {
if ($key == $default) {
$select = "selected";
} else {
$select = "";
}
echo "<option " . $select . " value='" . $key . "'>" . $value["name_with_type"] . "</option>";
}
}
}
/**
* @return HTML - option list xã phường
*/
function reder_xa_phuong_option($quan_huyen, $default) {
$default = intval($default);
$quan_huyen = sprintf('%03d', intval($quan_huyen));
$json_file = get_stylesheet_directory() . "/json/xa-phuong/" . $quan_huyen . ".json";
if (file_exists($json_file)) {
$json = file_get_contents($json_file);
$xa_phuong = json_decode($json, true);
foreach ($xa_phuong as $key => $value) {
if ($key == $default) {$select = "selected";} else { $select = "";}
echo "<option " . $select . " value='" . $key . "'>" . $value["name_with_type"] . "</option>";
}
}
}
/**
* AJAX load quận huyện khi select tỉnh thành phố
*/
add_action('wp_ajax_load_quan_huyen', 'load_quan_huyen');
function load_quan_huyen() {
$tinh_thanh = $_POST['id'];
$type = $_POST['type'];
$json_file = get_stylesheet_directory() . "/json/quan-huyen/" . $tinh_thanh . ".json";
if (file_exists($json_file)) {
$json = file_get_contents($json_file);
$quan_huyen = json_decode($json, true);
echo '<option value="" disabled selected >' . __("Select", "golf") . '</option>';
foreach ($quan_huyen as $key => $value) {
if ($type) {
echo "<option value='" . $value["name_with_type"] . "'>" . $value["name_with_type"] . "</option>";
} else {
echo "<option value='" . $key . "'>" . $value["name_with_type"] . "</option>";
}
}
}
die();
}
/**
* AJAX load danh sách xã phường khi select tỉnh thành phố
*/
add_action('wp_ajax_load_xa_phuong', 'load_xa_phuong');
function load_xa_phuong() {
$quan_huyen = $_POST['id'];
$json_file = get_stylesheet_directory() . "/json/xa-phuong/" . $quan_huyen . ".json";
if (file_exists($json_file)) {
$json = file_get_contents($json_file);
$xa_phuong = json_decode($json, true);
foreach ($xa_phuong as $key => $value) {
echo "<option value='" . $key . "'>" . $value["name_with_type"] . "</option>";
}
}
die();
}
/**
*
* Get địa chỉ của user bởi id
* Nếu chưa update địa chỉ, thì gán mặc định là: '90 Đường Lê Lợi, Phường Bến Thành, Quận 1, Thành phố Hồ Chí Minh'
*/
function get_address_by_id_user($user_id = null) {
if (!$user_id) {
$user_id = get_current_user_id();
}
$province_address = get_user_meta($user_id, "province_address", true);
if ($province_address) {
return json_decode($province_address, true);
}
return array(
'province' => 79,
'district' => 760,
'ward' => 26743,
'street' => '90 Đường Lê Lợi',
);
}
/**
* Get địa chỉ text
* @return array
*/
function atw_load_province_address($user_id = null) {
$province = '';
$district = '';
$ward = '';
if (!$user_id) {
$user_id = get_current_user_id();
}
$province_address = get_address_by_id_user($user_id);
if ($province_address && is_array($province_address)) {
$json_file = get_stylesheet_directory() . "/json/tinh_tp.json";
if (file_exists($json_file)) {
$json_tinh_tp = file_get_contents($json_file);
$tinh_thanh = json_decode($json_tinh_tp, true);
foreach ($tinh_thanh as $key => $value) {
if ($key == $province_address['province']) {
$province = $tinh_thanh[$key]['name'];
break;
}
}
}
if ($province_address['province']):
$json_file = get_stylesheet_directory() . "/json/quan-huyen/" . $province_address['province'] . ".json";
if (file_exists($json_file)) {
$json_quan_huyen = file_get_contents($json_file);
$quan_huyen = json_decode($json_quan_huyen, true);
foreach ($quan_huyen as $key => $value) {
if ($key == $province_address['district']) {
$district = $quan_huyen[$key]['name_with_type'];
break;
}
}
}
endif;
if ($province_address['district']):
$json_file = get_stylesheet_directory() . "/json/xa-phuong/" . $province_address['district'] . ".json";
if (file_exists($json_file)) {
$json_xa_phuong = file_get_contents($json_file);
$xa_phuong = json_decode($json_xa_phuong, true);
foreach ($xa_phuong as $key => $value) {
if ($key == $province_address['ward']) {
$ward = $xa_phuong[$key]['name_with_type'];
break;
}
}
}
endif;
}
return array(
'province' => $province,
'district' => $district,
'ward' => $ward,
'street' => $province_address['street'],
);
}
/**
*
* Crop image
*/
function resize_image($method, $image_loc, $new_loc, $width, $height) {
$exif = exif_read_data($image_loc);
if (isset($exif['Orientation']) && $exif['Orientation'] === 6) {
$rotate = -90;
} else if (isset($exif['Orientation']) && $exif['Orientation'] === 3) {
$rotate = 180;
} else if (isset($exif['Orientation']) && $exif['Orientation'] === 8) {
$rotate = 90;
}
if (!is_array(@$GLOBALS['errors'])) {$GLOBALS['errors'] = array();}
if (!in_array($method, array('force', 'max', 'crop'))) {$GLOBALS['errors'][] = 'Invalid method selected.';}
if (!$image_loc) {$GLOBALS['errors'][] = 'No source image location specified.';} else {
if ((substr(strtolower($image_loc), 0, 7) == 'http://') || (substr(strtolower($image_loc), 0, 7) == 'https://')) { /*don't check to see if file exists since it's not local*/} elseif (!file_exists($image_loc)) {$GLOBALS['errors'][] = 'Image source file does not exist.';}
$extension = strtolower(substr($image_loc, strrpos($image_loc, '.')));
if (!in_array($extension, array('.jpg', '.jpeg', '.png', '.gif', '.bmp'))) {$GLOBALS['errors'][] = 'Invalid source file extension!';}
}
if (!$new_loc) {$GLOBALS['errors'][] = 'No destination image location specified.';} else {
$new_extension = strtolower(substr($new_loc, strrpos($new_loc, '.')));
if (!in_array($new_extension, array('.jpg', '.jpeg', '.png', '.gif', '.bmp'))) {$GLOBALS['errors'][] = 'Invalid destination file extension!';}
}
$width = abs(intval($width));
if (!$width) {$GLOBALS['errors'][] = 'No width specified!';}
$height = abs(intval($height));
if (!$height) {$GLOBALS['errors'][] = 'No height specified!';}
if (count($GLOBALS['errors']) > 0) {echo_errors();return false;}
if (in_array($extension, array('.jpg', '.jpeg'))) {$image = @imagecreatefromjpeg($image_loc);} elseif ($extension == '.png') {$image = @imagecreatefrompng($image_loc);} elseif ($extension == '.gif') {$image = @imagecreatefromgif($image_loc);} elseif ($extension == '.bmp') {$image = @imagecreatefromwbmp($image_loc);}
if (!$image) {$GLOBALS['errors'][] = 'Image could not be generated!';} else {
$current_width = imagesx($image);
$current_height = imagesy($image);
if ((!$current_width) || (!$current_height)) {$GLOBALS['errors'][] = 'Generated image has invalid dimensions!';}
}
if (count($GLOBALS['errors']) > 0) {
@imagedestroy($image);
echo_errors();return false;}
if ($method == 'force') {$new_image = resize_image_force($image, $width, $height);} elseif ($method == 'max') {$new_image = resize_image_max($image, $width, $height);} elseif ($method == 'crop') {$new_image = resize_image_crop($image, $width, $height);}
if ((!$new_image) && (count($GLOBALS['errors'] == 0))) {$GLOBALS['errors'][] = 'New image could not be generated!';}
if (count($GLOBALS['errors']) > 0) {
@imagedestroy($image);
echo_errors();return false;}
$save_error = false;
if (in_array($extension, array('.jpg', '.jpeg'))) {
if (isset($rotate)) {$new_image = imagerotate($new_image, $rotate, 0);}
imagejpeg($new_image, $new_loc) or ($save_error = true);} elseif ($extension == '.png') {
if (isset($rotate)) {$new_image = imagerotate($new_image, $rotate, 0);}
imagepng($new_image, $new_loc) or ($save_error = true);} elseif ($extension == '.gif') {imagegif($new_image, $new_loc) or ($save_error = true);} elseif ($extension == '.bmp') {imagewbmp($new_image, $new_loc) or ($save_error = true);}
if ($save_error) {$GLOBALS['errors'][] = 'New image could not be saved!';}
if (count($GLOBALS['errors']) > 0) {
@imagedestroy($image);@imagedestroy($new_image);
echo_errors();return false;}
imagedestroy($image);
imagedestroy($new_image);
return true;
}
function echo_errors() {
if (!is_array(@$GLOBALS['errors'])) {$GLOBALS['errors'] = array('Unknown error!');}
foreach ($GLOBALS['errors'] as $error) {echo '<p style="color:red;font-weight:bold;">Error: ' . $error . '</p>';}
}
function resize_image_force($image, $width, $height) {
$w = @imagesx($image); //current width
$h = @imagesy($image); //current height
if ((!$w) || (!$h)) {$GLOBALS['errors'][] = 'Image couldn\'t be resized because it wasn\'t a valid image.';return false;}
if (($w == $width) && ($h == $height)) {return $image;} //no resizing needed
$image2 = imagecreatetruecolor($width, $height);
imagecopyresampled($image2, $image, 0, 0, 0, 0, $width, $height, $w, $h);
return $image2;
}
function resize_image_max($image, $max_width, $max_height) {
$w = imagesx($image); //current width
$h = imagesy($image); //current height
if ((!$w) || (!$h)) {$GLOBALS['errors'][] = 'Image couldn\'t be resized because it wasn\'t a valid image.';return false;}
if (($w <= $max_width) && ($h <= $max_height)) {return $image;} //no resizing needed
//try max width first...
$ratio = $max_width / $w;
$new_w = $max_width;
$new_h = $h * $ratio;
//if that didn't work
if ($new_h > $max_height) {
$ratio = $max_height / $h;
$new_h = $max_height;
$new_w = $w * $ratio;
}
$new_image = imagecreatetruecolor($new_w, $new_h);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
return $new_image;
}
function resize_image_crop($image, $width, $height) {
$w = @imagesx($image); //current width
$h = @imagesy($image); //current height
if ((!$w) || (!$h)) {$GLOBALS['errors'][] = 'Image couldn\'t be resized because it wasn\'t a valid image.';return false;}
if (($w == $width) && ($h == $height)) {return $image;} //no resizing needed
//try max width first...
$ratio = $width / $w;
$new_w = $width;
$new_h = $h * $ratio;
//if that created an image smaller than what we wanted, try the other way
if ($new_h < $height) {
$ratio = $height / $h;
$new_h = $height;
$new_w = $w * $ratio;
}
$image2 = imagecreatetruecolor($new_w, $new_h);
imagecopyresampled($image2, $image, 0, 0, 0, 0, $new_w, $new_h, $w, $h);
//check to see if cropping needs to happen
if (($new_h != $height) || ($new_w != $width)) {
$image3 = imagecreatetruecolor($width, $height);
if ($new_h > $height) {
//crop vertically
$extra = $new_h - $height;
$x = 0; //source x
$y = round($extra / 2); //source y
imagecopyresampled($image3, $image2, 0, 0, $x, $y, $width, $height, $width, $height);
} else {
$extra = $new_w - $width;
$x = round($extra / 2); //source x
$y = 0; //source y
imagecopyresampled($image3, $image2, 0, 0, $x, $y, $width, $height, $width, $height);
}
imagedestroy($image2);
return $image3;
} else {
return $image2;
}
}
function upload_image($file) {
$targetDir = wp_upload_dir()["basedir"] . '/image-files/';
$allowTypes = array('jpg', 'png', 'jpeg');
$fileName = round(microtime(true)) . "_" . basename($file['name']);
$targetFilePath = $targetDir . $fileName;
// Check whether file type is valid
$fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION);
if (in_array($fileType, $allowTypes)) {
if ($file["size"] > 10000000) {
return array("status" => "error", "content" => "Maximum 10Mb");
}
if (move_uploaded_file($file['tmp_name'], $targetFilePath)) {
resize_image('crop', $targetDir . $fileName, $targetDir . '200x200/' . $fileName, 200, 200);
$file_id = umm_model_insert_img($fileName);
return array("status" => "success", "content" => $file_id);
}
} else {
return array("status" => "error", "content" => "Allow jpg, png, jpeg");
}
}
function umm_model_insert_img($file_name) {
global $wpdb;
$table = $wpdb->prefix . 'images';
$data = array('image_name' => $file_name, 'user_id' => get_current_user_id());
$format = array('%s', '%d');
$wpdb->insert($table, $data, $format);
return $wpdb->insert_id;
}
function get_image_url_by_id($id, $size = "full") {
$url = wp_get_upload_dir()["baseurl"] . "/image-files/";
if ($size != "full") {
$url = wp_get_upload_dir()["baseurl"] . "/image-files/200x200/";
}
global $wpdb;
$table = $wpdb->prefix . "images";
$result = $wpdb->get_results($wpdb->prepare(" SELECT image_name FROM {$table} WHERE id = %d ", $id), ARRAY_A, 1);
return $url . $result[0]["image_name"];
}
/**
*
* Delete uploaded images file, database
*/
function delete_img_by_id($img_id) {
global $wpdb;
$table = $wpdb->prefix . "images";
$result = $wpdb->get_results($wpdb->prepare(" SELECT image_name FROM {$table} WHERE id = %d ", $img_id), ARRAY_A, 1);
$file_name = $result[0]["image_name"];
$folder = wp_upload_dir()["basedir"] . '/image-files/';
unlink($folder . $file_name);
unlink($folder . "200x200/" . $file_name);
$wpdb->delete($table, array('id' => $img_id), array('%d'));
}
/**
*
* Get image url avatar by user id
*/
function get_url_avatar($user_id = '') {
if ($user_id === '') {
$user_id = get_current_user_id();
}
$id_avatar = get_user_meta($user_id, 'id_img_avatar', true);
if ($id_avatar) {
return get_image_url_by_id($id_avatar, 'thumbnail');
}
return AVATAR_DF;
}
/**
*
* Check user exists
* @return boolean
*/
function is_user_exist($user_id) {
$user = get_userdata($user_id);
$user_roles = !empty($user) ? $user->roles[0] : "";
if ($user === false or $user_roles != USER) {
return false;
} else {
return true;
}
}
/**
*
* Check View other account
* @return boolean
*/
function is_view_other_account() {
if (is_page('account') && isset($_GET['id']) && intval($_GET['id']) !== get_current_user_id()) {
return true;
}
return false;
}
/**
*
* Get list user follow
* @return array
*/
function list_user_follow($user_id = null) {
if (!$user_id) {
$user_id = get_current_user_id();
}
$list_user_follow = get_user_meta($user_id, 'list_user_follow', true);
if (!$list_user_follow) {
return array();
}
return json_decode($list_user_follow, true);
}
/**
*
* Nhận danh sách người theo dõi tôi
* @return array
*/
function get_list_follower($current_user_id = null) {
if (!$current_user_id) {
$current_user_id = get_current_user_id();
}
$args = array('role' => USER);
$users = get_users($args);
$list_follower_arr = [];
foreach ($users as $value) {
$user_id = $value->ID;
$list_follow_arr = list_user_follow($user_id);
if ($list_follow_arr):
if (in_array($current_user_id, $list_follow_arr)) {
$list_follower_arr[] = $user_id;
}
endif;
}
return $list_follower_arr;
}
/**
*
* Nhận tổng số người tôi đang theo dõi
* @return int
*/
function get_total_following($current_user_id = null) {
if (!$current_user_id) {
$current_user_id = get_current_user_id();
}
return count(list_user_follow($current_user_id));
}
/**
* tăng lên 1 so tổng thông báo mới hiện tại của user ID
*/
function update_total_notify_user($user_id){
$total = (int)get_user_meta( $user_id, 'total_notify', true ) + 1;
update_user_meta( $user_id, 'total_notify', $total);
}
// ==
function get_market_image_url($img_id){
$url = wp_get_upload_dir()["baseurl"]."/market-images/";
global $wpdb;
$table = $wpdb->prefix."bj_market_image";
$result = $wpdb->get_results ( $wpdb->prepare(" SELECT image_name FROM {$table} WHERE id = %d ",$img_id) ,ARRAY_A );
if(!empty($result)){
return $url."__".$result[0]["image_name"];
}else{
return THEME_URL."assets/images/default.jpg";
}
}
function market_upload_image($file){
$targetDir = wp_upload_dir()["basedir"].'/market-images/';
$allowTypes = array( 'jpg', 'png', 'jpeg');
$fileName = round(microtime(true))."_".basename($file['name']);
$targetFilePath = $targetDir.$fileName;
// Check whether file type is valid
$fileType = pathinfo($targetFilePath, PATHINFO_EXTENSION);
if(in_array($fileType, $allowTypes)){
if($file["size"] > 5000000) return array("status" => "error","content" => "Maximum 5Mb");
if(move_uploaded_file($file['tmp_name'], $targetFilePath)){
$result = resize_image('max',$targetDir.$fileName,$targetDir.'__'.$fileName,600,4000);
if($result == true){
$file_id = add_market_image_to_db($fileName);
unlink($targetDir.$fileName);
return array("status" => "success","content" => $file_id);
}
}else{
return array("status" => "error","content" => "Unknow");
}
}else{
return array("status" => "error","content" => "Allow jpg, png, jpeg");
}
}
function add_market_image_to_db($file_name){
global $wpdb;
$table = $wpdb->prefix."bj_market_image";
$wpdb->insert($table,
array("image_name" => $file_name),
array("%s")
);
return $wpdb->insert_id;
}
/**
*
* Get role and check member group
* @return int
*/
function is_member_of_group($group_id = 0,$user_id = 0){
if($user_id == 0) $user_id = get_current_user_id();
$current_list_member_arr = json_decode(get_term_meta($group_id,"list_member",true),true);
if(!empty($current_list_member_arr)){
foreach ($current_list_member_arr as $value) {
if(isset($value["user_id"]) && $value["user_id"] == $user_id){
if (isset($value["role"])) return $value["role"];
}
}
}else{
return false;
}
}
/**
*
* Get all id group have join
* @return array
*/
function all_groups_have_joined($user_id = 0){
if($user_id == 0) $user_id = get_current_user_id();
$list_groups = array();
$terms = get_terms( ['hide_empty' => false, 'taxonomy' => 'group', 'meta_key' => 'list_member'] );
if ($terms) {
foreach ($terms as $value) {
$group_id = $value->term_id;
$role = is_member_of_group($group_id, $user_id);
if( $role ) $list_groups[] = $group_id;
}
}
return $list_groups;
}
/**
*
* Get banner group
* @return string - banner
*/
function get_banner_group($id_gr, $size = 'thumbnail') {
$id_banner_gr = get_term_meta($id_gr, 'image_cover_group');
if( $id_banner_gr ) return get_image_url_by_id($id_banner_gr, $size);
return BANNER_DF;
}
/**
* Search Filters
*/
add_action( 'wp_ajax_search_by_filters', 'search_by_filters' );
function search_by_filters(){
$current_user_id = get_current_user_id();
if( !isset( $_POST['token']) or !wp_verify_nonce($_POST['token'],AT_NONCE_KEY.'ajax-nonce'.$current_user_id)) wp_die();
$key_word = sanitize_text_field($_POST['keyword']);
$type = $_POST['type'];
if ($type == 'people'){
$args= array(
'search' => '*'.$key_word.'*',
'search_columns' => array( 'display_name','user_email'),
'exclude' => array($current_user_id),
'role' => USER,
);
$users = get_users($args);
foreach ($users as $value) {
$data['link'] = SITE_URL."account/?id=".$value->ID."&appt=N";
$data['name'] = $value->display_name;
$data['avatar'] = get_url_avatar($value->ID);
get_template_part( 'layout/searchs/item', 'account', $data);
}
} else if ( $type =='group' ) {
$args = array(
'taxonomy' => 'group',
'hide_empty' => false,
'name__like' => $key_word,
);
$terms = get_terms( $args );
foreach ($terms as $value) {
$id_gr = $value->term_id;
$data['id'] = $id_gr;
$data['link'] = SITE_URL . "community/?action=view-group&id={$id_gr}&appt=N";
$data['banner'] = get_banner_group($id_gr);
$data['name'] = get_term($id_gr)->name;
get_template_part( 'layout/searchs/item', 'group', $data);
}
}
wp_die();
}
C:\xampp\htdocs\reset4\wp-content\themes\addframwork\layout\searchs\item-group.php
<div class="box-results__item d-flex align-items-center justify-content-between border-b-1 py-2">
<div class="box-results__item__avatar">
<a href="<?php echo $args['link'] ?>" class="d-block">
<img src="<?php echo $args['banner'] ?>" class="rounded-circle" width="40" height="40">
</a>
</div>
<div class="box-results__item__name flex-fill font-weight-500 ml-4">
<a href="<?php echo $args['link'] ?>"><?php echo $args['name']; ?></a>
</div>
</div>