$provider) { $all[$key] = $provider; $all[$key]['type'] = 'standard'; } return $all; } /** * Loops through users apps to see if app is a search provider, might be worth * looking into caching this at some point * * @return array */ public static function appProviders() { $providers = []; $userapps = Item::all(); foreach ($userapps as $app) { if (empty($app->class)) { continue; } if (($provider = Item::isSearchProvider($app->class)) !== false) { $name = Item::nameFromClass($app->class); $providers[$app->id] = [ 'id' => $app->id, 'type' => $provider->type, 'class' => $app->class, 'url' => $app->url, 'name' => $app->title, 'colour' => $app->colour, 'icon' => $app->icon, 'description' => $app->description, ]; } } return $providers; } /** * Outputs the search form * * @return string */ public static function form(): string { $output = ''; $homepage_search = Setting::fetch('homepage_search'); $search_provider = Setting::where('key', '=', 'search_provider')->first(); $user_search_provider = Setting::fetch('search_provider'); //die(print_r($search_provider)); //die(var_dump($user_search_provider)); // return early if search isn't applicable if ((bool) $homepage_search !== true) { return $output; } $user_search_provider = $user_search_provider ?? 'none'; if ((bool) $search_provider) { if ((bool) $user_search_provider) { $name = 'app.options.'.$user_search_provider; $provider = self::providerDetails($user_search_provider); $output .= '