Exemple #1
0
            $q = ItemQuery::create();
            $q->filterByName("%{$search}%")->orWhere("tp_name LIKE ?", "%{$search}%", \PDO::PARAM_STR)->orWhere("clean_name LIKE ?", "%{$search}%", \PDO::PARAM_STR)->orWhere("clean_tp_name LIKE ?", "%{$search}%", \PDO::PARAM_STR);
            return $q;
        };
    }
    $q = $getQ($search);
    if ($q->count() == 0 && $search != trim($search)) {
        $search = trim($search);
        $q = $getQ($search);
    }
    if ($page == 1 && $q->count() == 1) {
        $item = $q->findOne();
        return $app->redirect($app['url_generator']->generate($route, array('dataId' => $item->getDataId())));
    }
    if ($recipes) {
        $content = recipe_list($app, $request, $q, $page, 25, array('search' => $search, 'type' => 'search', 'included' => true));
    } else {
        $content = item_list($app, $request, $q, $page, 25, array('search' => $search, 'type' => 'search', 'included' => true));
    }
    $params = array();
    if ($minLevelFilter = $request->get('min_level', null)) {
        $params['min_level'] = $minLevelFilter;
    }
    if ($maxLevelFilter = $request->get('max_level', null)) {
        $params['max_level'] = $maxLevelFilter;
    }
    // use generic function to render
    return $app['twig']->render('search.html.twig', array('recipes' => $recipes, 'content' => $content, 'search' => $search, 'params' => $params));
})->assert('search', '[^/]*')->assert('page', '-?\\d*')->convert('page', $toInt)->convert('search', function ($search) {
    return urldecode($search);
})->value('search', null)->value('page', 1)->bind('search');
Exemple #2
0
 *  route /crafting
 * ----------------------
 */
$app->get("/crafting/{discipline}/{page}", function (Request $request, $discipline, $page) use($app) {
    $app->setCraftingActive();
    $page = $page > 0 ? $page : 1;
    $q = RecipeQuery::create();
    if ($discipline == -1) {
        $discipline = null;
    }
    if (!is_null($discipline)) {
        $discipline = DisciplineQuery::create()->findPk($discipline);
        $q->filterByDiscipline($discipline);
    }
    // use generic function to render
    return recipe_list($app, $request, $q, $page, 50, array('discipline' => $discipline));
})->assert('discipline', '-?\\d*')->assert('page', '-?\\d*')->value('page', 1)->bind('crafting');
/**
 * ----------------------
 *  route /recipe
 * ----------------------
 */
$app->get("/recipe/{dataId}", function (Request $request, $dataId) use($app) {
    $app->setCraftingActive();
    $recipe = RecipeQuery::create()->findPK($dataId);
    if (!$recipe) {
        return $app->abort(404, "Page does not exist.");
    }
    $item = $recipe->getResultItem();
    if (!$item) {
        return $app->abort(404, "Recipe not supported yet, we don't have the resulting item in the database yet [[ {$recipe->getName()} ]] [[ {$recipe->getResultItemId()} ]] ");