Ejemplo n.º 1
0
 public function get_index($painter = 'all')
 {
     $paintings = null;
     $painter_name = null;
     if ($painter == 'all') {
         $paintings = Painting::with('tags')->order_by('created_at')->paginate(Config::get('app.paginator_count'));
         $painter_name = __('application.all');
     } else {
         $paintings = Painting::with('tags')->where('painter', 'LIKE', '%' . $painter . '%')->order_by('created_at')->paginate(Config::get('app.paginator_count'));
         $painter_name = $painter == 'brouwer' ? __('application.brouwer') : __('application.jacas');
     }
     return View::make('work.index')->with('title', HtmlHelpers::name('work') . ' - ' . $painter_name)->with('nav', 'work')->with('painter', $painter_name)->with('paintings', $paintings);
 }
Ejemplo n.º 2
0
 public static function search_paintings($q)
 {
     $cleaner = new Cleaner();
     $cleaned_array = $cleaner->parseString($q);
     $stemmed_array = array_map('PorterStemmer::Stem', $cleaned_array);
     $paintings = Painting::with('tags')->distinct();
     $paintings = $paintings->where(function ($query) use($stemmed_array) {
         $query->where('name', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('name', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $paintings = $paintings->or_where(function ($query) use($stemmed_array) {
         $query->where('dimensions', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('dimensions', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $paintings = $paintings->or_where(function ($query) use($stemmed_array) {
         $query->where('type', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('type', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $paintings = $paintings->or_where(function ($query) use($stemmed_array) {
         $query->where('painter', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('painter', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $paintings = $paintings->or_where(function ($query) use($stemmed_array) {
         $query->where('year', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('year', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $paintings = $paintings->or_where(function ($query) use($stemmed_array) {
         $query->where('comment', 'LIKE', '%' . array_get($stemmed_array, 0) . '%');
         for ($i = 1; $i < count($stemmed_array); $i++) {
             $query->or_where('comment', 'LIKE', '%' . array_get($stemmed_array, $i) . '%');
         }
     });
     $paintings = $paintings->order_by('created_at', 'DESC');
     $paintings = $paintings->paginate(Config::get('app.paginator_count'));
     return array(implode(' ', $cleaned_array), $paintings);
 }