function($q) { $q->select('users.id', 'username'); }, 'tags' => function($q) { $q->select('tags.id', 'name', 'slug'); }]) ->select('id', 'user_id', 'title', 'created_at', 'updated_at') ->where('visible', Paste::VISIBILITY_PUBLIC) ->where('hidden', false) ->whereRaw("((expiry IS NULL) OR ((expiry != 'SELF') AND (expiry > NOW())))"); if (!empty($filter_value)) { if ($filter_value === 'untagged') { $pastes = $pastes->doesntHave('tags'); } else { $pastes = $pastes->where('title', 'LIKE', '%' . escapeLikeQuery($filter_value) . '%') ->orWhereHas('tags', function($q) use ($filter_value) { $q->where('name', 'LIKE', '%' . escapeLikeQuery($filter_value) . '%'); }); } } $pastes = $pastes->orderBy('id', 'desc'); $total_results = $pastes->count(); $pastes = $pastes->limit($per_page)->offset($per_page * $current_page); $pastes = $pastes->get(); // Temp count for untagged pastes $total_untagged = Paste::doesntHave('tags')->count(); updatePageViews(); $page_template = 'archive'; $page_title = 'Pastes Archive'; $script_bundles[] = 'archive'; require_once(__DIR__ . '/../theme/' . $default_theme . '/common.php');