Linux lionsclub 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.29 (Ubuntu)
: 161.35.52.75 | : 18.188.12.24
Cant Read [ /etc/named.conf ]
7.4.28
www-data
shells.trxsecurity.org
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
lionsclub /
core /
app /
Http /
Controllers /
APIs /
[ HOME SHELL ]
Name
Size
Permission
Action
APIsController.php
101.14
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : APIsController.php
<?php namespace App\Http\Controllers\APIs; use App\Http\Controllers\Controller; use App\Mail\NotificationEmail; use App\Models\AttachFile; use App\Models\Banner; use App\Models\Comment; use App\Models\Contact; use App\Models\Language; use App\Models\Map; use App\Models\Menu; use App\Models\Photo; use App\Models\Section; use App\Models\Setting; use App\Models\Topic; use App\Models\TopicCategory; use App\Models\Webmail; use App\Models\WebmasterSection; use App\Models\WebmasterSetting; use Helper; use Illuminate\Http\Request; use Illuminate\Pagination\Paginator; use Mail; class APIsController extends Controller { public function __construct() { // Check API Status if (!Helper::GeneralWebmasterSettings("api_status")) { // API disabled exit(); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function api() { echo "<!DOCTYPE html> <html lang=\"en\"> <head> <meta charset=\"utf-8\"> <title>API v1 | Restful Web Services</title> <body> <br> <div> Restful Web Services: <br> ---------------------------------------- <br> { GET } /api/v1/website/status <br> { GET } /api/v1/website/info <br> { GET } /api/v1/website/contacts <br> { GET } /api/v1/website/style <br> { GET } /api/v1/website/social <br> { GET } /api/v1/website/settings <br> { GET } /api/v1/menu/ <br> { GET } /api/v1/banners/ <br> { GET } /api/v1/section/ <br> { GET } /api/v1/categories/ <br> { GET } /api/v1/topics/ <br> { GET } /api/v1/topic/ <br> { GET } /api/v1/topic/fields/ <br> { GET } /api/v1/topic/photos/ <br> { GET } /api/v1/topic/photo/ <br> { GET } /api/v1/topic/maps/ <br> { GET } /api/v1/topic/map/ <br> { GET } /api/v1/topic/files/ <br> { GET } /api/v1/topic/file/ <br> { GET } /api/v1/topic/comments/ <br> { GET } /api/v1/topic/comment/ <br> { GET } /api/v1/topic/related/ <br> { GET } /api/v1/user/ <br> { POST } /api/v1/subscribe <br> { POST } /api/v1/comment <br> { POST } /api/v1/order <br> { POST } /api/v1/contact <br> ---------------------------------------- <br> For more details check <a href='http://smartfordesign.net/smartend/documentation/api.html' target='_blank'><strong>API documentation</strong></a> </div> </body> </html> "; exit(); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function website_status() { // Get Site Settings $Setting = Setting::find(1); // Response Details $msg = ""; if ($Setting->site_status == 0) { $msg = nl2br($Setting->close_msg); } $response_details = [ 'status' => $Setting->site_status, 'close_msg' => $msg ]; // Response MSG $response = [ 'msg' => 'Website Status details', 'details' => $response_details ]; return response()->json($response, 200); } //Language check /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function website_info($lang = '') { // Get Site Settings $Setting = Setting::find(1); // By Language $lang = $this->getLanguage($lang); $site_title_var = "site_title_$lang"; $site_desc_var = "site_desc_$lang"; $site_keywords_var = "site_keywords_$lang"; // Response Details $response_details = [ 'site_url' => $Setting->site_url, 'site_title' => $Setting->$site_title_var, 'site_desc' => $Setting->$site_desc_var, 'site_keywords' => $Setting->$site_keywords_var, 'site_webmails' => $Setting->site_webmails ]; // Response MSG $response = [ 'msg' => 'Main information about the Website', 'details' => $response_details ]; return response()->json($response, 200); } /** * Language Check */ public function getLanguage($lang) { // List of active languages for API $Language = Language::where("status", true)->where("code", $lang)->first(); if ($lang == "" || empty($Language)) { $lang = env('DEFAULT_LANGUAGE'); } return $lang; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function website_contacts($lang = '') { // Get Site Settings $Setting = Setting::find(1); // By Language $lang = $this->getLanguage($lang); $address_var = "contact_t1_$lang"; $working_time_var = "contact_t7_$lang"; // Response Details $response_details = [ 'address' => $Setting->$address_var, 'phone' => $Setting->contact_t3, 'fax' => $Setting->contact_t4, 'mobile' => $Setting->contact_t5, 'email' => $Setting->contact_t6, 'working_time' => $Setting->$working_time_var ]; // Response MSG $response = [ 'msg' => 'List of Contacts Details', 'details' => $response_details ]; return response()->json($response, 200); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function website_style($lang = '') { // Get Site Settings $Setting = Setting::find(1); // By Language $lang = $this->getLanguage($lang); $style_logo_var = "style_logo_$lang"; // Response Details $response_details = [ 'logo' => ($Setting->$style_logo_var != "") ? url("") . "/uploads/settings/" . $Setting->$style_logo_var : null, 'fav_icon' => ($Setting->style_fav != "") ? url("") . "/uploads/settings/" . $Setting->style_fav : null, 'apple_icon' => ($Setting->style_apple != "") ? url("") . "/uploads/settings/" . $Setting->style_apple : null, 'style_color_1' => $Setting->style_color1, 'style_color_2' => $Setting->style_color2, 'layout_mode' => $Setting->style_type, 'bg_type' => $Setting->style_bg_type, 'bg_pattern' => ($Setting->style_bg_pattern != "") ? url("") . "/uploads/pattern/" . $Setting->style_bg_pattern : null, 'bg_color' => $Setting->style_bg_color, 'bg_image' => ($Setting->style_bg_image != "") ? url("") . "/uploads/settings/" . $Setting->style_bg_image : null, 'footer_style' => $Setting->style_footer, 'footer_bg' => ($Setting->style_footer_bg != "") ? url("") . "/uploads/settings/" . $Setting->style_footer_bg : null, 'newsletter_subscribe_status' => $Setting->style_subscribe, 'preload_status' => $Setting->style_preload ]; // Response MSG $response = [ 'msg' => 'List of Style Settings', 'details' => $response_details ]; return response()->json($response, 200); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function website_social() { // Get Site Settings $Setting = Setting::find(1); // Response Details $response_details = [ 'facebook' => $Setting->social_link1, 'twitter' => $Setting->social_link2, 'google' => $Setting->social_link3, 'linkedin' => $Setting->social_link4, 'youtube' => $Setting->social_link5, 'instagram' => $Setting->social_link6, 'pinterest' => $Setting->social_link7, 'tumblr' => $Setting->social_link8, 'flickr' => $Setting->social_link9, 'whatsapp' => $Setting->social_link10, ]; // Response MSG $response = [ 'msg' => 'List of Social Networks Links', 'details' => $response_details ]; return response()->json($response, 200); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function website_settings() { // Get Site Settings $WebmasterSetting = WebmasterSetting::find(1); // Response Details $response_details = [ 'new_comments_status' => $WebmasterSetting->new_comments_status, 'allow_register_status' => $WebmasterSetting->register_status, 'register_permission_group' => $WebmasterSetting->permission_group, 'contact_text_page_id' => $WebmasterSetting->contact_page_id, 'header_menu_id' => $WebmasterSetting->header_menu_id, 'footer_menu_id' => $WebmasterSetting->footer_menu_id, 'latest_news_section_id' => $WebmasterSetting->latest_news_section_id, 'newsletter_contacts_group' => $WebmasterSetting->newsletter_contacts_group, 'home_content1_section_id' => $WebmasterSetting->home_content1_section_id, 'home_content2_section_id' => $WebmasterSetting->home_content2_section_id, 'home_content3_section_id' => $WebmasterSetting->home_content3_section_id, 'home_banners_section_id' => $WebmasterSetting->home_banners_section_id, 'home_text_banners_section_id' => $WebmasterSetting->home_text_banners_section_id, 'side_banners_section_id' => $WebmasterSetting->side_banners_section_id, 'languages' => Helper::languagesList() ]; // Response MSG $response = [ 'msg' => 'General Website Settings', 'details' => $response_details ]; return response()->json($response, 200); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function menu($menu_id, $lang = '') { if ($menu_id > 0) { // Get menu details $Menu = Menu::where('father_id', $menu_id)->where('status', 1)->orderby('row_no', 'asc')->get(); if (count($Menu) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; // Response Details $response_details = []; foreach ($Menu as $MenuLink) { $SubMenu = Menu::where('father_id', $MenuLink->id)->where('status', 1)->orderby('row_no', 'asc')->get(); $sub_response_details = []; if (count($SubMenu) > 0) { foreach ($SubMenu as $SubMenuLink) { $m_link = ""; if ($SubMenuLink->type == 3 || $SubMenuLink->type == 2) { $m_link = $SubMenuLink->webmasterSection->name; } elseif ($SubMenuLink->type == 1) { $m_link = $MenuLink->link; } $sub_response_details[] = [ 'id' => $SubMenuLink->id, 'title' => $SubMenuLink->$title_var, 'section_id' => $SubMenuLink->cat_id, 'href' => $m_link ]; } } $m_link = ""; $sub_count = count($SubMenu); if ($MenuLink->type == 3) { // Section with drop list $m_link = $MenuLink->webmasterSection->name; $sub_count = count($MenuLink->webmasterSection->sections); foreach ($MenuLink->webmasterSection->sections as $SubSection) { $sub_response_details[] = [ 'id' => $SubSection->id, 'title' => $SubSection->$title_var, 'section_id' => $MenuLink->cat_id, 'href' => "topics/cat/" . $SubSection->id ]; } } elseif ($MenuLink->type == 2) { // Section Link $m_link = $MenuLink->webmasterSection->name; } elseif ($MenuLink->type == 1) { $m_link = $MenuLink->link; } $response_details[] = [ 'id' => $MenuLink->id, 'title' => $MenuLink->$title_var, 'section_id' => $MenuLink->cat_id, 'href' => $m_link, 'sub_links_count' => $sub_count, 'sub_links' => $sub_response_details ]; // sub links } // Response MSG $response = [ 'msg' => 'List of Menu Links', 'links_count' => count($Menu), 'links' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function banners($group_id, $lang = '') { if ($group_id > 0) { // Get banners $Banners = Banner::where('section_id', $group_id)->where('status', 1)->orderby('row_no', 'asc')->get(); if (count($Banners) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $details_var = "details_$lang"; $file_var = "file_$lang"; // Response Details $response_details = []; $type = ""; foreach ($Banners as $Banner) { $type = $Banner->webmasterBanner->type; $response_details[] = [ 'id' => $Banner->id, 'title' => $Banner->$title_var, 'details' => nl2br($Banner->$details_var), 'file' => ($Banner->$file_var != "") ? url("") . "/uploads/banners/" . $Banner->$file_var : null, 'video_type' => $Banner->video_type, 'youtube_link' => $Banner->youtube_link, 'link_url' => $Banner->link_url, 'icon' => $Banner->icon ]; } // Response MSG $response = [ 'msg' => 'List of Banners', 'type' => $type, 'banners_count' => count($Banners), 'banners' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function section($section_id, $lang = '') { if ($section_id > 0) { // Get categories $WebmasterSections = WebmasterSection::where('id', $section_id)->where('status', 1)->get(); if (count($WebmasterSections) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $section_title = ""; $type = ""; $sections_status = ""; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); // Response Details $response_details = []; foreach ($WebmasterSections as $WebmasterSection) { if ($WebmasterSection->$title_var != "") { $section_title = $WebmasterSection->$title_var; } else { $section_title = $WebmasterSection->$title_var2; } $type = $WebmasterSection->type; $sections_status = $WebmasterSection->sections_status; } // Response MSG $response = [ 'msg' => 'Website Section Details', 'section_id' => $section_id, 'title' => $section_title, 'href' => "/" . $WebmasterSection->name, 'type' => $type, 'categories_status' => $sections_status ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function categories($section_id, $lang = '') { if ($section_id > 0) { $WebmasterSection = WebmasterSection::find($section_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } // Get categories $Sections = Section::where('webmaster_id', $section_id)->where('father_id', '0')->where('status', 1)->orderby('row_no', 'asc')->get(); if (count($Sections) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $type = ""; $section_title = ""; // Response Details $response_details = []; foreach ($Sections as $Section) { $type = $Section->webmasterSection->type; if ($Section->webmasterSection->$title_var != "") { $section_title = $Section->webmasterSection->$title_var; } else { $section_title = $Section->webmasterSection->$title_var2; } $SubSections = Section::where('webmaster_id', $section_id)->where('father_id', $Section->id)->where('status', 1)->orderby('row_no', 'asc')->get(); $sub_response_details = []; foreach ($SubSections as $SubSection) { if ($SubSection->$title_var != "") { $SubCat_title = $SubSection->$title_var; } else { $SubCat_title = $SubSection->$title_var2; } $sub_response_details[] = [ 'id' => $SubSection->id, 'title' => $SubCat_title, 'icon' => $SubSection->icon, 'photo' => ($SubSection->photo != "") ? url("") . "/uploads/sections/" . $SubSection->photo : null, 'href' => "topics/cat/" . $SubSection->id, ]; } if ($Section->$title_var != "") { $cat_title = $Section->$title_var; } else { $cat_title = $Section->$title_var2; } $response_details[] = [ 'id' => $Section->id, 'title' => $cat_title, 'icon' => $Section->icon, 'photo' => ($Section->photo != "") ? url("") . "/uploads/sections/" . $Section->photo : null, 'href' => "topics/cat/" . $Section->id, 'sub_categories_count' => count($SubSections), 'sub_categories' => $sub_response_details ]; } // Response MSG $response = [ 'msg' => 'List of Categories', 'section_id' => $section_id, 'section_title' => $section_title, 'type' => $type, 'categories_count' => count($Sections), 'categories' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topics($section_id, $page_number = 1, $topics_count = 0, $lang = '') { if ($section_id > 0) { $WebmasterSection = WebmasterSection::find($section_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($page_number < 1) { $page_number = 1; } Paginator::currentPageResolver(function () use ($page_number) { return $page_number; }); // Get topics $Topics = Topic::where([['webmaster_id', '=', $section_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['webmaster_id', '=', $section_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc'); if ($topics_count > 0) { $Topics = $Topics->paginate($topics_count); } else { $Topics = $Topics->get(); } if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $details_var = "details_$lang"; $details_var2 = "details_" . env('DEFAULT_LANGUAGE'); $type = ""; $section_title = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $type = $Topic->webmasterSection->type; if ($Topic->webmasterSection->$title_var != "") { $section_title = $Topic->webmasterSection->$title_var; } else { $section_title = $Topic->webmasterSection->$title_var2; } $Joined_categories = []; foreach ($Topic->categories as $category) { if ($category->section->$title_var != "") { $Cat_title = $category->section->$title_var; } else { $Cat_title = $category->section->$title_var2; } $Joined_categories[] = [ 'id' => $category->id, 'title' => $Cat_title, 'icon' => $category->section->icon, 'photo' => ($category->section->photo != "") ? url("") . "/uploads/sections/" . $category->section->photo : null, 'href' => "topics/cat/" . $category->id ]; } // additional fields $Additional_fields = []; foreach ($Topic->webmasterSection->customFields->where("in_listing", true) as $customField) { if ($customField->in_page) { $cf_saved_val = ""; $cf_saved_val_array = array(); if (count($Topic->fields) > 0) { foreach ($Topic->fields as $t_field) { if ($t_field->field_id == $customField->id) { if ($customField->type == 7) { // if multi check $cf_saved_val_array = explode(", ", $t_field->field_value); $cf_details_var = "details_" . @Helper::currentLanguage()->code; $cf_details_var2 = "details_en" . env('DEFAULT_LANGUAGE'); if ($customField->$cf_details_var != "") { $cf_details = $customField->$cf_details_var; } else { $cf_details = $customField->$cf_details_var2; } $cf_details_lines = preg_split('/\r\n|[\r\n]/', $cf_details); $line_num = 1; foreach ($cf_details_lines as $cf_details_line) { if (in_array($line_num, $cf_saved_val_array)) { $cf_saved_val .= $cf_details_line . ", "; } $line_num++; } $cf_saved_val = substr($cf_saved_val, 0, -2); } else { $cf_saved_val = $t_field->field_value; } } } } if (($cf_saved_val != "" || count($cf_saved_val_array) > 0) && ($customField->lang_code == "all" || $customField->lang_code == "$lang")) { $Additional_fields[] = [ 'type' => $customField->type, 'title' => $customField->$title_var, 'value' => $cf_saved_val, ]; } } } $video_file = $Topic->video_file; if ($Topic->video_type == 0) { $video_file = ($Topic->video_file != "") ? url("") . "/uploads/topics/" . $Topic->video_file : ""; } if ($Topic->$title_var != "") { $Topic_title = $Topic->$title_var; } else { $Topic_title = $Topic->$title_var2; } if ($Topic->$details_var != "") { $Topic_details = $Topic->$details_var; } else { $Topic_details = $Topic->$details_var2; } $response_details[] = [ 'id' => $Topic->id, 'title' => $Topic_title, 'details' => $Topic_details, 'date' => $Topic->date, 'video_type' => $Topic->video_type, 'video_file' => $video_file, 'photo_file' => ($Topic->photo_file != "") ? url("") . "/uploads/topics/" . $Topic->photo_file : null, 'audio_file' => ($Topic->audio_file != "") ? url("") . "/uploads/topics/" . $Topic->audio_file : null, 'icon' => $Topic->icon, 'visits' => $Topic->visits, 'href' => "topic/" . $Topic->id, 'fields_count' => count($Additional_fields), 'fields' => $Additional_fields, 'Joined_categories_count' => count($Topic->categories), 'Joined_categories' => $Joined_categories, 'user' => [ 'id' => $Topic->user->id, 'name' => $Topic->user->name, 'href' => "user/" . $Topic->user->id . "/topics", ] ]; } // Response MSG $response = [ 'msg' => 'List of Topics', 'section_id' => $section_id, 'section_title' => $section_title, 'type' => $type, 'topics_count' => count($Topics), 'topics' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function category($cat_id, $page_number = 1, $topics_count = 0, $lang = '') { if ($cat_id > 0) { if ($page_number < 1) { $page_number = 1; } Paginator::currentPageResolver(function () use ($page_number) { return $page_number; }); $category_topics = array(); $TopicCategories = TopicCategory::where('section_id', $cat_id)->get(); foreach ($TopicCategories as $category) { $category_topics[] = $category->topic_id; } $Topics = Topic::where(function ($q) { $q->where([['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['status', 1], ['expire_date', null]]); })->whereIn('id', $category_topics)->orderby('row_no', env("FRONTEND_TOPICS_ORDER", "asc")); if ($topics_count > 0) { $Topics = $Topics->paginate($topics_count); } else { $Topics = $Topics->get(); } if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $details_var = "details_$lang"; $details_var2 = "details_" . env('DEFAULT_LANGUAGE'); $cat_title = ""; $CurrentCategory = Section::find($cat_id); if (!empty($CurrentCategory)) { $cat_title = $CurrentCategory->$title_var; } // Response Details $response_details = []; foreach ($Topics as $Topic) { $Joined_categories = []; foreach ($Topic->categories as $category) { if ($category->section->$title_var != "") { $Cat_title = $category->section->$title_var; } else { $Cat_title = $category->section->$title_var2; } $Joined_categories[] = [ 'id' => $category->id, 'title' => $Cat_title, 'icon' => $category->section->icon, 'photo' => ($category->section->photo != "") ? url("") . "/uploads/sections/" . $category->section->photo : null, 'href' => "topics/cat/" . $category->id ]; } // additional fields $Additional_fields = []; foreach ($Topic->webmasterSection->customFields->where("in_listing", true) as $customField) { if ($customField->in_page) { $cf_saved_val = ""; $cf_saved_val_array = array(); if (count($Topic->fields) > 0) { foreach ($Topic->fields as $t_field) { if ($t_field->field_id == $customField->id) { if ($customField->type == 7) { // if multi check $cf_saved_val_array = explode(", ", $t_field->field_value); $cf_details_var = "details_" . @Helper::currentLanguage()->code; $cf_details_var2 = "details_en" . env('DEFAULT_LANGUAGE'); if ($customField->$cf_details_var != "") { $cf_details = $customField->$cf_details_var; } else { $cf_details = $customField->$cf_details_var2; } $cf_details_lines = preg_split('/\r\n|[\r\n]/', $cf_details); $line_num = 1; foreach ($cf_details_lines as $cf_details_line) { if (in_array($line_num, $cf_saved_val_array)) { $cf_saved_val .= $cf_details_line . ", "; } $line_num++; } $cf_saved_val = substr($cf_saved_val, 0, -2); } else { $cf_saved_val = $t_field->field_value; } } } } if (($cf_saved_val != "" || count($cf_saved_val_array) > 0) && ($customField->lang_code == "all" || $customField->lang_code == "$lang")) { $Additional_fields[] = [ 'type' => $customField->type, 'title' => $customField->$title_var, 'value' => $cf_saved_val, ]; } } } $video_file = $Topic->video_file; if ($Topic->video_type == 0) { $video_file = ($Topic->video_file != "") ? url("") . "/uploads/topics/" . $Topic->video_file : ""; } if ($Topic->$title_var != "") { $Topic_title = $Topic->$title_var; } else { $Topic_title = $Topic->$title_var2; } if ($Topic->$details_var != "") { $Topic_details = $Topic->$details_var; } else { $Topic_details = $Topic->$details_var2; } $response_details[] = [ 'id' => $Topic->id, 'title' => $Topic_title, 'details' => $Topic_details, 'date' => $Topic->date, 'video_type' => $Topic->video_type, 'video_file' => $video_file, 'photo_file' => ($Topic->photo_file != "") ? url("") . "/uploads/topics/" . $Topic->photo_file : null, 'audio_file' => ($Topic->audio_file != "") ? url("") . "/uploads/topics/" . $Topic->audio_file : null, 'icon' => $Topic->icon, 'visits' => $Topic->visits, 'href' => "topic/" . $Topic->id, 'fields_count' => count($Additional_fields), 'fields' => $Additional_fields, 'Joined_categories_count' => count($Topic->categories), 'Joined_categories' => $Joined_categories, 'user' => [ 'id' => $Topic->user->id, 'name' => $Topic->user->name, 'href' => "user/" . $Topic->user->id . "/topics", ] ]; } // Response MSG $response = [ 'msg' => 'List of Topics', 'cat_id' => $cat_id, 'cat_title' => $cat_title, 'topics_count' => count($Topics), 'topics' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $details_var = "details_$lang"; $details_var2 = "details_" . env('DEFAULT_LANGUAGE'); $type = ""; $section_id = ""; $section_title = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } $type = $Topic->webmasterSection->type; $section_id = $Topic->webmasterSection->id; if ($Topic->webmasterSection->$title_var != "") { $section_title = $Topic->webmasterSection->$title_var; } else { $section_title = $Topic->webmasterSection->$title_var2; } // additional fields $Additional_fields = []; foreach ($Topic->webmasterSection->customFields->where("in_page", true) as $customField) { if ($customField->in_page) { $cf_saved_val = ""; $cf_saved_val_array = array(); if (count($Topic->fields) > 0) { foreach ($Topic->fields as $t_field) { if ($t_field->field_id == $customField->id) { if ($customField->type == 7) { // if multi check $cf_saved_val_array = explode(", ", $t_field->field_value); $cf_details_var = "details_" . @Helper::currentLanguage()->code; $cf_details_var2 = "details_en" . env('DEFAULT_LANGUAGE'); if ($customField->$cf_details_var != "") { $cf_details = $customField->$cf_details_var; } else { $cf_details = $customField->$cf_details_var2; } $cf_details_lines = preg_split('/\r\n|[\r\n]/', $cf_details); $line_num = 1; foreach ($cf_details_lines as $cf_details_line) { if (in_array($line_num, $cf_saved_val_array)) { $cf_saved_val .= $cf_details_line . ", "; } $line_num++; } $cf_saved_val = substr($cf_saved_val, 0, -2); } else { $cf_saved_val = $t_field->field_value; } } } } if (($cf_saved_val != "" || count($cf_saved_val_array) > 0) && ($customField->lang_code == "all" || $customField->lang_code == "$lang")) { $Additional_fields[] = [ 'type' => $customField->type, 'title' => $customField->$title_var, 'value' => $cf_saved_val, ]; } } } // categories $Joined_categories = []; foreach ($Topic->categories as $category) { if ($category->section->$title_var != "") { $Cat_title = $category->section->$title_var; } else { $Cat_title = $category->section->$title_var2; } $Joined_categories[] = [ 'id' => $category->id, 'title' => $Cat_title, 'icon' => $category->section->icon, 'photo' => ($category->section->photo != "") ? url("") . "/uploads/sections/" . $category->section->photo : null, 'href' => "topics/cat/" . $category->id ]; } // photos $Photos = []; foreach ($Topic->photos as $photo) { $Photos[] = [ 'id' => $photo->id, 'title' => $photo->title, 'url' => ($photo->file != "") ? url("") . "/uploads/topics/" . $photo->file : null, 'href' => "/topic/photo/" . $photo->id ]; } // maps $Maps = []; foreach ($Topic->maps as $map) { if ($map->$title_var != "") { $map_title = $map->$title_var; } else { $map_title = $map->$title_var2; } if ($map->$details_var != "") { $map_details = $map->$details_var; } else { $map_details = $map->$details_var2; } $Maps[] = [ 'id' => $map->id, 'longitude' => $map->longitude, 'latitude' => $map->latitude, 'title' => $map_title, 'details' => $map_details, 'href' => "/topic/map/" . $map->id ]; } // attach files $Attach_files = []; foreach ($Topic->attachFiles as $attachFile) { if ($attachFile->$title_var != "") { $attachFile_title = $attachFile->$title_var; } else { $attachFile_title = $attachFile->$title_var2; } $Attach_files[] = [ 'id' => $attachFile->id, 'title' => $attachFile_title, 'url' => ($attachFile->file != "") ? url("") . "/uploads/topics/" . $attachFile->file : null, 'href' => "/topic/file/" . $attachFile->id ]; } // comments $Comments = []; foreach ($Topic->approvedComments as $comment) { $Comments[] = [ 'id' => $comment->id, 'name' => $comment->name, 'email' => $comment->email, 'date' => $comment->date, 'comment' => nl2br($comment->comment), 'href' => "/topic/comment/" . $comment->id ]; } // related topics $Related_topics = []; foreach ($Topic->relatedTopics as $relatedTopic) { if ($relatedTopic->topic->$title_var != "") { $relatedTopic_title = $relatedTopic->topic->$title_var; } else { $relatedTopic_title = $relatedTopic->topic->$title_var2; } $Related_topics[] = [ 'id' => $relatedTopic->topic->id, 'title' => $relatedTopic_title, 'date' => $relatedTopic->topic->date, 'href' => "topic/" . $relatedTopic->topic->id, 'photo_file' => ($relatedTopic->topic->photo_file != "") ? url("") . "/uploads/topics/" . $relatedTopic->topic->photo_file : null ]; } $video_file = $Topic->video_file; if ($Topic->video_type == 0) { $video_file = ($Topic->video_file != "") ? url("") . "/uploads/topics/" . $Topic->video_file : ""; } if ($Topic->$title_var != "") { $Topic_title = $Topic->$title_var; } else { $Topic_title = $Topic->$title_var2; } if ($Topic->$details_var != "") { $Topic_details = $Topic->$details_var; } else { $Topic_details = $Topic->$details_var2; } $response_details[] = [ 'id' => $Topic->id, 'title' => $Topic_title, 'details' => $Topic_details, 'date' => $Topic->date, 'video_type' => $Topic->video_type, 'video_file' => $video_file, 'photo_file' => ($Topic->photo_file != "") ? url("") . "/uploads/topics/" . $Topic->photo_file : null, 'audio_file' => ($Topic->audio_file != "") ? url("") . "/uploads/topics/" . $Topic->audio_file : null, 'icon' => $Topic->icon, 'visits' => $Topic->visits, 'href' => "topic/" . $Topic->id, 'fields_count' => count($Additional_fields), 'fields' => $Additional_fields, 'Joined_categories_count' => count($Joined_categories), 'Joined_categories' => $Joined_categories, 'photos_count' => count($Photos), 'photos' => $Photos, 'attach_files_count' => count($Attach_files), 'attach_files' => $Attach_files, 'maps_count' => count($Maps), 'maps' => $Maps, 'comments_count' => count($Comments), 'comments' => $Comments, 'related_topics_count' => count($Related_topics), 'related_topics' => $Related_topics, 'user' => [ 'id' => $Topic->user->id, 'name' => $Topic->user->name, 'href' => "user/" . $Topic->user->id . "/topics", ] ]; } // Response MSG $response = [ 'msg' => 'Details of topic', 'section_id' => $section_id, 'section_title' => $section_title, 'type' => $type, 'topic' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_photos($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $topic_title = ""; $photo_file = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($Topic->$title_var != "") { $topic_title = $Topic->$title_var; } else { $topic_title = $Topic->$title_var2; } $photo_file = $Topic->photo_file; // photos $response_details = []; foreach ($Topic->photos as $photo) { $response_details[] = [ 'id' => $photo->id, 'title' => $photo->title, 'url' => ($photo->file != "") ? url("") . "/uploads/topics/" . $photo->file : null, 'href' => "/topic/photo/" . $photo->id ]; } } // Response MSG $response = [ 'msg' => 'Photos of topic', 'topic_id' => $topic_id, 'topic_title' => $topic_title, 'topic_link' => "topic/" . $topic_id, 'topic_photo' => ($photo_file != "") ? url("") . "/uploads/topics/" . $photo_file : null, 'photos_count' => count($response_details), 'photos' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_photo($photo_id, $lang = '') { if ($photo_id > 0) { // Get Photo details $Photo = Photo::find($photo_id); if (!empty($Photo)) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $topic_title = ""; $photo_file = ""; $response_details[] = [ 'id' => $Photo->id, 'title' => $Photo->title, 'url' => ($Photo->file != "") ? url("") . "/uploads/topics/" . $Photo->file : null ]; // Response MSG $response = [ 'msg' => 'Photo details', 'topic_id' => $Photo->topic_id, 'photo' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_maps($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $details_var = "details_$lang"; $details_var2 = "details_" . env('DEFAULT_LANGUAGE'); $topic_title = ""; $photo_file = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($Topic->$title_var != "") { $topic_title = $Topic->$title_var; } else { $topic_title = $Topic->$title_var2; } $photo_file = $Topic->photo_file; // maps $response_details = []; foreach ($Topic->maps as $map) { if ($map->$title_var != "") { $map_title = $map->$title_var; } else { $map_title = $map->$title_var2; } if ($map->$details_var != "") { $map_details = $map->$details_var; } else { $map_details = $map->$details_var2; } $response_details[] = [ 'id' => $map->id, 'longitude' => $map->longitude, 'latitude' => $map->latitude, 'title' => $map_title, 'details' => $map_details, 'href' => "/topic/map/" . $map->id ]; } } // Response MSG $response = [ 'msg' => 'Maps of topic', 'topic_id' => $topic_id, 'topic_title' => $topic_title, 'topic_link' => "topic/" . $topic_id, 'topic_photo' => ($photo_file != "") ? url("") . "/uploads/topics/" . $photo_file : null, 'maps_count' => count($response_details), 'maps' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_map($map_id, $lang = '') { if ($map_id > 0) { // Get map details $Map = Map::find($map_id); if (!empty($Map)) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $details_var = "details_$lang"; $details_var2 = "details_" . env('DEFAULT_LANGUAGE'); if ($map->$title_var != "") { $map_title = $map->$title_var; } else { $map_title = $map->$title_var2; } if ($map->$details_var != "") { $map_details = $map->$details_var; } else { $map_details = $map->$details_var2; } $response_details[] = [ 'id' => $Map->id, 'longitude' => $Map->longitude, 'latitude' => $Map->latitude, 'title' => $map_title, 'details' => $map_details ]; // Response MSG $response = [ 'msg' => 'Map details', 'topic_id' => $Map->topic_id, 'map' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_files($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $topic_title = ""; $photo_file = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($Topic->$title_var != "") { $topic_title = $Topic->$title_var; } else { $topic_title = $Topic->$title_var2; } $photo_file = $Topic->photo_file; // attach files $response_details = []; foreach ($Topic->attachFiles as $attachFile) { if ($attachFile->$title_var != "") { $attachFile_title = $attachFile->$title_var; } else { $attachFile_title = $attachFile->$title_var2; } $response_details[] = [ 'id' => $attachFile->id, 'title' => $attachFile_title, 'url' => ($attachFile->file != "") ? url("") . "/uploads/topics/" . $attachFile->file : null, 'href' => "/topic/file/" . $attachFile->id ]; } } // Response MSG $response = [ 'msg' => 'Attach files of topic', 'topic_id' => $topic_id, 'topic_title' => $topic_title, 'topic_link' => "topic/" . $topic_id, 'topic_photo' => ($photo_file != "") ? url("") . "/uploads/topics/" . $photo_file : null, 'files_count' => count($response_details), 'files' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_file($file_id, $lang = '') { if ($file_id > 0) { // Get topic details $AttachFile = AttachFile::find($file_id); if (!empty($AttachFile)) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); if ($AttachFile->$title_var != "") { $attachFile_title = $AttachFile->$title_var; } else { $attachFile_title = $AttachFile->$title_var2; } $response_details[] = [ 'id' => $AttachFile->id, 'title' => $attachFile_title, 'url' => ($AttachFile->file != "") ? url("") . "/uploads/topics/" . $AttachFile->file : null ]; // Response MSG $response = [ 'msg' => 'Attach file details', 'topic_id' => $AttachFile->topic_id, 'file' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_comments($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $topic_title = ""; $photo_file = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($Topic->$title_var != "") { $topic_title = $Topic->$title_var; } else { $topic_title = $Topic->$title_var2; } $photo_file = $Topic->photo_file; // comments $response_details = []; foreach ($Topic->approvedComments as $comment) { $response_details[] = [ 'id' => $comment->id, 'name' => $comment->name, 'email' => $comment->email, 'date' => $comment->date, 'comment' => nl2br($comment->comment), 'href' => "/topic/comment/" . $comment->id ]; } } // Response MSG $response = [ 'msg' => 'Comments of topic', 'topic_id' => $topic_id, 'topic_title' => $topic_title, 'topic_link' => "topic/" . $topic_id, 'topic_photo' => ($photo_file != "") ? url("") . "/uploads/topics/" . $photo_file : null, 'comments_count' => count($response_details), 'comments' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_comment($comment_id, $lang = '') { if ($comment_id > 0) { // Get topic details $Comment = Comment::find($comment_id); if (!empty($Comment)) { $response_details[] = [ 'id' => $Comment->id, 'name' => $Comment->name, 'email' => $Comment->email, 'date' => $Comment->date, 'comment' => nl2br($Comment->comment) ]; // Response MSG $response = [ 'msg' => 'Comment details', 'topic_id' => $Comment->topic_id, 'comment' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_related($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $topic_title = ""; $photo_file = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($Topic->$title_var != "") { $topic_title = $Topic->$title_var; } else { $topic_title = $Topic->$title_var2; } $photo_file = $Topic->photo_file; // related topics $response_details = []; foreach ($Topic->relatedTopics as $relatedTopic) { if ($relatedTopic->topic->$title_var != "") { $relatedTopic_title = $relatedTopic->topic->$title_var; } else { $relatedTopic_title = $relatedTopic->topic->$title_var2; } $response_details[] = [ 'id' => $relatedTopic->topic->id, 'title' => $relatedTopic_title, 'date' => $relatedTopic->topic->date, 'href' => "topic/" . $relatedTopic->topic->id, 'photo_file' => ($relatedTopic->topic->photo_file != "") ? url("") . "/uploads/topics/" . $relatedTopic->topic->photo_file : null, ]; } } // Response MSG $response = [ 'msg' => 'Related topics of topic', 'topic_id' => $topic_id, 'topic_title' => $topic_title, 'topic_link' => "topic/" . $topic_id, 'topic_photo' => ($photo_file != "") ? url("") . "/uploads/topics/" . $photo_file : null, 'related_topics_count' => count($response_details), 'related_topics' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function topic_fields($topic_id, $lang = '') { if ($topic_id > 0) { // Get topic details $Topics = Topic::where([['id', '=', $topic_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['id', '=', $topic_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc')->get(); if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $topic_title = ""; $photo_file = ""; // Response Details $response_details = []; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } if ($Topic->$title_var != "") { $topic_title = $Topic->$title_var; } else { $topic_title = $Topic->$title_var2; } $photo_file = $Topic->photo_file; // additional fields $response_details = []; foreach ($Topic->webmasterSection->customFields->where("in_page", true) as $customField) { if ($customField->in_page) { $cf_saved_val = ""; $cf_saved_val_array = array(); if (count($Topic->fields) > 0) { foreach ($Topic->fields as $t_field) { if ($t_field->field_id == $customField->id) { if ($customField->type == 7) { // if multi check $cf_saved_val_array = explode(", ", $t_field->field_value); $cf_details_var = "details_" . @Helper::currentLanguage()->code; $cf_details_var2 = "details_en" . env('DEFAULT_LANGUAGE'); if ($customField->$cf_details_var != "") { $cf_details = $customField->$cf_details_var; } else { $cf_details = $customField->$cf_details_var2; } $cf_details_lines = preg_split('/\r\n|[\r\n]/', $cf_details); $line_num = 1; foreach ($cf_details_lines as $cf_details_line) { if (in_array($line_num, $cf_saved_val_array)) { $cf_saved_val .= $cf_details_line . ", "; } $line_num++; } $cf_saved_val = substr($cf_saved_val, 0, -2); } else { $cf_saved_val = $t_field->field_value; } } } } if (($cf_saved_val != "" || count($cf_saved_val_array) > 0) && ($customField->lang_code == "all" || $customField->lang_code == "$lang")) { $response_details[] = [ 'type' => $customField->type, 'title' => $customField->$title_var, 'value' => $cf_saved_val, ]; } } } } // Response MSG $response = [ 'msg' => 'Additional Fields of topic', 'topic_id' => $topic_id, 'topic_title' => $topic_title, 'topic_link' => "topic/" . $topic_id, 'topic_photo' => ($photo_file != "") ? url("") . "/uploads/topics/" . $photo_file : null, 'fields_count' => count($response_details), 'fields' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function user_topics($user_id, $page_number = 1, $topics_count = 0, $lang = '') { if ($user_id > 0) { if ($page_number < 1) { $page_number = 1; } Paginator::currentPageResolver(function () use ($page_number) { return $page_number; }); // Get topics $Topics = Topic::where([['created_by', '=', $user_id], ['status', 1], ['expire_date', '>=', date("Y-m-d")], ['expire_date', '<>', null]])->orWhere([['created_by', '=', $user_id], ['status', 1], ['expire_date', null]])->orderby('row_no', 'asc'); if ($topics_count > 0) { $Topics = $Topics->paginate($topics_count); } else { $Topics = $Topics->get(); } if (count($Topics) > 0) { // By Language $lang = $this->getLanguage($lang); $title_var = "title_$lang"; $title_var2 = "title_" . env('DEFAULT_LANGUAGE'); $details_var = "details_$lang"; $details_var2 = "details_" . env('DEFAULT_LANGUAGE'); $user_name = ""; // Response Details $response_details = []; $ic = 0; foreach ($Topics as $Topic) { $WebmasterSection = WebmasterSection::find($Topic->webmaster_id); if (!empty($WebmasterSection)) { // if private redirect back to home if ($WebmasterSection->type == 4) { continue; } } $ic++; $type = $Topic->webmasterSection->type; $section_name = $Topic->webmasterSection->name; $section_id = $Topic->webmasterSection->id; $user_name = $Topic->user->name; $Joined_categories = []; foreach ($Topic->categories as $category) { if ($category->section->$title_var != "") { $category_title = $category->section->$title_var; } else { $category_title = $category->section->$title_var2; } $Joined_categories[] = [ 'id' => $category->id, 'title' => $category_title, 'icon' => $category->section->icon, 'photo' => ($category->section->photo != "") ? url("") . "/uploads/sections/" . $category->section->photo : null, 'href' => "topics/cat/" . $category->id ]; } // additional fields $Additional_fields = []; foreach ($Topic->webmasterSection->customFields->where("in_listing", true) as $customField) { if ($customField->in_page) { $cf_saved_val = ""; $cf_saved_val_array = array(); if (count($Topic->fields) > 0) { foreach ($Topic->fields as $t_field) { if ($t_field->field_id == $customField->id) { if ($customField->type == 7) { // if multi check $cf_saved_val_array = explode(", ", $t_field->field_value); $cf_details_var = "details_" . @Helper::currentLanguage()->code; $cf_details_var2 = "details_en" . env('DEFAULT_LANGUAGE'); if ($customField->$cf_details_var != "") { $cf_details = $customField->$cf_details_var; } else { $cf_details = $customField->$cf_details_var2; } $cf_details_lines = preg_split('/\r\n|[\r\n]/', $cf_details); $line_num = 1; foreach ($cf_details_lines as $cf_details_line) { if (in_array($line_num, $cf_saved_val_array)) { $cf_saved_val .= $cf_details_line . ", "; } $line_num++; } $cf_saved_val = substr($cf_saved_val, 0, -2); } else { $cf_saved_val = $t_field->field_value; } } } } if (($cf_saved_val != "" || count($cf_saved_val_array) > 0) && ($customField->lang_code == "all" || $customField->lang_code == "$lang")) { if ($customField->$title_var != "") { $customField_title = $customField->$title_var; } else { $customField_title = $customField->$title_var2; } $Additional_fields[] = [ 'type' => $customField->type, 'title' => $customField_title, 'value' => $cf_saved_val, ]; } } } $video_file = $Topic->video_file; if ($Topic->video_type == 0) { $video_file = ($Topic->video_file != "") ? url("") . "/uploads/topics/" . $Topic->video_file : ""; } if ($Topic->$title_var != "") { $Topic_title = $Topic->$title_var; } else { $Topic_title = $Topic->$title_var2; } if ($Topic->$details_var != "") { $Topic_details = $Topic->$details_var; } else { $Topic_details = $Topic->$details_var2; } $response_details[] = [ 'id' => $Topic->id, 'title' => $Topic_title, 'details' => $Topic_details, 'date' => $Topic->date, 'video_type' => $Topic->video_type, 'video_file' => $video_file, 'photo_file' => ($Topic->photo_file != "") ? url("") . "/uploads/topics/" . $Topic->photo_file : null, 'audio_file' => ($Topic->audio_file != "") ? url("") . "/uploads/topics/" . $Topic->audio_file : null, 'icon' => $Topic->icon, 'visits' => $Topic->visits, 'href' => "topic/" . $Topic->id, 'fields_count' => count($Additional_fields), 'fields' => $Additional_fields, 'Joined_categories_count' => count($Topic->categories), 'Joined_categories' => $Joined_categories, 'section_id' => $section_id, 'section_name' => $section_name, 'section_type' => $type, ]; } // Response MSG $response = [ 'msg' => 'List of Topics for user', 'user_id' => $user_id, 'user_name' => $user_name, 'topics_count' => $ic, 'topics' => $response_details ]; return response()->json($response, 200); } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 200); } } else { // Empty MSG $response = [ 'msg' => 'There is no data' ]; return response()->json($response, 404); } } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function ContactPageSubmit(Request $request) { $this->validate($request, [ 'api_key' => 'required', 'contact_name' => 'required', 'contact_email' => 'required|email', 'contact_subject' => 'required', 'contact_message' => 'required' ]); // check api_key if ($request->api_key == Helper::GeneralWebmasterSettings("api_key")) { // SITE SETTINGS $WebsiteSettings = Setting::find(1); $site_title_var = "site_title_" . @Helper::currentLanguage()->code; $site_email = $WebsiteSettings->site_webmails; $site_url = $WebsiteSettings->site_url; $site_title = $WebsiteSettings->$site_title_var; $Webmail = new Webmail; $Webmail->cat_id = 0; $Webmail->group_id = null; $Webmail->title = $request->contact_subject; $Webmail->details = $request->contact_message; $Webmail->date = date("Y-m-d H:i:s"); $Webmail->from_email = $request->contact_email; $Webmail->from_name = $request->contact_name; $Webmail->from_phone = $request->contact_phone; $Webmail->to_email = $WebsiteSettings->site_webmails; $Webmail->to_name = $site_title; $Webmail->status = 0; $Webmail->flag = 0; $Webmail->save(); // SEND Notification Email if (@Helper::GeneralSiteSettings('notify_messages_status')) { $recipient = explode(",", str_replace(" ", "", $site_email)); $message_details = __('frontend.name') . ": " . $request->contact_name . "<hr>" . __('frontend.phone') . ": " . $request->contact_phone . "<hr>" . __('frontend.email') . ": " . $request->contact_email . "<hr>" . __('frontend.message') . ":<br>" . nl2br($request->contact_message); Mail::to($recipient)->send(new NotificationEmail( [ "title" => $request->contact_subject, "details" => $message_details, "from_email" => $request->contact_email, "from_name" => $request->contact_name ] )); } // response MSG $response = [ 'code' => '1', 'msg' => 'Message Sent successfully' ]; return response()->json($response, 201); } else { // Empty MSG $response = [ 'code' => '-1', 'msg' => 'Authentication failed' ]; return response()->json($response, 500); } } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function subscribeSubmit(Request $request) { $this->validate($request, [ 'api_key' => 'required', 'subscribe_name' => 'required', 'subscribe_email' => 'required|email' ]); // check api_key if ($request->api_key == Helper::GeneralWebmasterSettings("api_key")) { // General Webmaster Settings $WebmasterSettings = WebmasterSetting::find(1); $Contacts = Contact::where('email', $request->subscribe_email)->get(); if (count($Contacts) > 0) { // response MSG $response = [ 'code' => '2', 'msg' => 'You are already subscribed' ]; return response()->json($response, 200); } else { $subscribe_names = explode(' ', $request->subscribe_name, 2); $Contact = new Contact; $Contact->group_id = $WebmasterSettings->newsletter_contacts_group; $Contact->first_name = @$subscribe_names[0]; $Contact->last_name = @$subscribe_names[1]; $Contact->email = $request->subscribe_email; $Contact->status = 1; $Contact->save(); // response MSG $response = [ 'code' => '1', 'msg' => 'You have subscribed successfully' ]; return response()->json($response, 201); } } else { // Empty MSG $response = [ 'code' => '-1', 'msg' => 'Authentication failed' ]; return response()->json($response, 500); } } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function commentSubmit(Request $request) { $this->validate($request, [ 'api_key' => 'required', 'topic_id' => 'required', 'comment_name' => 'required', 'comment_email' => 'required|email', 'comment_message' => 'required' ]); // check api_key if ($request->api_key == Helper::GeneralWebmasterSettings("api_key")) { // General Webmaster Settings $WebmasterSettings = WebmasterSetting::find(1); $next_nor_no = Comment::where('topic_id', '=', $request->topic_id)->max('row_no'); if ($next_nor_no < 1) { $next_nor_no = 1; } else { $next_nor_no++; } $Comment = new Comment; $Comment->row_no = $next_nor_no; $Comment->name = $request->comment_name; $Comment->email = $request->comment_email; $Comment->comment = $request->comment_message; $Comment->topic_id = $request->topic_id;; $Comment->date = date("Y-m-d H:i:s"); $Comment->status = $WebmasterSettings->new_comments_status; $Comment->save(); // Site Details $WebsiteSettings = Setting::find(1); $site_title_var = "site_title_" . @Helper::currentLanguage()->code; $site_email = $WebsiteSettings->site_webmails; $site_url = $WebsiteSettings->site_url; $site_title = $WebsiteSettings->$site_title_var; // Topic details $Topic = Topic::where('status', 1)->find($request->topic_id); if (!empty($Topic)) { $tpc_title_var = "title_" . @Helper::currentLanguage()->code; $tpc_title = $WebsiteSettings->$tpc_title_var; // SEND Notification Email if (@Helper::GeneralSiteSettings('notify_comments_status')) { $recipient = explode(",", str_replace(" ", "", $site_email)); $message_details = __('frontend.name') . ": " . $request->comment_name . "<hr>" . __('frontend.email') . ": " . $request->comment_email . "<hr>" . __('frontend.comment') . ":<br>" . nl2br($request->comment_message); Mail::to($recipient)->send(new NotificationEmail( [ "title" => "Comment: " . $tpc_title, "details" => $message_details, "from_email" => $request->comment_email, "from_name" => $request->comment_name ] )); } // response MSG $response = [ 'code' => '1', 'msg' => 'Your Comment Sent successfully' ]; return response()->json($response, 201); } else { // response MSG $response = [ 'code' => '0', 'msg' => 'There is no data' ]; return response()->json($response, 404); } } else { // Empty MSG $response = [ 'code' => '-1', 'msg' => 'Authentication failed' ]; return response()->json($response, 500); } } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function orderSubmit(Request $request) { $this->validate($request, [ 'api_key' => 'required', 'topic_id' => 'required', 'order_name' => 'required', 'order_phone' => 'required', 'order_email' => 'required|email' ]); // check api_key if ($request->api_key == Helper::GeneralWebmasterSettings("api_key")) { $WebsiteSettings = Setting::find(1); $site_title_var = "site_title_" . @Helper::currentLanguage()->code; $site_email = $WebsiteSettings->site_webmails; $site_url = $WebsiteSettings->site_url; $site_title = $WebsiteSettings->$site_title_var; $Topic = Topic::where('status', 1)->find($request->topic_id); if (!empty($Topic)) { $tpc_title_var = "title_" . @Helper::currentLanguage()->code; $tpc_title = $WebsiteSettings->$tpc_title_var; $Webmail = new Webmail; $Webmail->cat_id = 0; $Webmail->group_id = null; $Webmail->contact_id = null; $Webmail->father_id = null; $Webmail->title = "ORDER " . ", " . $Topic->$tpc_title_var; $Webmail->details = $request->order_message; $Webmail->date = date("Y-m-d H:i:s"); $Webmail->from_email = $request->order_email; $Webmail->from_name = $request->order_name; $Webmail->from_phone = $request->order_phone; $Webmail->to_email = $WebsiteSettings->site_webmails; $Webmail->to_name = $WebsiteSettings->$site_title_var; $Webmail->status = 0; $Webmail->flag = 0; $Webmail->save(); // SEND Notification Email if (@Helper::GeneralSiteSettings('notify_orders_status')) { $recipient = explode(",", str_replace(" ", "", $site_email)); $message_details = __('frontend.name') . ": " . $request->order_name . "<hr>" . __('frontend.phone') . ": " . $request->order_phone . "<hr>" . __('frontend.email') . ": " . $request->order_email . "<hr>" . __('frontend.notes') . ":<br>" . nl2br($request->order_message); Mail::to($recipient)->send(new NotificationEmail( [ "title" => "Order: " . $tpc_title, "details" => $message_details, "from_email" => $request->order_email, "from_name" => $request->order_name ] )); } // response MSG $response = [ 'code' => '1', 'msg' => 'Your Order Sent successfully' ]; return response()->json($response, 201); } else { // response MSG $response = [ 'code' => '0', 'msg' => 'There is no data' ]; return response()->json($response, 404); } } else { // Empty MSG $response = [ 'code' => '-1', 'msg' => 'Authentication failed' ]; return response()->json($response, 500); } } }
Close