This commit is contained in:
Diatrex 2020-02-14 13:12:45 +03:00
commit e7e72851d1
6 changed files with 3065 additions and 1604 deletions

View File

@ -1,109 +1,126 @@
/* Location Data */
var boundsAction = false;
var getCountry = $('.country-data').data('content');
if(getCountry == ""){getCountry = default_country;}
if (getCountry == "") {
getCountry = default_country;
}
var getCity = $('.city-data').data('content');
if(getCity == ""){getCity = default_city;}
if (getCity == "") {
getCity = default_city;
}
var getDistrict = $('.district-data').data('content');
if(getDistrict == ""){getDistrict = default_district;}
if (getDistrict == "") {
getDistrict = default_district;
}
var getNeighborhood = $('.neighborhood-data').data('content');
if(getNeighborhood == ""){getNeighborhood = default_neighborhood;}
if (getNeighborhood == "") {
getNeighborhood = default_neighborhood;
}
var getVillage = $('.village-data').data('content');
var citySelectName = "city";
var districtSelectName = "district";
var neighborhoodSelectName = "neighborhood";
var villageSelectName = "village";
var countrySelectName = "country";
jQuery( document ).ready(function( $ ) {
jQuery(document).ready(function ($) {
}).promise().done(function() {
}).promise().done(function () {
$('select[name="country"]').val(getCountry);
}).promise().done(function() {
}).promise().done(function () {
var cat = getCountry;
var level = 1;
var name = citySelectName;
Locations(cat, level, name);
}).promise().done(function() {
}).promise().done(function () {
var cat = getCity;
var level = 2;
var name = districtSelectName;
Locations(cat, level, name);
}).promise().done(function() {
}).promise().done(function () {
var cat = getDistrict;
var level = 3;
var name = neighborhoodSelectName;
Locations(cat, level, name);
}).promise().done(function() {
}).promise().done(function () {
var cat = getNeighborhood;
var level = 4;
var name = villageSelectName;
Locations(cat, level, name);
});
$(document).on('change', 'select[name="'+countrySelectName+'"]', function(){
$(document).on('change', 'select[name="' + countrySelectName + '"]', function () {
var cat = $(this).val();
var level = 1;
var name = citySelectName;
boundsAction = true;
Locations(cat, level, name);
});
$(document).on('change', 'select[name="'+citySelectName+'"]', function(){
$(document).on('change', 'select[name="' + citySelectName + '"]', function () {
var cat = $(this).val();
var level = 2;
var name = districtSelectName;
boundsAction = true;
Locations(cat, level, name)
});
$(document).on('change', 'select[name="'+districtSelectName+'"]', function(){
$(document).on('change', 'select[name="' + districtSelectName + '"]', function () {
var cat = $(this).val();
var level = 3;
var name = neighborhoodSelectName;
boundsAction = true;
Locations(cat, level, name)
});
$(document).on('change', 'select[name="'+neighborhoodSelectName+'"]', function(){
$(document).on('change', 'select[name="' + neighborhoodSelectName + '"]', function () {
var cat = $(this).val();
var level = 4;
var name = villageSelectName;
boundsAction = true;
Locations(cat, level, name)
});
function Locations(cat, level, name){
function Locations(cat, level, name) {
$.ajax({
type: "GET",
data: "cat=" + cat + "&level=" + level,
data: "cat=" + cat + "&level=" + level,
url: "/class/ajax",
success: function(msg){
$('select[name="'+name+'"]').find('option').remove();
$('select[name="'+name+'"]').append('<option value="">Choose an option...</option>');
$.each(msg, function(key, value){
$('select[name="'+name+'"]').append('<option value="'+value.id+'">'+value.name+'</option>');
success: function (msg) {
$('select[name="' + name + '"]').find('option').remove();
$('select[name="' + name + '"]').append('<option value="">Choose an option...</option>');
$.each(msg, function (key, value) {
$('select[name="' + name + '"]').append('<option value="' + value.id + '">' + value.name + '</option>');
});
}
}).promise().done(function() {
}).promise().done(function () {
setLocation(level);
haritaIslem(0);
});
}
function setLocation(level){
if(level == 1){
$('select[name="'+citySelectName+'"]').val(getCity);
}else if(level == 2){
$('select[name="'+districtSelectName+'"]').val(getDistrict);
}else if(level == 3){
$('select[name="'+neighborhoodSelectName+'"]').val(getNeighborhood);
}else if(level == 4){
$('select[name="'+villageSelectName+'"]').val(getVillage);
function setLocation(level) {
if (level == 1) {
$('select[name="' + citySelectName + '"]').val(getCity);
} else if (level == 2) {
$('select[name="' + districtSelectName + '"]').val(getDistrict);
} else if (level == 3) {
$('select[name="' + neighborhoodSelectName + '"]').val(getNeighborhood);
} else if (level == 4) {
$('select[name="' + villageSelectName + '"]').val(getVillage);
}
}
var locationedit = $('input[name="map_Val"]').val();
if(locationedit){
var coordcenter = new google.maps.LatLng(locationedit);
}else{
if (locationedit) {
var lat = locationedit.split(",")[0];
var lng = locationedit.split(",")[1];
var coordcenter = new google.maps.LatLng(lat, lng);
} else {
var coordcenter = new google.maps.LatLng(38.9573415, 35.2415759);
}
var mapOptions = {
center: coordcenter,
zoom: 6,
zoom: 20,
mapTypeId: google.maps.MapTypeId.STREET
};
var secildi = 0;
@ -112,19 +129,19 @@ var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions)
function haritaIslem() {
var str = '';
if ($('select[name="'+countrySelectName+'"]').val() != "") {
str += $('select[name="'+countrySelectName+'"] :selected').text() + ' ';
if ($('select[name="' + countrySelectName + '"]').val() != "") {
str += $('select[name="' + countrySelectName + '"] :selected').text() + ' ';
}
if ($('select[name="'+citySelectName+'"]').val() != "") {
str += $('select[name="'+citySelectName+'"] :selected').text() + ' ';
if ($('select[name="' + citySelectName + '"]').val() != "") {
str += $('select[name="' + citySelectName + '"] :selected').text() + ' ';
}
if ($('select[name="'+districtSelectName+'"]').val() != "") {
str += $('select[name="'+districtSelectName+'"] :selected').text() + ' ';
if ($('select[name="' + districtSelectName + '"]').val() != "") {
str += $('select[name="' + districtSelectName + '"] :selected').text() + ' ';
}
if ($('select[name="'+neighborhoodSelectName+'"]').val() != "") {
str += $('select[name="'+neighborhoodSelectName+'"] :selected').text() + ' ';
if ($('select[name="' + neighborhoodSelectName + '"]').val() != "") {
str += $('select[name="' + neighborhoodSelectName + '"] :selected').text() + ' ';
}
if (!str) {
return true;
}
@ -140,12 +157,11 @@ function haritaIslem() {
var lng = results[0].geometry.location.lng();
var latlng = new google.maps.LatLng(lat, lng);
var bounds = results[0].geometry.bounds;
if (bounds != undefined) {
if (boundsAction) {
map.fitBounds(bounds);
}
}
if ($('select[name="'+neighborhoodSelectName+'"]').val() != "" && $('select[name="'+neighborhoodSelectName+'"]').val() != 0 && secildi == 0) {
if ($('select[name="' + neighborhoodSelectName + '"]').val() != "" && $('select[name="' + neighborhoodSelectName + '"]').val() != 0 && secildi == 0) {
secildi = 1;
}
@ -153,13 +169,12 @@ function haritaIslem() {
}
function placeMarker(location) {
console.log(location);
var lat = location.lat();
var lng = location.lng();
$(".mapVal").val(lat + "," + lng);
if (marker) {
marker.setPosition(location);
$("#map").data(lat+","+lng);
$("#map").data(lat + "," + lng);
} else {
marker = new google.maps.Marker({
position: location,
@ -170,19 +185,22 @@ function placeMarker(location) {
}
editMarket();
function editMarket() {
var locationedit = $('input[name="map_Val"]').val();
if(locationedit){
if (locationedit) {
var lat = locationedit.split(",")[0];
var lng = locationedit.split(",")[1];
var location = new google.maps.LatLng(lat, lng);
$(".mapVal").val($('input[name="map_Val"]'));
var locationMap = new google.maps.LatLng(lat, lng);
$(".mapVal").val($('input[name="map_Val"]').val());
if (marker) {
marker.setPosition(location);
$("#map").data(lat+","+lng);
marker.setPosition(locationMap);
$("#map").data(lat + "," + lng);
} else {
marker = new google.maps.Marker({
position: location,
position: locationMap,
map: map
});
}

View File

@ -1,16 +1,22 @@
{% if 'cat' in param|keys %}
{% set catId = entries('cats', 'category').find(param['cat']) %}
{% set cityId = null %}
{% if 'city' in param|keys %}
{% set citiesArray = param['city'][0]|split(',') %}
{% if count(citiesArray) is same as(1) %}
{% set cityId = entries('location', 'cities').find(param['city'][0]) %}
{% endif %}
{% endif %}
<form action="{{ url_route('adv_list_seo', [catId.slug, cityId.slug]) }}" method="get">
{% else %}
{% set formHtml %}
<form action="{{ url_route('visiosoft.module.advs::list') }}" method="get">
{% endset %}
{% if 'cat' in param|keys %}
{% if not param['cat'] is empty %}
{% set catId = entries('cats', 'category').find(param['cat']) %}
{% set cityId = null %}
{% if 'city' in param|keys %}
{% set citiesArray = param['city'][0]|split(',') %}
{% if count(citiesArray) is same as(1) %}
{% set cityId = entries('location', 'cities').find(param['city'][0]) %}
{% endif %}
{% endif %}
{% set formHtml %}
<form action="{{ url_route('adv_list_seo', [catId.slug, cityId.slug]) }}" method="get">
{% endset %}
{% endif %}
{% endif %}
{{ formHtml }}
<div class="row">
<input type="hidden" name="cat" value="{{ app.request.get('cat') }}">
<input type="hidden" name="user" value="{{ app.request.get('user') }}">

View File

@ -59,18 +59,26 @@ class AdvModel extends AdvsAdvsEntryModel implements AdvInterface
return 1;
}
public function getAdv($id = null, $nullable_ad = false)
public function getAdv($id = null, $nullable_ad = false, $trashed = false)
{
if ($id != null) {
if ($nullable_ad)
return $this->find($id);
else
return $this->where('advs_advs.slug', '!=', "")
->find($id);
$query = $this::query();
if ($trashed) {
$query = $this::withTrashed();
}
if ($nullable_ad)
return $this->newQuery();
return $this->where('advs_advs.slug', '!=', "");
if ($id != null) {
if ($nullable_ad) {
return $query->find($id);
} else {
return $query->where('advs_advs.slug', '!=', "")
->find($id);
}
}
if ($nullable_ad) {
return $query->newQuery();
}
return $query->where('advs_advs.slug', '!=', "");
}
public function userAdv($nullable_ad = false)

View File

@ -30,18 +30,18 @@ class appendRequestURL
{
if (count($this->new_parameters) === 0 && count($this->request) === 0) {
return $this->url;
} elseif (count($this->request) > 0) {
return $this->url
. (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends($this->request));
} elseif (count($this->new_parameters) > 0) {
return $this->url
. (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends($this->new_parameters));
} else {
} elseif (count($this->new_parameters) > 0 && count($this->request) > 0) {
return $this->url
. (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends(array_merge($this->request, $this->new_parameters)));
} elseif (count($this->new_parameters) > 0 && count($this->request) === 0) {
return $this->url
. (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends($this->new_parameters));
} elseif (count($this->new_parameters) === 0 && count($this->request) > 0) {
return $this->url
. (Str::contains($this->url, '?') ? '&' : '?')
. Arr::query($this->appends($this->request));
}
}

View File

@ -161,45 +161,54 @@ class AdvsController extends PublicController
if ($categoryId) {
$param['cat'] = $categoryId->id;
}
}
// Search by city slug
if (is_null($city) && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) {
$cityId = $this->cityRepository->find($param['city'][0]);
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug, $cityId->slug]),
array()
));
} elseif (isset($param['city']) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) {
$cityId = $this->cityRepository->find($param['city'][0]);
$param['city'] = [$cityId->id];
if ($city !== $cityId->slug) {
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug, $cityId->slug]),
array()
));
}
} elseif ($city && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') !== false) {
} elseif (isset($param['cat']) && !empty($param['cat'])) {
$categoryId = $this->category_repository->find($param['cat']);
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug]),
array()
));
} elseif ($city) {
if (isset($param['city'][0]) && empty($param['city'][0])) {
}
// Search by city slug
if ($category) {
if (is_null($city) && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) {
$cityId = $this->cityRepository->find($param['city'][0]);
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug, $cityId->slug]),
array()
));
} elseif (isset($param['city']) && !empty($param['city'][0]) && strpos($param['city'][0], ',') === false) {
$cityId = $this->cityRepository->find($param['city'][0]);
if ($city !== $cityId->slug) {
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug, $cityId->slug]),
array()
));
}
} elseif ($city && isset($param['city'][0]) && !empty($param['city'][0]) && strpos($param['city'][0], ',') !== false) {
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug]),
array()
));
} else {
$cityId = $this->cityRepository->findBy('slug', $city);
$param['city'] = [$cityId->id];
} elseif ($city) {
if (isset($param['city'][0]) && empty($param['city'][0])) {
return redirect($this->fullLink(
$param,
route('adv_list_seo', [$categoryId->slug]),
array()
));
} else {
$cityId = $this->cityRepository->findBy('slug', $city);
$param['city'] = [$cityId->id];
}
}
}
$isActiveCustomFields = $this->adv_model->is_enabled('customfields');
$advs = $this->adv_repository->searchAdvs('list', $param, $customParameters);
$advs = $this->adv_repository->addAttributes($advs);

File diff suppressed because it is too large Load Diff