public function get_json_grid_by_id($id) { $json_result = array(); //get egrid data $gridInfo = $this->get_data_by_id($id); $json_result['filterEffect'] = $gridInfo['filter_effect']; $json_result['hoverDirection'] = (bool) $gridInfo['hover_direction']; $json_result['hoverDelay'] = $gridInfo['hover_delay']; $json_result['hoverInverse'] = (bool) $gridInfo['hover_inverse']; $json_result['expandingSpeed'] = $gridInfo['expanding_speed']; $json_result['expandingHeight'] = $gridInfo['expanding_height']; //get project info $projectModel = new ProjectModel(); $projects = $projectModel->get_projects_by_egrid_id($id); //url to image $uploadFolder = wp_upload_dir(); $uploadFolder = $uploadFolder['baseurl'] . '/wp_elastic_grid/'; $json_result['items'] = array(); foreach ($projects as $project) { $item = array(); $item['title'] = $project['title']; $item['description'] = $project['description']; $tags = explode(',', $project['tags']); $tags = array_map('trim', $tags); $tags = array_map('ucfirst', $tags); $item['tags'] = !empty($tags) ? $tags : array(); $item['button_list'] = !empty($project['button_list']) ? json_decode($project['button_list']) : array(); $images = $projectModel->get_images_by_project_id($project['id']); $thumbnails = array(); $large = array(); foreach ($images as $image) { $thumbnails[] = $uploadFolder . 'small/' . $image['filename']; $large[] = $uploadFolder . 'large/' . $image['filename']; } $item['thumbnail'] = $thumbnails; $item['large'] = $large; $json_result['items'][] = $item; } return json_encode($json_result); }