range field type added

This commit is contained in:
Onur 2019-07-23 10:48:17 +03:00
parent 2cb45ad708
commit 970e942663
3 changed files with 67 additions and 3 deletions

View File

@ -145,6 +145,29 @@
</div><!-- panel --> </div><!-- panel -->
{% endfor %} {% endfor %}
{% for key,value in ranges %}
<!-- panel -->
<div class="panel-default panel-faq">
<!-- panel-heading -->
<div class="panel-heading">
<a data-toggle="collapse" data-parent="#accordion" href="#accordion-range{{ value.id }}">
<h4 class="panel-title">{{ value.name }}<span class="pull-right"><i class="fa fa-minus"></i></span></h4>
</a>
</div><!-- panel-heading -->
<div id="accordion-range{{ value.id }}" class="panel-collapse collapse in">
<!-- panel-body -->
<div class="panel-body">
<input type="number" class="price-input" value="{{ app.request.get('min_cf_'~ value.id) }}" name="min_cf_{{ value.id }}" min="0" placeholder="Min"> - <input class="price-input" type="number" value="{{ app.request.get('max_cf_'~ value.id) }}" name="max_cf_{{ value.id }}" placeholder="Max">
</div><!-- panel-body -->
</div>
</div><!-- panel -->
{% endfor %}
<!-- panel --> <!-- panel -->
<div class="panel-default panel-faq"> <div class="panel-default panel-faq">
<!-- panel-heading --> <!-- panel-heading -->

View File

@ -56,6 +56,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->where('advs_advs.slug', '!=', ""); $query = $query->where('advs_advs.slug', '!=', "");
$query = $query->where('advs_advs.status', 'approved'); $query = $query->where('advs_advs.status', 'approved');
$query = $query->where('advs_advs.finish_at', '>', date('Y-m-d H:i:s')); $query = $query->where('advs_advs.finish_at', '>', date('Y-m-d H:i:s'));
if (!empty($param['keyword'])) { if (!empty($param['keyword'])) {
$delimiter = '_'; $delimiter = '_';
$keyword = str_slug($param['keyword'], $delimiter); $keyword = str_slug($param['keyword'], $delimiter);
@ -103,10 +104,11 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
foreach ($param as $para => $value) { foreach ($param as $para => $value) {
if (substr($para, 0, 3) === "cf_") { if (substr($para, 0, 3) === "cf_") {
$id = substr($para, 3, 3); $id = substr($para, 3);
$customParameters[] = ['id' => "$.cf" . $id, 'value' => $param[$para]]; $customParameters[] = ['id' => "$.cf" . $id, 'value' => $param[$para]];
} }
} }
foreach ($customParameters as $key => $customParameter) { foreach ($customParameters as $key => $customParameter) {
if ($key == 0) { if ($key == 0) {
$jsonQuery = "("; $jsonQuery = "(";
@ -140,6 +142,43 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->whereRaw($jsonQuery); $query = $query->whereRaw($jsonQuery);
} }
if (!empty($param['max_price'])) {
$num = $param['max_price'];
$int = (int)$num;
$column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') <=" . $int;
$query = $query->whereRaw($column);
}
if (!empty($param['max_price'])) {
$num = $param['max_price'];
$int = (int)$num;
$column = "JSON_EXTRACT(foreign_currencies, '$." . $param['currency'] . "') <=" . $int;
$query = $query->whereRaw($column);
}
foreach ($param as $para => $value) {
if (substr($para, 4, 3) === "cf_") {
$id = substr($para, 7);
$minmax = substr($para, 0, 3);
if($minmax == 'min'){
$num = $param[$minmax.'_cf_'.$id];
$int = (int)$num;
$column = "JSON_EXTRACT(cf_json, '$.cf" . $id . "') >= '" . $int ."'";
$query = $query->whereRaw($column);
}
if($minmax == 'max'){
$num = $param[$minmax.'_cf_'.$id];
$int = (int)$num;
$column = "JSON_EXTRACT(cf_json, '$.cf" . $id . "') <= '" . $int ."'";
$query = $query->whereRaw($column);
}
}
}
if (!empty($param['dlong']) && !empty($param['dlat']) && !empty($param['distance'])) { if (!empty($param['dlong']) && !empty($param['dlat']) && !empty($param['distance'])) {
$query = $query->whereNotNull('coor'); $query = $query->whereNotNull('coor');
$query = $query->whereRaw("ST_DISTANCE(ST_GeomFromText('POINT(" . $param['dlong'] . " " . $param['dlat'] . ")'), coor) < " . $param['distance']); $query = $query->whereRaw("ST_DISTANCE(ST_GeomFromText('POINT(" . $param['dlong'] . " " . $param['dlat'] . ")'), coor) < " . $param['distance']);
@ -155,6 +194,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$join->on('advs_advs.id', '=', 'dopings_dopings.adv_name_id'); $join->on('advs_advs.id', '=', 'dopings_dopings.adv_name_id');
$join->where('dopings_dopings.doping_type_id', '=', 4); $join->where('dopings_dopings.doping_type_id', '=', 4);
}); });
$query = $query->select('advs_advs.*', 'dopings_dopings.id as doping'); $query = $query->select('advs_advs.*', 'dopings_dopings.id as doping');
} }
if (!empty($param['sort_by'])) { if (!empty($param['sort_by'])) {
@ -173,12 +213,12 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->orderBy('created_at', 'desc'); $query = $query->orderBy('created_at', 'desc');
} }
if ($type == "list") { if ($type == "list") {
return $query->paginate($this->settings->value('streams::per_page')); return $query->paginate($this->settings->value('streams::per_page'));
} else { } else {
return $query->get(); return $query->get();
} }
} }
public function softDeleteAdv($id) public function softDeleteAdv($id)

View File

@ -112,6 +112,7 @@ class AdvsController extends PublicController
$checkboxes = $returnvalues['checkboxes']; $checkboxes = $returnvalues['checkboxes'];
$textfields = $returnvalues['textfields']; $textfields = $returnvalues['textfields'];
$topfields = $returnvalues['topfields']; $topfields = $returnvalues['topfields'];
$ranges = $returnvalues['ranges'];
} }
if (!empty($param['user'])) { if (!empty($param['user'])) {
@ -119,7 +120,7 @@ class AdvsController extends PublicController
$userProfile = $profileRepository->getProfile($user->id); $userProfile = $profileRepository->getProfile($user->id);
} }
$compact = compact('advs', 'countries', 'mainCats', 'subCats', 'textfields', 'checkboxes', 'request', $compact = compact('advs', 'countries', 'mainCats', 'subCats', 'textfields', 'checkboxes', 'request',
'user', 'userProfile', 'featured_advs', 'type', 'topfields'); 'user', 'userProfile', 'featured_advs', 'type', 'topfields', 'ranges');
Cookie::queue(Cookie::make('last_search', $request->getRequestUri(), 84000)); Cookie::queue(Cookie::make('last_search', $request->getRequestUri(), 84000));