%PDF-1.4 %âãÏÓ 191 0 obj <> endobj 403 Forbidden
One Hat Cyber Team
  • Dir : ~/home/mshshams/iyanfluencer.com/core/app/Helper/
  • Edit File: helpers.php
    ' . __('separate option by new line') . '
    '; } if ($type == 'file') { $output .= '
    '; } $output .= ''; return $output; } function custom_number_format($amount) { return number_format((float)$amount, 2, '.', ''); } function redirect_404_page() { return view('frontend.pages.404'); } function getVisIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { return $_SERVER['HTTP_CLIENT_IP']; } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWARDED_FOR']; } else { return $_SERVER['REMOTE_ADDR']; } } function get_visitor_country() { $return_val = 'not detected'; $ip = getVisIpAddr(); $ipdat = @json_decode(file_get_contents( "http://www.geoplugin.net/json.gp?ip=" . $ip )); $ipdat = (array) $ipdat; $return_val = isset($ipdat['geoplugin_countryCode']) ? $ipdat['geoplugin_countryCode'] : $return_val; return $return_val; } function get_user_name_by_id($id) { $user = \App\User::find($id); return $user; } function all_languages() { $languages = [ [ "value" => "af", "lang" => "af", "title" => "Afrikaans" ], [ "value" => "ar", "lang" => "ar", "title" => "العربية" ], [ "value" => "ary", "lang" => "ar", "title" => "العربية المغربية" ], [ "value" => "as", "lang" => "as", "title" => "অসমীয়া" ], [ "value" => "az", "lang" => "az", "title" => "Azərbaycan dili" ], [ "value" => "azb", "lang" => "az", "title" => "گؤنئی آذربایجان" ], [ "value" => "bel", "lang" => "be", "title" => "Беларуская мова" ], [ "value" => "bg_BG", "lang" => "bg", "title" => "Български" ], [ "value" => "bn_BD", "lang" => "bn", "title" => "বাংলা" ], [ "value" => "bo", "lang" => "bo", "title" => "བོད་ཡིག" ], [ "value" => "bs_BA", "lang" => "bs", "title" => "Bosanski" ], [ "value" => "ca", "lang" => "ca", "title" => "Català" ], [ "value" => "ceb", "lang" => "ceb", "title" => "Cebuano" ], [ "value" => "cs_CZ", "lang" => "cs", "title" => "Čeština" ], [ "value" => "cy", "lang" => "cy", "title" => "Cymraeg" ], [ "value" => "da_DK", "lang" => "da", "title" => "Dansk" ], [ "value" => "de_CH", "lang" => "de", "title" => "Deutsch (Schweiz)" ], [ "value" => "de_AT", "lang" => "de", "title" => "Deutsch (Österreich)" ], [ "value" => "de_CH_informal", "lang" => "de", "title" => "Deutsch (Schweiz, Du)" ], [ "value" => "de_DE", "lang" => "de", "title" => "Deutsch" ], [ "value" => "de_DE_formal", "lang" => "de", "title" => "Deutsch (Sie)" ], [ "value" => "dsb", "lang" => "dsb", "title" => "Dolnoserbšćina" ], [ "value" => "dzo", "lang" => "dz", "title" => "རྫོང་ཁ" ], [ "value" => "el", "lang" => "el", "title" => "Ελληνικά" ], [ "value" => "en_US", "lang" => "en", "title" => "English (USA)" ], [ "value" => "en_AU", "lang" => "en", "title" => "English (Australia)" ], [ "value" => "en_GB", "lang" => "en", "title" => "English (UK)" ], [ "value" => "en_CA", "lang" => "en", "title" => "English (Canada)" ], [ "value" => "en_ZA", "lang" => "en", "title" => "English (South Africa)" ], [ "value" => "en_NZ", "lang" => "en", "title" => "English (New Zealand)" ], [ "value" => "eo", "lang" => "eo", "title" => "Esperanto" ], [ "value" => "es_AR", "lang" => "es", "title" => "Español de Argentina" ], [ "value" => "es_EC", "lang" => "es", "title" => "Español de Ecuador" ], [ "value" => "es_MX", "lang" => "es", "title" => "Español de México" ], [ "value" => "es_ES", "lang" => "es", "title" => "Español" ], [ "value" => "es_VE", "lang" => "es", "title" => "Español de Venezuela" ], [ "value" => "es_CO", "lang" => "es", "title" => "Español de Colombia" ], [ "value" => "es_CR", "lang" => "es", "title" => "Español de Costa Rica" ], [ "value" => "es_PE", "lang" => "es", "title" => "Español de Perú" ], [ "value" => "es_PR", "lang" => "es", "title" => "Español de Puerto Rico" ], [ "value" => "es_UY", "lang" => "es", "title" => "Español de Uruguay" ], [ "value" => "es_GT", "lang" => "es", "title" => "Español de Guatemala" ], [ "value" => "es_CL", "lang" => "es", "title" => "Español de Chile" ], [ "value" => "et", "lang" => "et", "title" => "Eesti" ], [ "value" => "eu", "lang" => "eu", "title" => "Euskara" ], [ "value" => "fa_IR", "lang" => "fa", "title" => "فارسی" ], [ "value" => "fa_AF", "lang" => "fa", "title" => "(فارسی (افغانستان" ], [ "value" => "fi", "lang" => "fi", "title" => "Suomi" ], [ "value" => "fr_FR", "lang" => "fr", "title" => "Français" ], [ "value" => "fr_BE", "lang" => "fr", "title" => "Français de Belgique" ], [ "value" => "fr_CA", "lang" => "fr", "title" => "Français du Canada" ], [ "value" => "fur", "lang" => "fur", "title" => "Friulian" ], [ "value" => "gd", "lang" => "gd", "title" => "Gàidhlig" ], [ "value" => "gl_ES", "lang" => "gl", "title" => "Galego" ], [ "value" => "gu", "lang" => "gu", "title" => "ગુજરાતી" ], [ "value" => "haz", "lang" => "haz", "title" => "هزاره گی" ], [ "value" => "he_IL", "lang" => "he", "title" => "עִבְרִית" ], [ "value" => "hi_IN", "lang" => "hi", "title" => "हिन्दी" ], [ "value" => "hr", "lang" => "hr", "title" => "Hrvatski" ], [ "value" => "hsb", "lang" => "hsb", "title" => "Hornjoserbšćina" ], [ "value" => "hu_HU", "lang" => "hu", "title" => "Magyar" ], [ "value" => "hy", "lang" => "hy", "title" => "Հայերեն" ], [ "value" => "id_ID", "lang" => "id", "title" => "Bahasa Indonesia" ], [ "value" => "is_IS", "lang" => "is", "title" => "Íslenska" ], [ "value" => "it_IT", "lang" => "it", "title" => "Italiano" ], [ "value" => "ja", "lang" => "ja", "title" => "日本語" ], [ "value" => "jv_ID", "lang" => "jv", "title" => "Basa Jawa" ], [ "value" => "ka_GE", "lang" => "ka", "title" => "ქართული" ], [ "value" => "kab", "lang" => "kab", "title" => "Taqbaylit" ], [ "value" => "kk", "lang" => "kk", "title" => "Қазақ тілі" ], [ "value" => "km", "lang" => "km", "title" => "ភាសាខ្មែរ" ], [ "value" => "kn", "lang" => "kn", "title" => "ಕನ್ನಡ" ], [ "value" => "ko_KR", "lang" => "ko", "title" => "한국어" ], [ "value" => "ckb", "lang" => "ku", "title" => "كوردی‎" ], [ "value" => "lo", "lang" => "lo", "title" => "ພາສາລາວ" ], [ "value" => "lt_LT", "lang" => "lt", "title" => "Lietuvių kalba" ], [ "value" => "lv", "lang" => "lv", "title" => "Latviešu valoda" ], [ "value" => "mk_MK", "lang" => "mk", "title" => "Македонски јазик" ], [ "value" => "ml_IN", "lang" => "ml", "title" => "മലയാളം" ], [ "value" => "mn", "lang" => "mn", "title" => "Монгол" ], [ "value" => "mr", "lang" => "mr", "title" => "मराठी" ], [ "value" => "ms_MY", "lang" => "ms", "title" => "Bahasa Melayu" ], [ "value" => "my_MM", "lang" => "my", "title" => "ဗမာစာ" ], [ "value" => "nb_NO", "lang" => "nb", "title" => "Norsk bokmål" ], [ "value" => "ne_NP", "lang" => "ne", "title" => "नेपाली" ], [ "value" => "nl_NL", "lang" => "nl", "title" => "Nederlands" ], [ "value" => "nl_BE", "lang" => "nl", "title" => "Nederlands (België)" ], [ "value" => "nl_NL_formal", "lang" => "nl", "title" => "Nederlands (Formeel)" ], [ "value" => "nn_NO", "lang" => "nn", "title" => "Norsk nynorsk" ], [ "value" => "oci", "lang" => "oc", "title" => "Occitan" ], [ "value" => "pa_IN", "lang" => "pa", "title" => "ਪੰਜਾਬੀ" ], [ "value" => "pl_PL", "lang" => "pl", "title" => "Polski" ], [ "value" => "ps", "lang" => "ps", "title" => "پښتو" ], [ "value" => "pt_BR", "lang" => "pt", "title" => "Português do Brasil" ], [ "value" => "pt_PT_ao90", "lang" => "pt", "title" => "Português (AO90)" ], [ "value" => "pt_AO", "lang" => "pt", "title" => "Português de Angola" ], [ "value" => "pt_PT", "lang" => "pt", "title" => "Português" ], [ "value" => "rhg", "lang" => "rhg", "title" => "Ruáinga" ], [ "value" => "ro_RO", "lang" => "ro", "title" => "Română" ], [ "value" => "ru_RU", "lang" => "ru", "title" => "Русский" ], [ "value" => "sah", "lang" => "sah", "title" => "Сахалыы" ], [ "value" => "snd", "lang" => "sd", "title" => "سنڌي" ], [ "value" => "si_LK", "lang" => "si", "title" => "සිංහල" ], [ "value" => "sk_SK", "lang" => "sk", "title" => "Slovenčina" ], [ "value" => "skr", "lang" => "skr", "title" => "سرائیکی" ], [ "value" => "sl_SI", "lang" => "sl", "title" => "Slovenščina" ], [ "value" => "sq", "lang" => "sq", "title" => "Shqip" ], [ "value" => "sr_RS", "lang" => "sr", "title" => "Српски језик" ], [ "value" => "sv_SE", "lang" => "sv", "title" => "Svenska" ], [ "value" => "sw", "lang" => "sw", "title" => "Kiswahili" ], [ "value" => "szl", "lang" => "szl", "title" => "Ślōnskŏ gŏdka" ], [ "value" => "ta_IN", "lang" => "ta", "title" => "தமிழ்" ], [ "value" => "ta_LK", "lang" => "ta", "title" => "தமிழ்" ], [ "value" => "te", "lang" => "te", "title" => "తెలుగు" ], [ "value" => "th", "lang" => "th", "title" => "ไทย" ], [ "value" => "tl", "lang" => "tl", "title" => "Tagalog" ], [ "value" => "tr_TR", "lang" => "tr", "title" => "Türkçe" ], [ "value" => "tt_RU", "lang" => "tt", "title" => "Татар теле" ], [ "value" => "tah", "lang" => "ty", "title" => "Reo Tahiti" ], [ "value" => "ug_CN", "lang" => "ug", "title" => "ئۇيغۇرچە" ], [ "value" => "uk", "lang" => "uk", "title" => "Українська" ], [ "value" => "ur", "lang" => "ur", "title" => "اردو" ], [ "value" => "uz_UZ", "lang" => "uz", "title" => "O‘zbekcha" ], [ "value" => "vi", "lang" => "vi", "title" => "Tiếng Việt" ], [ "value" => "zh_TW", "lang" => "zh", "title" => "繁體中文" ], [ "value" => "zh_HK", "lang" => "zh", "title" => "香港中文版" ], [ "value" => "zh_CN", "lang" => "zh", "title" => "简体中文" ] ]; return $languages; } function render_embed_google_map($address, $zoom = 10) { if (empty($address)) { return; } printf( '
    ', rawurlencode($address), $zoom, $address ); } function render_menu_by_id($id) { $default_lang = get_user_lang(); $mega_menu_enable = ''; if (empty($id)) { //load default home page if menu is empty return '
  • ' . __('Home') . '
  • '; } $output = ''; $menu_details_from_db = Menu::find($id); $menu_content = json_decode($menu_details_from_db->content); if (empty($menu_content)) { //load default home page if menu is empty return '
  • ' . __('Home') . '
  • '; } foreach ($menu_content as $menu_item) { $li_class = ''; //set li class if page is current page $mega_menu_ids = []; if (property_exists($menu_item, 'items_id')) { $mega_menu_ids = explode(',', $menu_item->items_id); } if ($menu_item->ptype == 'static') { //[lang] $menu_title = get_static_option(str_replace('[lang]',get_user_lang(),$menu_item->pname)); $menu_slug = url('/') . '/' . get_static_option($menu_item->pslug); $li_class .= (request()->path() == get_static_option($menu_item->pslug)) ? ' current-menu-item ' : ''; } elseif ($menu_item->ptype == 'dynamic') { $menu_title = ''; $menu_slug = ''; $page_details = Page::with('lang_front')->find($menu_item->pid); if (!empty($page_details)){ $menu_title = $page_details->title; $menu_slug = route('frontend.dynamic.page', [$page_details->slug,$page_details->id]); $li_class .= (request()->is(route('frontend.dynamic.page', [$page_details->slug,$page_details->id]))) ? ' current-menu-item ' : ''; } } elseif ($menu_item->ptype == 'custom') { $menu_title = __($menu_item->pname); $menu_slug = str_replace('@url', url('/'), $menu_item->purl); $li_class .= (request()->is($menu_slug)) ? ' current-menu-item ' : ''; } elseif ( $menu_item->ptype == 'blog' || $menu_item->ptype == 'practice-area' || $menu_item->ptype == 'case' || $menu_item->ptype == 'appointment') { if ($menu_item->ptype == 'blog') { $menu_title = ''; $menu_slug = ''; $page_details = \App\Blog::with('lang_front')->find($menu_item->pid); if (!empty($page_details)){ $menu_title = $page_details->title; $menu_slug = route('frontend.blog.single', [$page_details->slug,$page_details->id]); $li_class .= (request()->is(route('frontend.blog.single', [$page_details->slug,$page_details->id]))) ? ' current-menu-item ' : ''; } } if ($menu_item->ptype == 'practice-area') { $menu_title = ''; $menu_slug = ''; $page_details = \App\PracticeArea::with('lang_front')->find($menu_item->pid); if (!empty($page_details)){ $menu_title = $page_details->title; $menu_slug = route('frontend.preactice.area.single', [$page_details->slug,$page_details->id]); $li_class .= (request()->is(route('frontend.preactice.single', [$page_details->slug,$page_details->id]))) ? ' current-menu-item ' : ''; } }elseif ($menu_item->ptype == 'case') { $menu_title = ''; $menu_slug = ''; $page_details = \App\Cases::with('lang_front')->find($menu_item->pid); if (!empty($page_details)){ $menu_title = $page_details->lang_front->title; $menu_slug = route('frontend.case.single', [$page_details->slug,$page_details->id]); $li_class .= (request()->is(route('frontend.case.single', [$page_details->slug,$page_details->id]))) ? ' current-menu-item ' : ''; } }elseif ($menu_item->ptype == 'appointment') { $menu_title = ''; $menu_slug = ''; $page_details = \App\Appointment::with('lang_front')->find($menu_item->pid); if (!empty($page_details)){ $menu_title = $page_details->title; $menu_slug = route('frontend.appointment.single', [$page_details->slug,$page_details->id]); $li_class .= (request()->is(route('frontend.appointment.single', [$page_details->slug,$page_details->id]))) ? ' current-menu-item ' : ''; } } } elseif ($menu_item->ptype == 'case_mega_menu') { $menu_title = get_static_option('product_page_' . $default_lang . '_name'); $mega_menu_enable = 'mega_menu'; $menu_raw_path = get_static_option('product_page_slug'); $menu_slug = url('/') . '/' . $menu_raw_path; $li_class .= (request()->is($menu_raw_path)) ? ' current-menu-item ' : ''; $mega_menu_items = \App\Cases::with('lang_front')->find($mega_menu_ids)->groupBy('category_id'); } elseif ($menu_item->ptype == 'blog_mega_menu') { $menu_title = get_static_option('blog_page_' . $default_lang . '_name'); $mega_menu_enable = 'mega_menu'; $menu_raw_path = get_static_option('blog_page_slug'); $menu_slug = url('/') . '/' . $menu_raw_path; $li_class .= (request()->is($menu_raw_path)) ? ' current-menu-item ' : ''; $mega_menu_items = \App\Blog::with('lang_front')->find($mega_menu_ids)->groupBy('category_id'); }elseif ($menu_item->ptype == 'appointment_mega_menu') { $menu_title = get_static_option('appointment_page_' . $default_lang . '_name'); $mega_menu_enable = 'mega_menu'; $menu_raw_path = get_static_option('appointment_page_slug'); $menu_slug = url('/') . '/' . $menu_raw_path; $li_class .= (request()->is($menu_raw_path)) ? ' current-menu-item ' : ''; $mega_menu_items = \App\Appointment::with('lang_front')->find($mega_menu_ids)->groupBy('categories_id'); } $li_class .= property_exists($menu_item, 'children') ? ' menu-item-has-children ' : ''; $li_class .= property_exists($menu_item, 'items_id') ? ' menu-item-has-mega-menu ' : ''; $indent_line = "\n"; $indent_tab = "\t"; $li_class_markup = !empty($li_class) ? 'class="' . $li_class . '"' : ''; //set li class if it has submenu $icon_value = property_exists($menu_item, 'icon') ? '' : ''; $link_target = property_exists($menu_item, 'antarget') ? 'target="' . purify_html($menu_item->antarget) . '"' : ''; if (!empty($menu_slug) && !empty($menu_title)){//start condition $output .= $indent_tab . '
  • ' . $indent_line; $output .= $indent_tab . '' . $icon_value . purify_html($menu_title) . '' . $indent_line; //check for megamenu if (!empty($mega_menu_enable)) { $output .= '
    '; $output .= '
    '; foreach ($mega_menu_items as $cat => $posts) { $output .= '
    '; $output .= '

    ' . get_mega_menu_cat_name_by_id($menu_item->ptype, $cat) . '

    '; $output .= ''; $output .= '
    '; } $output .= '
    '; $mega_menu_enable = ''; } //check it has submenu if (property_exists($menu_item, 'children')) { $output .= render_submenu_children($menu_item->children); } //load li end tag $output .= $indent_tab . '
  • ' . $indent_line; }// end condition } return $output; } /* render submenu */ function render_submenu_children($menu_children) { $indent_line = "\n"; $indent_tab = "\t"; $output = $indent_tab . '' . $indent_line; return $output; } /* render menu for drag & drop menu in admin panel */ function render_draggable_menu_by_id($id) { $default_lang = get_default_language(); $mega_menu_enable = ''; $mega_menu_items = ''; $output = ''; $menu_details_from_db = App\Models\Menu::find($id); $menu_data = json_decode($menu_details_from_db->content); $page_id = 0; foreach ($menu_data as $menu) : $page_id++; $menu_title = ''; $menu_attr = 'data-ptype="' . $menu->ptype . '" '; if ($menu->ptype == 'static') { $menu_attr .= ' data-pname="' . $menu->pname . '"'; $menu_attr .= ' data-pslug="' . $menu->pslug . '"'; $menu_title = get_static_option(str_replace('[lang]',get_default_language(),$menu->pname)); } elseif ($menu->ptype == 'dynamic') { $menu_attr .= ' data-pid="' . $menu->pid . '"'; $menu_details = Page::find($menu->pid); $menu_title = !empty($menu_details) ? $menu_details->title : ''; } elseif ($menu->ptype == 'custom') { $menu_attr .= ' data-purl="' . $menu->purl . '"'; $menu_attr .= ' data-pname="' . $menu->pname . '"'; $menu_title = $menu->pname; } elseif ($menu->ptype == 'event' || $menu->ptype == 'blog' || $menu->ptype == 'case' || $menu->ptype == 'contribution' ) { $menu_attr .= ' data-pid="' . $menu->pid . '"'; if ($menu->ptype == 'event') { $menu_details = \App\Event::find($menu->pid); $menu_title = !empty($menu_details) ? $menu_details->lang_front->title : '' ; }elseif ($menu->ptype == 'blog') { $menu_details = \App\Blog::with('lang_front')->find($menu->pid); $menu_title = !empty($menu_details) ? $menu_details->lang_front->title : '' ; }elseif ($menu->ptype == 'contribution') { $menu_details = \App\Contribution::find($menu->pid); $menu_title = !empty($menu_details) ? $menu_details->lang_front->title : '' ; } } elseif ($menu->ptype == 'blog_mega_menu') { $menu_title = get_static_option('blog_page_' . $default_lang . '_name') . __('Mega Menu'); $mega_menu_enable = 'mega_menu'; $mega_menu_items = \App\Blog::with('lang_front')->where(['status' => 'publish'])->get(); }elseif ($menu->ptype == 'appointment_mega_menu') { $menu_title = get_static_option('appointment_page_' . $default_lang . '_name') . __('Mega Menu'); $mega_menu_enable = 'mega_menu'; $mega_menu_items = \App\Appointment::with('lang_front')->where(['status' => 'publish'])->get(); } $mega_menu_ids = []; if (property_exists($menu, 'items_id')) { $mega_menu_ids = explode(',', $menu->items_id); $menu_attr .= ' data-items_id="' . $menu->items_id . '" '; } $icon_value = property_exists($menu, 'icon') ? 'value="' . purify_html($menu->icon) . '"' : ''; $link_target = property_exists($menu, 'antarget') ? 'value="' . purify_html($menu->antarget) . '"' : ''; $icon_data = property_exists($menu, 'icon') ? 'data-icon="' . purify_html($menu->icon) . '"' : ''; $indent_line = "\n"; $indent_tab = "\t"; if (!empty($menu_title)) { $output .= '
  • ' . $indent_line; $output .= $indent_tab . '
    ' . purify_html($menu_title) . '
    ' . $indent_line; $output .= $indent_tab . 'x' . $indent_line; $output .= $indent_tab . '' . $indent_line; $output .= $indent_tab . '
    '; } //add mega menu extra field here if (!empty($mega_menu_enable)) { $output .= ''; $output .= ''; $mega_menu_enable = ''; } else { if (!empty($menu_title)) { $output .= ''; $output .= ''; } } if (!empty($menu_title)) { $output .= '
    ' . $indent_line; } //check it has children or not if (property_exists($menu, 'children')) { $output .= render_draggable_menu_children($menu->children, $page_id); } $output .= '
  • ' . $indent_line; endforeach; return $output; } /* render submenu of menu for drag & drop menu in admin panel */ function render_draggable_menu_children($children, $page_id) { $indent_line = "\n"; $indent_tab = "\t"; $output = $indent_tab . '
      ' . $indent_line; foreach ($children as $item) { $page_id++; $menu_title = ''; $menu_attr = 'data-ptype="' . $item->ptype . '" '; if ($item->ptype == 'static') { $menu_attr .= ' data-pname="' . $item->pname . '"'; $menu_attr .= ' data-pslug="' . $item->pslug . '"'; $menu_title = get_static_option(str_replace('[lang]',get_default_language(),$item->pname));; } elseif ($item->ptype == 'dynamic') { $menu_attr .= ' data-pid="' . $item->pid . '"'; $menu_details = Page::with('lang_front')->find($item->pid); $menu_title = !empty($menu_details) ? $menu_details->lang_front->title : ''; } elseif ($item->ptype == 'custom') { $menu_attr .= ' data-purl="' . $item->purl . '"'; $menu_attr .= ' data-pname="' . $item->pname . '"'; $menu_title = $item->pname; } elseif ($item->ptype == 'service' || $item->ptype == 'blog' || $item->ptype == 'product' || $item->ptype == 'appointment') { $menu_attr .= ' data-pid="' . $item->pid . '"'; if ($item->ptype == 'blog') { $menu_details = \App\Blog::with('lang_front')->find($item->pid); $menu_title = !empty($menu_details) ? $menu_details->lang_front->title : ''; }elseif ($item->ptype == 'appointment') { $menu_details = \App\Appointment::with('lang_front')->find($item->pid); $menu_title = !empty($menu_details) ? $menu_details->lang_front->title : ''; } } $icon_value = property_exists($item, 'icon') ? 'value="' . purify_html($item->icon) . '"' : ''; $icon_data = property_exists($item, 'icon') ? 'data-icon="' . purify_html($item->icon) . '"' : ''; $link_target = property_exists($item, 'antarget') ? 'value="' . purify_html($item->antarget) . '"' : ''; if (!empty($menu_title)) { $output .= $indent_tab . $indent_tab . '
    1. ' . $indent_line; $output .= $indent_tab . $indent_tab . $indent_tab . '
      ' . purify_html($menu_title) . '
      ' . $indent_line; $output .= $indent_tab . $indent_tab . $indent_tab . 'x' . $indent_line; $output .= $indent_tab . '' . $indent_line; $output .= $indent_tab . '
      '; $output .= ''; $output .= ''; $output .= '
      ' . $indent_line; } if (property_exists($item, 'children')) { $output .= render_draggable_menu_children($item->children, $page_id); } if (!empty($menu_title)) { $output .= $indent_tab . $indent_tab . '
    2. ' . $indent_line; } } $output .= $indent_tab . '
    ' . $indent_line; return $output; } function render_mega_menu_item_select_markup($type = '',$menu_id = null) { $output = ''; if (!empty($type)) { if ($type == 'practice_area_mega_menu') { $mega_menu_items = \App\PracticeArea::with('lang_front')->where(['status' => 'publish'])->get(); } elseif ($type == 'case_mega_menu') { $mega_menu_items = \App\Cases::with('lang_front')->where(['status' => 'publish'])->get(); } elseif ($type == 'blog_mega_menu') { $mega_menu_items = \App\Blog::with('lang_front')->where(['status' => 'publish'])->get(); } elseif ($type == 'appointment_mega_menu') { $mega_menu_items = \App\Appointment::with('lang_front')->where(['status' => 'publish'])->get(); } $output .= ''; $output .= ''; } return $output; } function get_mega_menu_cat_name_by_id($type, $cat_id) { $return_val = ''; switch ($type) { case('service_mega_menu'): $cat_details = \App\ServiceCategory::with('lang_front')->find($cat_id); $return_val = !empty($cat_details) ? purify_html($cat_details->lang_front->name) : ''; break; case('product_mega_menu'): $cat_details = \App\ProductCategory::with('lang_front')->find($cat_id); $return_val = !empty($cat_details) ? purify_html($cat_details->lang_front->name) : ''; break; case('appointment_mega_menu'): $cat_details = \App\AppointmentCategory::with('lang_front')->find($cat_id); $return_val = !empty($cat_details) ? purify_html($cat_details->lang_front->name) : ''; break; case('blog_mega_menu'): $cat_details = \App\BlogCategory::with('lang_front')->find($cat_id); $return_val = !empty($cat_details) ? purify_html($cat_details->lang_front->name) : ''; break; default: break; } return $return_val; } function get_mege_menu_item_url($type, $slug,$id) { $return_val = ''; switch ($type) { case('service_mega_menu'): $return_val = route('frontend.services.single',[purify_html($slug),$id]); break; case('product_mega_menu'): $return_val = route('frontend.products.single',[purify_html($slug),$id]); break; case('appointment_mega_menu'): $return_val = route('frontend.appointment.single',[purify_html($slug),$id]); break; case('blog_mega_menu'): $return_val = route('frontend.blog.single',[purify_html($slug),$id]); break; default: break; } return $return_val; } function render_footer_copyright_text() { $footer_copyright_text = get_static_option('site_footer_copyright'); $footer_copyright_text = str_replace('{copy}', '©', $footer_copyright_text); $footer_copyright_text = str_replace('{year}', date('Y'), $footer_copyright_text); return purify_html_raw($footer_copyright_text); } function render_admin_panel_widgets_list() { return \plugins\WidgetBuilder\WidgetBuilderSetup::get_admin_panel_widgets(); } function render_admin_saved_widgets($location) { $output = ''; $all_widgets = \App\Models\Widget::where(['widget_location' => $location])->orderBy('widget_order','asc')->get(); foreach ($all_widgets as $widget) { $output .= \plugins\WidgetBuilder\WidgetBuilderSetup::render_widgets_by_name_for_admin([ 'name' => $widget->widget_name, 'id' => $widget->id, 'type' => 'update', 'order' => $widget->widget_order, 'location' => $widget->widget_location ]); } return $output; } function get_admin_sidebar_list() { return \plugins\WidgetBuilder\WidgetBuilderSetup::get_admin_widget_sidebar_list(); } function render_frontend_sidebar($location, $args = []) { $output = ''; $all_widgets = \App\Models\Widget::where(['widget_location' => $location])->orderBy('widget_order', 'ASC')->get(); foreach ($all_widgets as $widget) { $output .= \plugins\WidgetBuilder\WidgetBuilderSetup::render_widgets_by_name_for_frontend([ 'name' => $widget->widget_name, 'location' => $location, 'id' => $widget->id, 'column' => $args['column'] ?? false, 'column_class' => $args['column_class'] ?? null ]); } return $output; } function get_all_language() { $all_lang = Language::orderBy('default', 'DESC')->get(); return $all_lang; } function get_language_name_by_slug($slug) { $data = Language::where('slug', $slug)->first(); return $data->name; } function get_blog_category_by_id($id,$lang = null, $type = '') { $default_lang = $lang ?? LanguageHelper::default_slug(); $return_val = __('uncategorized'); $blog_cat = \App\BlogCategory::find($id); if (!empty($blog_cat)) { $return_val = $blog_cat->getTranslation('name',$default_lang); if ($type == 'link') { $return_val = '' . $blog_cat->name . ''; } } return $return_val; } function get_events_category_by_id($id,$lang = null, $type = '') { $default_lang = $lang ?? LanguageHelper::default_slug(); $return_val = __('uncategorized'); $event_cat = \App\EventCategory::find($id); if (!empty($event_cat)) { $return_val = $event_cat->getTranslation('name',$default_lang); if ($type == 'link') { $return_val = '' . $event_cat->name . ''; } } return $return_val; } function custom_amount_with_currency_symbol($amount, $text = false) { $amount = number_format((float) $amount, 0, '.', ','); $position = get_static_option('site_currency_symbol_position'); $symbol = site_currency_symbol($text); $return_val = ''.$symbol.''.$amount; if ($position == 'right') { $return_val = $amount .''.$symbol.''; } return $return_val; } function float_amount_with_currency_symbol($amount, $text = false) { $symbol = site_currency_symbol($text); $position = get_static_option('site_currency_symbol_position'); $thousand_separator = get_static_option('site_currency_thousand_separator') ?? ','; $decimal_separator = get_static_option('site_currency_decimal_separator') ?? '.'; if (empty($amount)) { $return_val = $symbol . $amount; if ($position == 'right') { $return_val = $amount . $symbol; } } //decimal enable disable $decimal_yes_or_no = get_static_option('enable_disable_decimal_point'); $amount = $decimal_yes_or_no != 'disable' ? $amount = number_format((float)$amount, 2, $decimal_separator, $thousand_separator) : $amount = number_format((int) $amount); $return_val = $symbol . $amount; if ($position == 'right') { $return_val = $amount .' '.$symbol; } return $return_val; } function admin_default_lang(){ $default_lang= Language::where(['default'=>1,'status'=>'publish'])->first(); return $default_lang->slug; } function front_default_lang(){ $default_lang= !empty(session()->get('lang')) ? session()->get('lang') : Language::where('default',1)->first()->slug; return $default_lang; } function get_default_language_direction(){ $default_lang = Language::where('default',1)->first(); return !empty($default_lang) ? $default_lang->direction : 'ltr'; } function multilang_field_display($fields,$field_name,$lang){ foreach ($fields as $field) { if($field->lang == $lang){ return $field->$field_name; } } } function get_product_category_by_id($id,$type = ''){ $return_val = __('uncategorized'); $prod_cat = \App\ProductCategory::with('lang_front')->find($id); if (!empty($prod_cat)){ $return_val = $prod_cat->lang_front->name; if ($type == 'link' ){ $return_val = ''.$prod_cat->lang_front->name.''; } } return $return_val; } function get_shipping_name_by_id($id) { $shipping_details = \App\ProductShipping::find($id); return !empty($shipping_details) ? $shipping_details->title : "Undefined"; } function get_image_category_name_by_id($id){ $return_val = __('uncategorized'); $category_details = \App\GalleryCategory::find($id); if (!empty($category_details)){ $return_val = $category_details->title; } return $return_val; } function is_tax_enable() { return get_static_option('product_tax') && get_static_option('product_tax_system') == 'exclusive' ? true : false; } function render_ratings($ratings) { $return_val = ''; switch ($ratings) { case(1): $return_val = ''; break; case(2): $return_val = ''; break; case(3): $return_val = ''; break; case(4): $return_val = ''; break; case(5): $return_val = ''; break; default: break; } return $return_val; } function get_cart_items() { $old_cart_item = session()->get('cart_item'); $return_val = !empty($old_cart_item) ? $old_cart_item : []; return $return_val; } function get_attachment_url_by_id($id,$size=null){ $return_val = get_attachment_image_by_id($id,$size); return $return_val['image_id'] ?? ''; } function all_lang_slugs(){ return Language::all()->pluck('slug')->toArray(); } function exist_slugs($model_data){ return $model_data->lang_all->pluck('lang')->toArray(); } function purify_html($html){ return strip_tags(\Mews\Purifier\Facades\Purifier::clean($html)); } function purify_html_raw($html){ return \Mews\Purifier\Facades\Purifier::clean($html); } //New Menu Functions function render_pages_list($lang = null){ $instance = new \plugins\MenuBuilder\MenuBuilderHelpers(); return $instance->get_static_pages_list($lang); } function render_dynamic_pages_list($lang = null){ $instance = new \plugins\MenuBuilder\MenuBuilderHelpers(); return $instance->get_post_type_page_list($lang); } function render_mega_menu_list($lang = null){ $instance = new \plugins\MenuBuilder\MegaMenuBuilderSetup(); return $instance->render_mega_menu_list($lang); } function render_draggable_menu($id){ $instance = new \plugins\MenuBuilder\MenuBuilderAdminRender(); return $instance->render_admin_panel_menu($id); } function render_frontend_menu($id){ $instance = new \plugins\MenuBuilder\MenuBuilderFrontendRender(); return $instance->render_frrontend_panel_menu($id); } function get_percentage($amount, $numb) { $numb = !empty($numb) ? $numb : 0; if ($amount > 0) { return round($numb / ($amount / 100), 2); } return 0; } function render_gallery_image_attachment_preview($gal_image) { if (empty($gal_image)) { return; } $output = ''; $gallery_images = explode('|', $gal_image); foreach ($gallery_images as $gl_img) { $work_section_img = get_attachment_image_by_id($gl_img, null, true); if (!empty($work_section_img)) { $output .= sprintf('
    ', $work_section_img['img_url']); } } return $output; } function render_attachment_preview_for_admin($id) { $markup = ''; $header_bg_img = get_attachment_image_by_id($id, null, true); $img_url = $header_bg_img['img_url'] ?? ''; $img_alt = $header_bg_img['img_alt'] ?? ''; if (!empty($img_url)) { $markup = sprintf('
    %2$s
    ', $img_url, $img_alt); } return $markup; } function get_page_slug($id,$default = null){ return Page::where('id',$id)->first()->slug ?? $default; } function get_navbar_style(){ $fallback = get_static_option('global_navbar_variant'); if (request()->routeIs('frontend.dynamic.page')){ $page_info = Page::where(['slug' => request()->path()])->first(); return !is_null($page_info) ? $page_info->navbar_variant : $fallback; }elseif(request()->routeIs('homepage')){ $page_info = Page::find(get_static_option('home_page')); return !is_null($page_info) ? $page_info->navbar_variant : $fallback; } return $fallback; } function get_footer_style(){ $fallback = get_static_option('global_footer_variant') ; if (request()->routeIs('frontend.dynamic.page')){ $page_info = Page::where(['slug' => request()->path()])->first(); return !is_null($page_info) ? $page_info->footer_variant : $fallback; }elseif(request()->routeIs('homepage')){ $page_info = Page::find(get_static_option('home_page')); return !is_null($page_info) ? $page_info->footer_variant : $fallback; } return $fallback; } function render_site_title($title){ $site_title = get_static_option('site_title'); return << {$title} - {$site_title} HTML; } function render_site_meta(){ $user_lang = LanguageHelper::user_lang_slug(); $site_tags = get_static_option('site_meta_tags'); $site_desc = get_static_option('site_meta_description'); $site_og_meta_title = get_static_option('og_meta_title'); $site_og_meta_description = get_static_option('og_meta_description'); $site_og_meta_site_name = get_static_option('og_meta_site_name'); $site_og_meta_url = get_static_option('og_meta_url'); $site_og_meta_image = render_og_meta_image_by_attachment_id(get_static_option('og_meta_image')); $site_og_meta_image_twitter = render_twitter_meta_image_by_attachment_id(get_static_option('og_meta_image')) ; $website_url = \URL::current(); return << {$site_og_meta_image} {$site_og_meta_image_twitter} HTML; } function render_page_meta_data($blog_post){ $user_lang = LanguageHelper::user_lang_slug(); $site_url = url('/'); $meta_title = $blog_post->meta_data->meta_title; $site_tags = $blog_post->meta_data->meta_tags; $site_description = $blog_post->meta_data->meta_description; $facebook_meta_tags = $blog_post->meta_data->facebook_meta_tags; $facebook_meta_description = $blog_post->meta_data->facebook_meta_description; $facebook_meta_image = get_attachment_image_by_id($blog_post->meta_data->facebook_meta_image)['img_url'] ?? ""; $twitter_meta_tags = $blog_post->meta_data->twitter_meta_tags; $twitter_meta_description = $blog_post->meta_data->twitter_meta_description; $twitter_meta_image = get_attachment_image_by_id($blog_post->meta_data->twitter_meta_image)['img_url'] ?? ""; return << HTML; } function render_page_meta_data_for_service($service_details){ $user_lang = LanguageHelper::user_lang_slug(); $site_url = route('service.list.details',$service_details->slug); $meta_title = $service_details->metaData->meta_title ?? ''; $site_tags = $service_details->metaData->meta_tags ?? ''; $site_description = $service_details->metaData->meta_description ?? ''; $facebook_meta_tags = $service_details->metaData->facebook_meta_tags ?? ''; $facebook_meta_description = $service_details->metaData->facebook_meta_description ?? ''; $facebook_meta_image = get_attachment_image_by_id($service_details->metaData->facebook_meta_image ?? '')['img_url'] ?? ''; $twitter_meta_tags = $service_details->metaData->twitter_meta_tags ?? ''; $twitter_meta_description = $service_details->metaData->twitter_meta_description ?? ''; $twitter_meta_image = get_attachment_image_by_id($service_details->metaData->twitter_meta_image ?? '')['img_url'] ?? ''; $title = $service_details->title; return <<{$title} HTML; } function get_blog_slug_by_page_id($id){ $page_details = Page::find($id); return is_null($page_details) ? 'blog' : $page_details->slug; } function get_blog_category($data){ $colors = ['text-primary','text-danger','text-success','text-info','text-dark']; foreach($data->category_id as $key => $cat) { ''. '. $cat->getTranslation("title", $default_lang, true) .' .''; } } function toastr_success($success){ Toastr::success($success,__('Success!'), ["positionClass" => "toast-top-right","closeButton" => "true","progressBar" => "true"]); } function toastr_error($success){ Toastr::error($success,__('Error!'), ["positionClass" => "toast-top-right","closeButton" => "true","progressBar" => "true"]); } function toastr_warning($success){ Toastr::warning($success,__('Warning!'), ["positionClass" => "toast-top-right","closeButton" => "true","progressBar" => "true"]); } function static_text(){ return [ 'book_now_btn' => __('Book Now'), 'book_appoinment' => __('Book Appointment'), 'read_more_btn' => __('View Details'), 'select_category' => __('Select Category'), 'select_sub_category' => __('Select Subcategory'), 'select_star' => __('Select Star'), 'one_star' => __('One Star'), 'two_star' => __('Two Star'), 'three_star' => __('Three Star'), 'four_star' => __('Four Star'), 'five_star' => __('Five Star'), 'sort_by' => __('Sort By'), 'latest_service' => __('Latest Service'), 'lowest_price' => __('Lowest Price'), 'highest_price' => __('Highest Price'), 'all_services_text' => __('All Services'), 'service' => __('Service'), 'start_at' => __('Starting at'), 'become_a_seller' => __('Become A Seller'), 'get_in_touch' => __('Get In Touch'), 'your_name' => __('Your Name'), 'email_address' => __('Email Address'), 'phone_number' => __('Phone Number'), 'address' => __('Address'), 'comments' => __('Comments'), 'send_message' => __('Send Message'), 'hover_color_two' => 'style-02', 'back_to_top_2' => 'style-02', 'back_to_top_3' => 'style-03', ]; } function getSlugFromReadingSetting ($reading_type) { $page_id = get_static_option($reading_type); $page = Page::find($page_id); if ($page) { return $page->slug; } return null; } function getPageDetailsFromSlug ($reading_type) { $page_id = get_static_option($reading_type); return Page::find($page_id); } function ratting_star($ratting){ $icon = ""; $string = ""; if($ratting < 1.5){ $string = ""; }elseif ($ratting >= 1.5 && $ratting < 2){ $string = ""; }elseif ($ratting >= 2 && $ratting < 2.5){ $string = ""; }elseif ($ratting >= 2.5 && $ratting < 3){ $string = ""; }elseif ($ratting >= 3 && $ratting < 3.5){ $string = ""; }elseif ($ratting >= 3.5 && $ratting < 4){ $string = ""; }elseif ($ratting >= 4 && $ratting < 4.5){ $string = ""; } elseif ($ratting >= 4.5 && $ratting <= 5){ $string = ""; } return $string; } function moduleExists($name){ $module_status = json_decode(file_get_contents(__DIR__.'/../../modules_statuses.json')); return property_exists($module_status,$name) ? $module_status->$name : false; } function subscriptionModuleExistsAndEnable($name){ $module_status = json_decode(file_get_contents(__DIR__.'/../../modules_statuses.json')); $commission_type = \Illuminate\Support\Facades\Cache::remember('admin_commission_data',60 * 60 * 24,function (){ $AdminCommission = \App\AdminCommission::first(); return optional($AdminCommission)->system_type; }); if ($name === 'Subscription' && $commission_type === 'commission'){ return false; } return property_exists($module_status,$name) ? $module_status->$name : false; } function wrapped_id($id){ return Str::random(30).$id.Str::random(30); } function commission_amount($price,$individual_commission,$commission_type,$commission_charge) { if($individual_commission){ $commission_amount = $individual_commission->admin_commission_type == 'fixed' ? $individual_commission->admin_commission_charge : ($price*$individual_commission->admin_commission_charge/100); }else{ $commission_amount = $commission_type == 'fixed' ? $commission_charge : ($price*$commission_charge/100); } return $commission_amount; } function transaction_amount($price,$transaction_type,$transaction_charge) { return $transaction_type == 'fixed' ? $transaction_charge : ($price*$transaction_charge/100); } //admin notification function notificationToAdmin($identity,$user_id,$type,$msg) { AdminNotification::create([ 'identity'=>$identity, 'user_id'=>$user_id, 'type'=>$type, 'message'=>$msg, ]); } function freelancer_notification($identity, $freelancer_id, $type, $msg) { $last_notification = FreelancerNotification::create([ 'identity'=>$identity, 'freelancer_id'=>$freelancer_id, 'type'=>$type, 'message'=>$msg ]); $freelancer = User::where('id',$freelancer_id)->first(); $notificationBody = [ 'click_action' => 'FLUTTER_NOTIFICATION_CLICK', 'title' => __('', [ "message" => $last_notification->message ]), 'id' => $last_notification->id, 'identity' => $identity, 'body' => $last_notification->message, 'description' => '', 'type' => $type, 'sound' => 'default', 'fcm_device' => '' ]; try{ if($freelancer->firebase_device_token){ $credentialsPath = storage_path('app/firebase/firebase_credentials.json'); // Load the credentials from the JSON file $jsonCredentials = file_get_contents($credentialsPath); $credentials = json_decode($jsonCredentials, true); // Convert to JSON $jsonCredentials = json_encode($credentials); // Initialize Firebase Admin SDK $factory = (new Factory)->withServiceAccount($jsonCredentials); $messaging = $factory->createMessaging(); // Construct the message $message = CloudMessage::new() // ->withNotification(Notification::create($last_notification->type, $last_notification->message)) ->withData($notificationBody); $response = $messaging->sendMulticast($message, $freelancer?->firebase_device_token); } }catch (\Exception $e){} } function client_notification($identity, $client_id, $type, $msg) { $last_notification = ClientNotification::create([ 'identity'=>$identity, 'client_id'=>$client_id, 'type'=>$type, 'message'=>$msg ]); $client_for_device = User::where('id',$client_id)->first(); $notificationBody = [ 'click_action' => 'FLUTTER_NOTIFICATION_CLICK', 'title' => __('', [ "message" => $last_notification->message ]), 'id' => $last_notification->id, 'identity' => $identity, 'body' => $last_notification->message, 'description' => '', 'type' => $type, 'sound' => 'default', 'fcm_device' => '' ]; try { if($client_for_device->firebase_device_token){ $credentialsPath = storage_path('app/firebase/firebase_credentials.json'); // Load the credentials from the JSON file $jsonCredentials = file_get_contents($credentialsPath); $credentials = json_decode($jsonCredentials, true); // Convert to JSON $jsonCredentials = json_encode($credentials); // Initialize Firebase Admin SDK $factory = (new Factory)->withServiceAccount($jsonCredentials); $messaging = $factory->createMessaging(); // Construct the message $message = CloudMessage::new() // ->withNotification(Notification::create($last_notification->type, $last_notification->message)) ->withData($notificationBody); $response = $messaging->sendMulticast($message,$client_for_device?->firebase_device_token ); } }catch (\Exception $e){} } function getLastOrderId($order_id) { $random_order_id_1 = Str::random(30); $random_order_id_2 = Str::random(30); $new_order_id = $random_order_id_1.$order_id.$random_order_id_2; return $new_order_id; } function project_rating($project_id) { $project_complete_orders = Order::select('id','identity','status')->where('identity',$project_id)->where('status',3)->get(); $project_complete_order_count = $project_complete_orders->count(); $count = 0; $rating_count = 0; $total_rating = 0; foreach($project_complete_orders as $order){ $rating = Rating::where('order_id',$order->id)->where('sender_type',1)->first(); if($rating){ $total_rating = $total_rating+$rating->rating; $count = $count+1; $rating_count = $rating_count+1; } } $avg_rating = $count > 0 ? $total_rating/$count : 0; if($project_complete_order_count >= 1 && $avg_rating >=1 ){ $string = '
    '.round($avg_rating,1).'('.$rating_count.')
    '.$project_complete_order_count.' '.__("Orders Completed").' '; }else if($project_complete_order_count >= 1){ $string = '
    '.__("No Review").'
    '.$project_complete_order_count.' '.__("Orders Completed").' '; } else if($project_complete_order_count < 1 && $avg_rating <1) { $string = '
    '.__("No Review").'
    '.__("No Order").' '; } return $string; } function freelancer_rating($freelancer_id, $header = null) { $complete_orders = Order::select('id','identity','status')->where('freelancer_id',$freelancer_id)->where('status',3)->get(); $complete_orders_count = $complete_orders->count(); $count = 0; $rating_count = 0; $total_rating = 0; foreach($complete_orders as $order){ $rating = Rating::where('order_id',$order->id)->where('sender_type',1)->first(); if($rating){ $total_rating = $total_rating+$rating->rating; $count = $count+1; $rating_count = $rating_count+1; } } $avg_rating = $count > 0 ? $total_rating/$count : 0; $string = ''; if($header == null){ if($complete_orders_count >= 1 && $avg_rating >= 1){ $string = '

    '.round($avg_rating,1).' ('.$rating_count.')

    '.$complete_orders_count.' '.__("Orders Completed").''; }elseif($avg_rating >= 1){ $string = ' '.$complete_orders_count.' '.__("Orders Completed").''; } return $string; }else{ return round($avg_rating,1); } } function freelancer_rating_for_profile_details_page($freelancer_id) { $complete_orders = Order::select('id','identity','status')->where('freelancer_id',$freelancer_id)->where('status',3)->get(); $complete_orders_count = $complete_orders->count(); $count = 0; $rating_count = 0; $total_rating = 0; foreach($complete_orders as $order){ $rating = Rating::where('order_id',$order->id)->where('sender_type',1)->first(); if($rating){ $total_rating = $total_rating+$rating->rating; $count = $count+1; $rating_count = $rating_count+1; } } $avg_rating = $count > 0 ? $total_rating/$count : 0; if($complete_orders_count >= 1 && $rating_count >= 1){ $string = '
    ' .round($avg_rating,1.).'('.$rating_count.')
    '; }else{ $string = ''; } return $string; } function freelancer_rating_for_job_details_page($freelancer_id) { $complete_orders = Order::select('id','identity','status')->where('freelancer_id',$freelancer_id)->where('status',3)->get(); $complete_orders_count = $complete_orders->count(); $count = 0; $rating_count = 0; $total_rating = 0; foreach($complete_orders as $order){ $rating = Rating::where('order_id',$order->id)->where('sender_type',1)->first(); if($rating){ $total_rating = $total_rating+$rating->rating; $count = $count+1; $rating_count = $rating_count+1; } } $avg_rating = $count > 0 ? $total_rating/$count : 0; if($complete_orders_count >= 1){ $string = '

    '.round($avg_rating,1).' ('.$rating_count.')

    '; }else{ $string = ''; } return $string; } function freelancer_complete_order_count($freelancer_id = null) { $order_count = Order::where('freelancer_id',$freelancer_id)->where('status',3)->count(); if($order_count >=1){ $string = ''.$order_count. ' ' .__("Jobs Completed").' '; }else{ $string =''; } return $string; } function client_complete_order_count($client_id = null) { return Order::where('freelancer_id',$client_id)->where('status',3)->count(); } function freelancer_skill_match_with_job_skill($freelancer_id = null, $job_id =null) { $freelancer_skills_string = UserSkill::select('skill')->where('user_id',$freelancer_id)->first(); $freelancer_skills_array = explode(', ',$freelancer_skills_string->skill ?? ''); $job_skill = JobPost::with(['job_skills'])->where('id',$job_id)->first(); $job_skills_count = $job_skill->job_skills->count(); if ($job_skills_count > 0) { $calculate_percentage = round(100/$job_skills_count,2); } else { $calculate_percentage = 0; } $total_match_percentage = 0; foreach($job_skill->job_skills as $skill){ if(in_array($skill->skill, $freelancer_skills_array)){ $total_match_percentage = $total_match_percentage + $calculate_percentage; } } $string = ''; if($total_match_percentage >= 1){ $string = ''.round($total_match_percentage,0).' %'. __("Match").''; } return $string; } function freelancer_level($freelancer_id,$call_from_telent_page = null) { //get evel with level rules $levels = \Modules\FreelancerLevel\Entities\FreelancerLevel::with('level_rule') ->whereHas('level_rule') ->where('status',1) ->get(); $current_time = Carbon\Carbon::now(); $current_time = $current_time->toDateTimeString(); $freelancer_details = \App\Models\User::select('id','created_at')->where('id',$freelancer_id)->first(); $diff_in_days = $freelancer_details->created_at->diffInDays($current_time); //get freelancer criteria for level $total_order = Order::where('freelancer_id',$freelancer_id)->where('status',3)->count(); $total_earnings = Order::where('freelancer_id',$freelancer_id)->where('status',3)->sum('payable_amount'); $avg_rating = freelancer_rating_for_level($freelancer_id); foreach ($levels as $level){ if ($level->level_rule->period >= 1 && $level->level_rule->period < 3){ if($diff_in_days >= 30 && $diff_in_days < 90){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ if($call_from_telent_page == 'talent') { $freelancer_level = '
    ' . render_image_markup_by_attachment_id($level->image) . ' ' . '' . $level->level . '
    '; }else{ $freelancer_level = '('.$level->level.')'; } } } } elseif($level->level_rule->period >= 3 && $level->level_rule->period < 6){ if($diff_in_days >= 90 && $diff_in_days < 180){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ if($call_from_telent_page == 'talent') { $freelancer_level = '
    ' . render_image_markup_by_attachment_id($level->image) . ' ' . '' . $level->level . '
    '; }else{ $freelancer_level = '('.$level->level.')'; } } } } elseif($level->level_rule->period >= 6 && $level->level_rule->period < 9){ if($diff_in_days >= 180 && $diff_in_days < 270){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ if($call_from_telent_page == 'talent') { $freelancer_level = '
    ' . render_image_markup_by_attachment_id($level->image) . ' ' . '' . $level->level . '
    '; }else{ $freelancer_level = '('.$level->level.')'; } } } } elseif($level->level_rule->period >= 9 && $level->level_rule->period < 12){ if($diff_in_days >= 270 && $diff_in_days < 360){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ if($call_from_telent_page == 'talent') { $freelancer_level = '
    ' . render_image_markup_by_attachment_id($level->image) . ' ' . '' . $level->level . '
    '; }else{ $freelancer_level = '('.$level->level.')'; } } } } elseif($level->level_rule->period >= 12){ if($diff_in_days>= 360){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ if($call_from_telent_page == 'talent') { $freelancer_level = '
    ' . render_image_markup_by_attachment_id($level->image) . ' ' . '' . $level->level . '
    '; }else{ $freelancer_level = '('.$level->level.')'; } } } } } return $freelancer_level ?? ''; } function freelancer_level_api($freelancer_id,$call_from_telent_page = null) { if(moduleExists('FreelancerLevel')){ //get level with level rules $levels = \Modules\FreelancerLevel\Entities\FreelancerLevel::with('level_rule') ->whereHas('level_rule') ->where('status',1) ->get(); $current_time = Carbon\Carbon::now(); $current_time = $current_time->toDateTimeString(); $freelancer_details = \App\Models\User::select('id','created_at')->where('id',$freelancer_id)->first(); $diff_in_days = $freelancer_details->created_at->diffInDays($current_time); //get freelancer criteria for level $total_order = Order::where('freelancer_id',$freelancer_id)->where('status',3)->count(); $total_earnings = Order::where('freelancer_id',$freelancer_id)->where('status',3)->sum('payable_amount'); $avg_rating = freelancer_rating_for_level($freelancer_id); foreach ($levels as $level){ if ($level->level_rule->period >= 1 && $level->level_rule->period < 3){ if($diff_in_days >= 30 && $diff_in_days < 90){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ $freelancer_level = ucfirst($level->level); $level_img = get_attachment_url_only($level->image); } } } elseif($level->level_rule->period >= 3 && $level->level_rule->period < 6){ if($diff_in_days >= 90 && $diff_in_days < 180){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ $freelancer_level = ucfirst($level->level); $level_img = get_attachment_url_only($level->image); } } } elseif($level->level_rule->period >= 6 && $level->level_rule->period < 9){ if($diff_in_days >= 180 && $diff_in_days < 270){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ $freelancer_level = ucfirst($level->level); $level_img = get_attachment_url_only($level->image); } } } elseif($level->level_rule->period >= 9 && $level->level_rule->period < 12){ if($diff_in_days >= 270 && $diff_in_days < 360){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ $freelancer_level = ucfirst($level->level); $level_img = get_attachment_url_only($level->image); } } } elseif($level->level_rule->period >= 12){ if($diff_in_days>= 360){ if($total_order >= $level?->level_rule?->complete_order && $total_earnings >= $level?->level_rule?->earning && $avg_rating >= $level?->level_rule?->avg_rating){ $freelancer_level = ucfirst($level->level); $level_img = get_attachment_url_only($level->image); } } } } } return [ 'freelancer_level' => $freelancer_level ?? null, 'level_img' => $level_img ?? null ]; } //freelancer rating for level function freelancer_rating_for_level($freelancer_id) { $complete_orders = Order::select('id','identity','status') ->where('freelancer_id',$freelancer_id) ->where('status',3) ->get(); $complete_orders_count = $complete_orders->count(); $count = 0; $rating_count = 0; $total_rating = 0; foreach($complete_orders as $order){ $rating = Rating::where('order_id',$order->id)->where('sender_type',1)->first(); if($rating){ $total_rating = $total_rating+$rating->rating; $count = $count+1; $rating_count = $rating_count+1; } } $avg_rating = $count > 0 ? $total_rating/$count : 0; if($complete_orders_count >= 1 && $rating_count >= 1){ $string = round($avg_rating,1); }else{ $string = ''; } return $string; } function payment_gateway_list_for_api() { $all_gateways = ['wallet','paypal','manual_payment','mollie','paytm','stripe','razorpay','flutterwave','paystack','marcadopago','instamojo','cashfree','payfast','midtrans','squareup','cinetpay','paytabs','billplz','zitopay','sitesway','toyyibpay','authorize_dot_net','iyzipay','pagali']; return $all_gateways; } function render_frontend_cloud_image_if_module_exists($path = '', $load_from=0) { $ena_dis_front_CDN = get_static_option('front_cdn_enable_disable') ?? ''; if(Storage::getDefaultDriver() == 's3'){ $cloudfrontCDN = get_static_option('aws_url') ?? ''; if($ena_dis_front_CDN != 'enable'){ return Storage::renderUrl($path, load_from: $load_from); }else{ return $cloudfrontCDN.'/'.$path; } } if(Storage::getDefaultDriver() == 'wasabi') { return Storage::renderUrl($path, load_from: $load_from); } if(Storage::getDefaultDriver() == 'cloudFlareR2') { return Storage::renderUrl($path, load_from: $load_from); return Storage::renderUrl($path, load_from: $load_from); } } function add_frontend_cloud_image_if_module_exists($upload_folder='', $image='',$imageName='',$public_or_private='') { return Storage::putFileAs($upload_folder, $image, $imageName, $public_or_private); } function delete_frontend_cloud_image_if_module_exists($path='') { $driver = get_static_option('storage_driver'); if (in_array($driver, ['wasabi', 's3', 'cloudFlareR2'])) { return Storage::disk($driver)->delete($path); } }