예제 #1
0
 public static function searchPackages($term, $search_type)
 {
     $packages = [];
     switch ($search_type) {
         case 'name':
             $search = self::select('package', 'pkgver', 'repo')->where('package', 'like', "%{$term}%")->where('del', 0)->where('abs', 0)->get();
             break;
         case 'description':
             $search = self::select('package', 'pkgver', 'repo')->where(function ($q) use($term) {
                 foreach (Files::searchDescriptions($term) as $pkgname) {
                     $q->orWhere('package', $pkgname);
                 }
             })->where('del', 0)->where('abs', 0)->get();
             break;
         case 'name-description':
             $search = self::select('package', 'pkgver', 'repo')->where(function ($q) use($term) {
                 foreach (Files::searchDescriptions($term) as $pkgname) {
                     $q->orWhere('package', $pkgname);
                 }
             })->orWhere('package', 'like', "%{$term}%")->where('del', 0)->where('abs', 0)->get();
             break;
     }
     foreach ($search as $package) {
         array_push($packages, ['package' => $package->package, 'pkgver' => $package->pkgver, 'repo' => $package->repo, 'pkgdesc' => Files::getDescription($package->package)]);
     }
     return $packages;
 }
예제 #2
0
    $perpage = 50;
    // number of packages per page
    Head::setTitle('Packages');
    if ($pkgrequest == 'page' || $pkgrequest == 'search' && $arg1 == 1) {
        return view('website.packages', ['package' => true, 'packages' => Abs::getPackages($arg1 - 1, $perpage), 'pages' => Abs::getNumPages($perpage) + 1, 'page' => $arg1, 'search_type' => 'name-description', 'search_term' => '']);
    } else {
        if ($pkgrequest == 'search') {
            $search_type = $arg2 == 1 ? 'name' : $arg2;
            if (!preg_match('/^(name|description|name-description)$/', $search_type)) {
                abort(404);
            }
            return view('website.packages', ['package' => true, 'packages' => Abs::searchPackages($arg1, $search_type), 'pages' => 1, 'search_type' => $search_type, 'search_term' => $arg1]);
        } else {
            if (Abs::exists($pkgrequest)) {
                $package = Abs::getPackage($pkgrequest);
                return view('website.packages', ['package' => $package, 'skip_arch' => Abs::getSkipStates($package->skip), 'pkgdesc' => Files::getDescription($pkgrequest)]);
            } else {
                return view('website.packages', ['package' => false]);
            }
        }
    }
});
Route::get('/team', function () {
    Head::setTitle('Team');
    return view('website.team');
});
Route::get('/wiki/{path?}', function ($path = 'index') {
    if ($path == 'index') {
        Head::setTitle('Wiki');
    } else {
        $path = preg_replace('/\\/$/', '', $path);