$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');
* 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()} ]] ");