This commit is contained in:
Diatrex 2020-02-19 13:31:42 +03:00
commit f5061d1349
28 changed files with 493 additions and 410 deletions

View File

@ -118,10 +118,12 @@ Onur Üre @onurure
Fatih Alp @fatihalp Fatih Alp @fatihalp
Emek Sancar Emek Sancar @emeksancar
Ozcan Durak @ozcandurak Ozcan Durak @ozcandurak
Dia @Diatrex
## Thanks to ## Thanks to
Ryan and it's stream platform and pyrocms it makes OpenClassify more powerfull. Ryan and it's stream platform and pyrocms it makes OpenClassify more powerfull.

View File

@ -26,7 +26,6 @@ return [
'watermark_text', 'watermark_text',
'watermark_image', 'watermark_image',
'watermark_position', 'watermark_position',
'watermark_opacity',
'listing_page_image', 'listing_page_image',
], ],
], ],

View File

@ -126,14 +126,6 @@ return [
'default_value' => 'top-right', 'default_value' => 'top-right',
] ]
], ],
'watermark_opacity' => [
'type' => 'anomaly.field_type.text',
'bind' => 'adv.watermark_opacity',
'env' => 'ADV_WATERMARK_OPACITY',
'config' => [
'default_value' => '80',
],
],
'listing_page_image' => [ 'listing_page_image' => [
'type' => 'anomaly.field_type.file', 'type' => 'anomaly.field_type.file',

View File

@ -31,20 +31,20 @@ $('.sort-by-item').on('click', function () {
} else if (searchParams.has('sort_by')) { } else if (searchParams.has('sort_by')) {
var parameters = ""; var parameters = "";
if (value != 'all') { if (value != 'all') {
parameters = "&sort_by=" + value; parameters = "sort_by=" + value;
} }
goURL = location.href.replace("&sort_by=" + sort_by, parameters); goURL = location.href.replace("sort_by=" + sort_by, parameters);
} else { } else {
goURL = url + "&sort_by=" + value; goURL = url + "&sort_by=" + value;
} }
window.location.replace(goURL); window.location.replace(goURL);
}) });
$('.ad-info-right-bar-video').on('click', function () { $('.ad-info-right-bar-video').on('click', function () {
$(".video-ad-tooltip-" + $(this).attr('data-id'))[0].play(); $(".video-ad-tooltip-" + $(this).attr('data-id'))[0].play();
$(".video-ad-tooltip-" + $(this).attr('data-id'))[0].controls = false; $(".video-ad-tooltip-" + $(this).attr('data-id'))[0].controls = false;
}) });
$(document).ready(function () { $(document).ready(function () {

View File

@ -98,9 +98,6 @@ return [
'watermark_position' => [ 'watermark_position' => [
'name' => 'موقف العلامة المائية', 'name' => 'موقف العلامة المائية',
], ],
'watermark_opacity' => [
'name' => 'عتامة العلامة المائية',
],
'listing_page_image' => [ 'listing_page_image' => [
'name' => 'سرد صورة الصفحة', 'name' => 'سرد صورة الصفحة',
], ],

View File

@ -115,10 +115,6 @@
"watermark_position" => [ "watermark_position" => [
"name" =>"Wasserzeichen Position", "name" =>"Wasserzeichen Position",
],
"watermark_opacity" => [
"name" =>"Wasserzeichen Deckkraft",
], ],
"listing_page_image" => [ "listing_page_image" => [
"name" =>"Listing Page Image", "name" =>"Listing Page Image",

View File

@ -115,10 +115,6 @@
"watermark_position" => [ "watermark_position" => [
"name" =>"Θέση υδατοσήματος", "name" =>"Θέση υδατοσήματος",
],
"watermark_opacity" => [
"name" =>"Αδιαφάνεια του υδατογραφήματος",
], ],
"listing_page_image" => [ "listing_page_image" => [
"name" =>"Λίστα εικόνων σελίδας", "name" =>"Λίστα εικόνων σελίδας",

View File

@ -11,6 +11,7 @@ return [
'approve' => "Approve", 'approve' => "Approve",
'decline' => 'Decline', 'decline' => 'Decline',
'extend' => 'Extend', 'extend' => 'Extend',
'extend_all' => 'Extend All',
'sub_category' => 'Sub Categories', 'sub_category' => 'Sub Categories',
'add_sub_category' => 'Add Sub Category', 'add_sub_category' => 'Add Sub Category',
'sub_cities' => 'Sub Cities', 'sub_cities' => 'Sub Cities',

View File

@ -95,9 +95,6 @@ return [
'watermark_position' => [ 'watermark_position' => [
'name' => 'Watermark Position', 'name' => 'Watermark Position',
], ],
'watermark_opacity' => [
'name' => 'Watermark Opacity',
],
'listing_page_image' => [ 'listing_page_image' => [
'name' => 'Listing Page Image', 'name' => 'Listing Page Image',
], ],

View File

@ -95,9 +95,6 @@ return [
'watermark_position' => [ 'watermark_position' => [
'name' => 'Pozicioni i Filigranit', 'name' => 'Pozicioni i Filigranit',
], ],
'watermark_opacity' => [
'name' => 'Hapësira e Filigranit',
],
'listing_page_image' => [ 'listing_page_image' => [
'name' => 'Lista e figurës së faqes', 'name' => 'Lista e figurës së faqes',
], ],

View File

@ -10,7 +10,8 @@ return [
'new_village' => 'Yeni köy', 'new_village' => 'Yeni köy',
'approve' => "Onayla", 'approve' => "Onayla",
'decline' => 'Reddet', 'decline' => 'Reddet',
'extend' => 'Uzat', 'extend' => 'Tarihi Güncelle',
'extend_all' => 'Tümünün Tarihini Güncelle',
'sub_category' => 'Alt Kategoriler', 'sub_category' => 'Alt Kategoriler',
'add_sub_category' => 'Alt Kategori Ekle', 'add_sub_category' => 'Alt Kategori Ekle',
'sub_cities' => 'Alt Şehirler', 'sub_cities' => 'Alt Şehirler',

View File

@ -95,9 +95,6 @@ return [
'watermark_position' => [ 'watermark_position' => [
'name' => 'Filigran Konumu', 'name' => 'Filigran Konumu',
], ],
'watermark_opacity' => [
'name' => 'Filigran Opaklığı',
],
'listing_page_image' => [ 'listing_page_image' => [
'name' => 'Sayfa Resmi Listeleme', 'name' => 'Sayfa Resmi Listeleme',
], ],

View File

@ -27,7 +27,7 @@
{% include "visiosoft.module.advs::list/partials/display-mode" %} {% include "visiosoft.module.advs::list/partials/display-mode" %}
</div> </div>
</div> </div>
{{ addBlock('ads-list/row',{'topfields':topfields})|raw }} {{ addBlock('ads-list/row',{'topfields':topfields,'advs':advs})|raw }}
<div class="row"> <div class="row">
{% block listContent %} {% block listContent %}
{% include "visiosoft.module.advs::list/partials/ads" %} {% include "visiosoft.module.advs::list/partials/ads" %}

View File

@ -1,200 +1,204 @@
{% set formHtml %} {% set formHtml %}
<form action="{{ url_route('visiosoft.module.advs::list') }}" method="get"> <form action="{{ url_route('visiosoft.module.advs::list') }}" method="get">
{% endset %} {% endset %}
{% if 'cat' in param|keys %} {% if 'cat' in param|keys %}
{% if not param['cat'] is empty %} {% if not param['cat'] is empty %}
{% set catId = entries('cats', 'category').find(param['cat']) %} {% set catId = entries('cats', 'category').find(param['cat']) %}
{% set cityId = null %} {% set cityId = null %}
{% if 'city' in param|keys %} {% if 'city' in param|keys %}
{% set citiesArray = param['city'][0]|split(',') %} {% set citiesArray = param['city'][0]|split(',') %}
{% if count(citiesArray) is same as(1) %} {% if count(citiesArray) is same as(1) %}
{% set cityId = entries('location', 'cities').find(param['city'][0]) %} {% set cityId = entries('location', 'cities').find(param['city'][0]) %}
{% endif %}
{% endif %} {% endif %}
{% set formHtml %}
<form action="{{ url_route('adv_list_seo', [catId.slug, cityId.slug]) }}" method="get">
{% endset %}
{% endif %} {% endif %}
{% endif %} {% set formHtml %}
{{ formHtml }} <form action="{{ url_route('adv_list_seo', [catId.slug, cityId.slug]) }}" method="get">
<div class="row"> {% endset %}
<input type="hidden" name="cat" value="{{ app.request.get('cat') }}"> {% endif %}
<input type="hidden" name="user" value="{{ app.request.get('user') }}"> {% endif %}
<div class="col-md-12 px-4"> {{ formHtml }}
<div class="row"> <div class="row">
<div id="filter" class="w-100 mb-3"> <input type="hidden" name="cat" value="{{ app.request.get('cat') }}">
<input type="hidden" name="user" value="{{ app.request.get('user') }}">
<div class="col-md-12 px-4">
<div class="row">
<div id="filter" class="w-100 mb-3">
{{ addBlock('ads-list/partials/list-filter',{ {{ addBlock('ads-list/partials/list-filter',{
'mainCats':mainCats, 'mainCats':mainCats,
'subCats':subCats, 'subCats':subCats,
'ranges':ranges, 'ranges':ranges,
'checkboxes':checkboxes, 'checkboxes':checkboxes,
'radio':radio, 'topfields' : topfields,
'countries':countries, 'radio':radio,
'cities':cities, 'countries':countries,
'districts':districts, 'cities':cities,
'neighborhoods':neighborhoods, 'districts':districts,
'villages':villages, 'neighborhoods':neighborhoods,
'param':param 'villages':villages,
})|raw }} 'param':param
})|raw }}
<!-- Date Filter Start --> <!-- Date Filter Start -->
<div class="card mb-3"> <div class="card mb-3">
<div class="card-header breadcrumb mb-0" id="dateHeading"> <div class="card-header breadcrumb mb-0" id="dateHeading">
<h5 class="mb-0"> <h5 class="mb-0">
<button class="btn btn-link text-dark" data-toggle="collapse" data-target="#date" <button class="btn btn-link text-dark" data-toggle="collapse" data-target="#date"
aria-expanded="true" aria-controls="date"> aria-expanded="true" aria-controls="date">
<i class="fa fa-calendar"></i> <i class="fa fa-calendar"></i>
{{ trans("visiosoft.module.advs::field.date.name") }} {{ trans("visiosoft.module.advs::field.date.name") }}
</button> </button>
</h5> </h5>
</div> </div>
<div id="dateContainer" class="collapse show overflow-auto" aria-labelledby="dateHeading" <div id="dateContainer" class="collapse show overflow-auto" aria-labelledby="dateHeading"
data-parent="#filter" data-parent="#filter"
style="max-height: 300px;"> style="max-height: 300px;">
<div class="d-flex flex-column p-3 m-0"> <div class="d-flex flex-column p-3 m-0">
<div class="form-check py-1"> <div class="form-check py-1">
<input class="form-check-input" type="radio" name="date" id="dateDay" value="day"> <input class="form-check-input" type="radio" name="date" id="dateDay"
<label class="form-check-label" for="dateDay"> value="day">
{{ trans("visiosoft.module.advs::field.in_the_last_24_hours.name") }} <label class="form-check-label" for="dateDay">
</label> {{ trans("visiosoft.module.advs::field.in_the_last_24_hours.name") }}
</div> </label>
<div class="form-check py-1"> </div>
<input class="form-check-input" type="radio" name="date" id="dateWeek" value="week"> <div class="form-check py-1">
<label class="form-check-label" for="dateWeek"> <input class="form-check-input" type="radio" name="date" id="dateWeek"
{{ trans("visiosoft.module.advs::field.in_the_last_week.name") }} value="week">
</label> <label class="form-check-label" for="dateWeek">
</div> {{ trans("visiosoft.module.advs::field.in_the_last_week.name") }}
<div class="form-check py-1"> </label>
<input class="form-check-input" type="radio" name="date" id="dateMonth" </div>
value="month"> <div class="form-check py-1">
<label class="form-check-label" for="dateMonth"> <input class="form-check-input" type="radio" name="date" id="dateMonth"
{{ trans("visiosoft.module.advs::field.in_the_last_month.name") }} value="month">
</label> <label class="form-check-label" for="dateMonth">
{{ trans("visiosoft.module.advs::field.in_the_last_month.name") }}
</label>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> <!-- Date Filter End -->
<!-- Date Filter End -->
<!-- Media Filter Start --> <!-- Media Filter Start -->
<div class="card mb-3"> <div class="card mb-3">
<div class="card-header breadcrumb mb-0" id="mediaHeading"> <div class="card-header breadcrumb mb-0" id="mediaHeading">
<h5 class="mb-0"> <h5 class="mb-0">
<button class="btn btn-link text-dark" data-toggle="collapse" data-target="#media" <button class="btn btn-link text-dark" data-toggle="collapse" data-target="#media"
aria-expanded="true" aria-controls="media"> aria-expanded="true" aria-controls="media">
<i class="fa fa-camera"></i> <i class="fa fa-camera"></i>
{{ trans("visiosoft.module.advs::field.photo.name") }} {{ trans("visiosoft.module.advs::field.photo.name") }}
, {{ trans("visiosoft.module.advs::field.video.name") }} , {{ trans("visiosoft.module.advs::field.video.name") }}
</button> </button>
</h5> </h5>
</div> </div>
<div id="mediaContainer" class="collapse show overflow-auto" aria-labelledby="mediaHeading" <div id="mediaContainer" class="collapse show overflow-auto" aria-labelledby="mediaHeading"
data-parent="#filter" data-parent="#filter"
style="max-height: 300px;"> style="max-height: 300px;">
<div class="row p-3 m-0"> <div class="row p-3 m-0">
<div class="form-check py-1"> <div class="form-check py-1">
<input class="form-check-input" type="checkbox" value="true" name="photo" <input class="form-check-input" type="checkbox" value="true" name="photo"
id="photo"> id="photo">
<label class="form-check-label" for="photo"> <label class="form-check-label" for="photo">
{{ trans("visiosoft.module.advs::field.ads_with_photo.name") }} {{ trans("visiosoft.module.advs::field.ads_with_photo.name") }}
</label> </label>
</div> </div>
<div class="form-check py-1"> <div class="form-check py-1">
<input class="form-check-input" type="checkbox" value="true" name="video" <input class="form-check-input" type="checkbox" value="true" name="video"
id="video"> id="video">
<label class="form-check-label" for="video"> <label class="form-check-label" for="video">
{{ trans("visiosoft.module.advs::field.ads_with_video.name") }} {{ trans("visiosoft.module.advs::field.ads_with_video.name") }}
</label> </label>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> <!-- Media Filter End -->
<!-- Media Filter End -->
<!-- Map Filter Start --> <!-- Map Filter Start -->
<div class="card mb-3"> <div class="card mb-3">
<div class="card-header breadcrumb mb-0" id="mapHeading"> <div class="card-header breadcrumb mb-0" id="mapHeading">
<h5 class="mb-0"> <h5 class="mb-0">
<button class="btn btn-link text-dark" data-toggle="collapse" data-target="#mapFilter" <button class="btn btn-link text-dark" data-toggle="collapse"
aria-expanded="true" aria-controls="mapFilter"> data-target="#mapFilter"
<i class="fa fa-map"></i> aria-expanded="true" aria-controls="mapFilter">
{{ trans("visiosoft.module.advs::field.map.name") }} <i class="fa fa-map"></i>
</button> {{ trans("visiosoft.module.advs::field.map.name") }}
</h5> </button>
</div> </h5>
<div id="mapContainer" class="collapse show overflow-auto" aria-labelledby="mapHeading" </div>
data-parent="#filter" <div id="mapContainer" class="collapse show overflow-auto" aria-labelledby="mapHeading"
style="max-height: 300px;"> data-parent="#filter"
<div class="row p-3 m-0"> style="max-height: 300px;">
<div class="form-check py-1"> <div class="row p-3 m-0">
<input class="form-check-input" type="checkbox" value="true" name="map" <div class="form-check py-1">
id="mapFilter"> <input class="form-check-input" type="checkbox" value="true" name="map"
<label class="form-check-label" for="mapFilter"> id="mapFilter">
{{ trans("visiosoft.module.advs::field.yes.name") }} <label class="form-check-label" for="mapFilter">
</label> {{ trans("visiosoft.module.advs::field.yes.name") }}
</label>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> <!-- Map Filter End -->
<!-- Map Filter End -->
<!-- Price Filter Start --> <!-- Price Filter Start -->
<div class="card mb-3"> <div class="card mb-3">
<div class="card-header breadcrumb mb-0" id="priceHeading"> <div class="card-header breadcrumb mb-0" id="priceHeading">
<h5 class="mb-0"> <h5 class="mb-0">
<button class="btn btn-link text-dark" data-toggle="collapse" data-target="#price" <button class="btn btn-link text-dark" data-toggle="collapse" data-target="#price"
aria-expanded="true" aria-controls="price"> aria-expanded="true" aria-controls="price">
<i class="fas fa-money-bill"></i> <i class="fas fa-money-bill"></i>
{{ trans("visiosoft.module.advs::field.price.name") }} {{ trans("visiosoft.module.advs::field.price.name") }}
</button> </button>
</h5> </h5>
</div> </div>
<div id="price" class="collapse show overflow-auto" aria-labelledby="priceHeading" <div id="price" class="collapse show overflow-auto" aria-labelledby="priceHeading"
data-parent="#filter" data-parent="#filter"
style="max-height: 300px;"> style="max-height: 300px;">
<div class="row p-0 m-0"> <div class="row p-0 m-0">
{% set active_currencies = setting_value('visiosoft.module.advs::enabled_currencies') %} {% set active_currencies = setting_value('visiosoft.module.advs::enabled_currencies') %}
<div class="col-md-4 p-1 m-0"> <div class="col-md-4 p-1 m-0">
<input type="number" class="price-input form-control w-100" <input type="number" class="price-input form-control w-100"
value="{{ app.request.get('min_price') }}" value="{{ app.request.get('min_price') }}"
name="min_price" min="0" name="min_price" min="0"
placeholder="{{ trans('visiosoft.module.advs::field.min.name') }}"> placeholder="{{ trans('visiosoft.module.advs::field.min.name') }}">
</div> </div>
<div class="col-md-4 p-1 pr-0 m-0"> <div class="col-md-4 p-1 pr-0 m-0">
<input class="price-input form-control w-100" type="number" <input class="price-input form-control w-100" type="number"
value="{{ app.request.get('max_price') }}" value="{{ app.request.get('max_price') }}"
name="max_price" name="max_price"
placeholder="{{ trans('visiosoft.module.advs::field.max.name') }}"> placeholder="{{ trans('visiosoft.module.advs::field.max.name') }}">
</div>
<div class="col-md-4 py-1 px-0">
<select name="currency" id="currency" class="form-control">
{% for currency in active_currencies %}
<option {% if app.request.get('currency') == currency %}
selected
{% endif %}value="{{ currency }}">{{ currency }}</option>
{% endfor %}
</select>
</div>
</div> </div>
<div class="col-md-4 py-1 px-0">
<select name="currency" id="currency" class="form-control">
{% for currency in active_currencies %}
<option {% if app.request.get('currency') == currency %}
selected
{% endif %}value="{{ currency }}">{{ currency }}</option>
{% endfor %}
</select>
</div>
</div> </div>
</div> </div>
</div> <!-- Price Filter End -->
<!-- Price Filter End -->
<div class="card"> <div class="card">
<div class="card-header bg-primary text-center" id="submitHeading"> <div class="card-header bg-primary text-center" id="submitHeading">
<h5 class="mb-0"> <h5 class="mb-0">
<button class="btn btn-link text-white w-100"> <button class="btn btn-link text-white w-100">
<i class="fas fa-search"></i> <i class="fas fa-search"></i>
{{ trans("visiosoft.module.advs::field.search") }} {{ trans("visiosoft.module.advs::field.search") }}
</button> </button>
</h5> </h5>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </form>
</form>

View File

@ -142,7 +142,7 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
} }
if ($this->model->is_enabled('customfields')) { if ($this->model->is_enabled('customfields')) {
$query = app('Visiosoft\CustomfieldsModule\Http\Controller\cfController')->filterSearch($customParameters, $query); $query = app('Visiosoft\CustomfieldsModule\Http\Controller\cfController')->filterSearch($customParameters, $param, $query);
} }
@ -160,29 +160,6 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
$query = $query->whereRaw($column); $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);
}
}
}
// //UPDATE `default_advs_advs` SET `coor` = (PointFromText('POINT(41.085022 28.804754)')) WHERE `default_advs_advs`.`id` = 8 // //UPDATE `default_advs_advs` SET `coor` = (PointFromText('POINT(41.085022 28.804754)')) WHERE `default_advs_advs`.`id` = 8
// //SELECT * FROM `default_advs_advs` WHERE ST_DISTANCE(ST_GeomFromText('POINT(41.0709052 28.829627)'), coor) < 20 // //SELECT * FROM `default_advs_advs` WHERE ST_DISTANCE(ST_GeomFromText('POINT(41.0709052 28.829627)'), coor) < 20
@ -199,10 +176,10 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
if (!empty($param['sort_by'])) { if (!empty($param['sort_by'])) {
switch ($param['sort_by']) { switch ($param['sort_by']) {
case "sort_price_up": case "sort_price_up":
$query = $query->orderBy('price', 'desc'); $query = $query->orderBy('advs_advs.price', 'desc');
break; break;
case "sort_price_down": case "sort_price_down":
$query = $query->orderBy('price', 'asc'); $query = $query->orderBy('advs_advs.price', 'asc');
break; break;
case "sort_time": case "sort_time":
$query = $query->orderBy('advs_advs.created_at', 'desc'); $query = $query->orderBy('advs_advs.created_at', 'desc');
@ -210,12 +187,12 @@ class AdvRepository extends EntryRepository implements AdvRepositoryInterface
} }
} else { } else {
$query = $query->orderBy('advs_advs.created_at', 'desc'); $query = $query->orderBy('advs_advs.created_at', 'desc');
if ($isActiveDopings) { }
$query = app('Visiosoft\DopingsModule\Http\Controller\DopingsController')->querySelect($query, $param); if ($isActiveDopings) {
} else { $query = app('Visiosoft\DopingsModule\Http\Controller\DopingsController')->querySelect($query, $param);
$query = $query->select('advs_advs.*', 'advs_advs_translations.name as name', } else {
'advs_advs_translations.advs_desc as advs_desc'); $query = $query->select('advs_advs.*', 'advs_advs_translations.name as name',
} 'advs_advs_translations.advs_desc as advs_desc');
} }
if ($type == "list") { if ($type == "list") {

View File

@ -30,6 +30,11 @@ class AdvsModule extends Module
'new_adv' => [ 'new_adv' => [
'href' => "/advs/create_adv", 'href' => "/advs/create_adv",
], ],
'extend_all' => [
'href' => "/admin/advs/extendAll",
'icon' => 'fa fa-calendar',
'type' => 'info'
],
], ],
], ],
'assets_clear' => [ 'assets_clear' => [

View File

@ -212,7 +212,10 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
'as' => 'ajax::getAds', 'as' => 'ajax::getAds',
'uses' => 'Visiosoft\AdvsModule\Http\Controller\AjaxController@getMyAds' 'uses' => 'Visiosoft\AdvsModule\Http\Controller\AjaxController@getMyAds'
], ],
'admin/advs/extendAll' => [
'as' => 'advs::extendAll',
'uses' => 'Visiosoft\AdvsModule\Http\Controller\Admin\AdvsController@extendAll',
],
]; ];
/** /**

View File

@ -257,4 +257,13 @@ class AdvsController extends AdminController
<a href='" . $request->server('HTTP_REFERER') . "'><b>Return Back</b></a>"; <a href='" . $request->server('HTTP_REFERER') . "'><b>Return Back</b></a>";
echo "<br><a href='/admin'><b>Return Admin Panel</b></a>"; echo "<br><a href='/admin'><b>Return Admin Panel</b></a>";
} }
public function extendAll()
{
$advs = $this->model->get();
$new_date = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s') . ' + ' . setting_value('visiosoft.module.advs::default_published_time') . ' day'));
$advs->update(['finish_at' => $new_date]);
$this->messages->success(trans('visiosoft.module.advs::field.extended'));
return $this->redirect->to('admin/advs/advs');
}
} }

View File

@ -214,14 +214,8 @@ class AdvsController extends PublicController
$advs = $this->adv_repository->addAttributes($advs); $advs = $this->adv_repository->addAttributes($advs);
if ($isActiveDopings) { if ($isActiveDopings and $param != null) {
$dopingModel = new DopingModel(); $featured_advs = app('Visiosoft\DopingsModule\Http\Controller\DopingsController')->listFeatures($advs);
$featured_advs = $dopingModel->filterAdvs(2, $advs);
foreach ($featured_advs as $index => $ad) {
$featured_advs[$index]->detail_url = $this->adv_model->getAdvDetailLinkByModel($ad, 'list');
$featured_advs[$index] = $this->adv_model->AddAdsDefaultCoverImage($ad);
}
} }
foreach ($advs as $index => $ad) { foreach ($advs as $index => $ad) {

View File

@ -7,4 +7,120 @@
.register-section button, .register-section button,
.register-section a { .register-section a {
font-size: 16px; font-size: 16px;
}
.login_subject {
color: #333;
font-weight: bold;
font-size: 18px;
}
.login-section label {
font-size: 13px;
}
.forgot_password {
display: inline-block;
float: right;
color: #868f94;
}
.forgot_password:hover {
text-decoration: underline;
}
.login-section button {
padding: 9px 22px;
margin-bottom: 0;
font-family: 'Lucida Grande','LucidaGrande',Arial,sans-serif;
font-weight: bold;
text-align: center;
vertical-align: middle;
cursor: pointer;
border-radius: 2px;
color: #fff;
background-repeat: repeat-x;
background-image: -moz-linear-gradient(top,#6198d3,#437db9);
background-image: -ms-linear-gradient(top,#6198d3,#437db9);
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#6198d3),color-stop(100%,#437db9));
background-image: -webkit-linear-gradient(top,#6198d3,#437db9);
background-image: -o-linear-gradient(top,#6198d3,#437db9);
background-image: linear-gradient(top,#6198d3,#437db9);
line-height: 1.3em;
outline: 0;
background: #489ae9;
box-shadow: 1px 0 2px 0 rgba(0,0,0,0.13), 0 0 4px 0 rgba(0,0,0,0.11), 0 2px 3px 0 rgba(0,0,0,0.16);
border: 0;
text-shadow: none;
height: 50px;
font-size: 16px;
width: 100%;
display: block;
}
.login-section button:hover {
color: #fff;
background: #4594de;
text-decoration: none;
}
.remember_me {
padding: 12px 0 0 5px;
display: inline-block;
color: #36454d;
font-size: 13px;
}
.remember_me input {
margin: 0;
vertical-align: 1px;
font: 12px "Lucida Grande","LucidaGrande",Arial,sans-serif;
}
.register-section h3 {
font-size: 18px;
margin: 0 0 43px 0;
padding-left: 0;
padding-right: 0;
width: 100%;
color: #333;
font-weight: bold;
}
.register-section p {
color: #36454d;
margin-bottom: 20px;
font-size: 13px;
}
.register-section a {
background: #fafafa;
box-shadow: 1px 0 2px 0 rgba(0,0,0,0.13), 0 0 4px 0 rgba(0,0,0,0.11), 0 2px 3px 0 rgba(0,0,0,0.16);
border-radius: 2px;
border: 0;
font-weight: bold;
height: 50px;
font-size: 16px;
text-shadow: 0 2px 11px #fff;
display: block;
width: 100%;
padding: 15px 22px;
color: #489ae8;
}
.register-section a:hover {
background: #fafafa;
color: #489ae8;
}
@media only screen and (min-width: 470px) {
.login-section {
padding: 70px 78px 148px 77px;
}
.register-section {
padding-top: 143px;
padding-left: 80px;
padding-right: 85px;
background-color: #fff;
}
} }

View File

@ -20,7 +20,7 @@ return [
'not_a_member_yet' => 'Henüz Üye Değil Misiniz', 'not_a_member_yet' => 'Henüz Üye Değil Misiniz',
'not_a_member_yet_message' => 'Üyelerimize özel hizmetlerimizden faydalanabilmek için üye olun', 'not_a_member_yet_message' => 'Üyelerimize özel hizmetlerimizden faydalanabilmek için üye olun',
'forgot_password' => 'Şifremi Unuttum', 'forgot_password' => 'Şifremi Unuttum',
'email_or_phone_number' => 'E-Posta Adresiniz veya Telefon Numaranız', 'email_or_phone_number' => 'E-Posta veya Telefon Numarası',
'phone_number' => 'Telefon Numarası', 'phone_number' => 'Telefon Numarası',
// Registration instructions // Registration instructions

View File

@ -2,8 +2,7 @@
{% block content %} {% block content %}
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-12 text-left p-3 m-0 row justify-content-center"> <div class="col-12 text-left m-0 row justify-content-center">
<div class="col-12 col-lg-5 m-3 login-section"> <div class="col-12 col-lg-5 m-3 login-section">
{% set form = form('signIn') {% set form = form('signIn')
.redirect(app.request.get('redirect')) .redirect(app.request.get('redirect'))
@ -13,9 +12,9 @@
'url':form.options.url 'url':form.options.url
})|raw }} })|raw }}
<div class="col-12 pt-4 pt-lg-0"> <div class="col-12 pt-4 pt-lg-0">
<h5 class="text-center"> <h3 class="text-center login_subject">
{{ trans('visiosoft.theme.base::button.login') }} {{ trans('visiosoft.theme.base::button.login') }}
</h5> </h3>
<div class="form-group email-field email-field_type"> <div class="form-group email-field email-field_type">
<label class="control-label"> <label class="control-label">
{{ trans('visiosoft.theme.base::field.email_or_phone_number') }} {{ trans('visiosoft.theme.base::field.email_or_phone_number') }}
@ -38,7 +37,7 @@
</div> </div>
<div class="col-6 p-0 text-right"> <div class="col-6 p-0 text-right">
<a href="{{ url_route('anomaly.module.users::password.forgot') }}"> <a href="{{ url_route('anomaly.module.users::password.forgot') }}">
<small class="text-muted"> <small class="forgot_password">
{{ trans('visiosoft.theme.base::field.forgot_password') }} {{ trans('visiosoft.theme.base::field.forgot_password') }}
</small> </small>
</a> </a>
@ -51,13 +50,13 @@
</div> </div>
</div> </div>
<div class="col-12 row m-0 pb-4 pb-lg-0"> <div class="col-12 row m-0 pb-4 pb-lg-0">
<button class="btn btn-sm btn-primary font-weight-bolder w-100 py-3"> <button class="btn btn-sm font-weight-bolder w-100 py-3">
<i class="fas fa-key"></i> <i class="fas fa-key"></i>
{{ trans('visiosoft.theme.base::button.login') }} {{ trans('visiosoft.theme.base::button.login') }}
</button> </button>
</div> </div>
<div class="col-12 py-2"> <div class="col-12 py-0">
<label class="c-input c-checkbox"> <label class="c-input c-checkbox remember_me">
<input value="0" type="hidden" name="remember_me"> <input value="0" type="hidden" name="remember_me">
<input type="checkbox" name="remember_me"> <input type="checkbox" name="remember_me">
<span class="c-indicator"></span> <span class="c-indicator"></span>
@ -72,10 +71,10 @@
<div class="col-12 col-lg-5 m-3 py-4 row register-section align-items-center"> <div class="col-12 col-lg-5 m-3 py-4 row register-section align-items-center">
<div class="col-12 text-center"> <div class="col-12 text-center">
<h3 class="py-2">{{ trans('visiosoft.theme.base::field.not_a_member_yet') }}?</h3> <h3 class="py-0">{{ trans('visiosoft.theme.base::field.not_a_member_yet') }}?</h3>
<p class="py-2">{{ trans('visiosoft.theme.base::field.not_a_member_yet_message') }}.</p> <p class="py-0">{{ trans('visiosoft.theme.base::field.not_a_member_yet_message') }}.</p>
<a href="{{ url('register') }}" <a href="{{ url('register') }}"
class="btn btn-sm btn-white font-weight-bolder border text-primary w-100 py-3 mt-1"> class="btn btn-sm">
<i class="fas fa-user-plus"></i> <i class="fas fa-user-plus"></i>
{{ trans('visiosoft.theme.base::button.register') }} {{ trans('visiosoft.theme.base::button.register') }}
</a> </a>

View File

@ -1,7 +1,7 @@
{% if setting_value('visiosoft.module.location::create_ad_page_location') %} {% if setting_value('visiosoft.module.location::create_ad_page_location') %}
<div class="row form-group location-map"> <div class="row form-group location-map">
<div class="col-sm-4"> <div class="col-sm-4">
<ul style="padding: 0"> <ul style="padding: 0" class="list-unstyled">
<li class="country-data" data-content="{{ adv['country_id'] }}" <li class="country-data" data-content="{{ adv['country_id'] }}"
data-default="{{ setting_value('visiosoft.module.location::default_country') }}" data-default="{{ setting_value('visiosoft.module.location::default_country') }}"
class="location-field country-data">{{ form.fields.country|raw }}</li> class="location-field country-data">{{ form.fields.country|raw }}</li>

View File

@ -11,6 +11,9 @@
<div class="card-read-more text-center row"> <div class="card-read-more text-center row">
{{ buttons(row.buttons)|raw }} {{ buttons(row.buttons)|raw }}
</div> </div>
{% if loop.index == 1 %}
<div class="main-image image-eye-{{ row.key }}"><i class="fa fa-eye "></i></div>
{% endif %}
</div> </div>
</div> </div>
{% endfor %} {% endfor %}

View File

@ -61,16 +61,15 @@ class UploadController extends AdminController
$position = $settings->value('visiosoft.module.advs::watermark_position'); $position = $settings->value('visiosoft.module.advs::watermark_position');
$img = WaterMark::make($this->request->file('upload')->getRealPath()) $img = WaterMark::make($this->request->file('upload')->getRealPath())
->resize( null,600) ->resize(null, 600)
->resizeCanvas(800, 600, 'center', false, 'fff'); ->resizeCanvas(800, 600, 'center', false, 'fff');
if ($watermarktype == 'image') { if ($watermarktype == 'image') {
$watermarkimage_id = $settings->value('visiosoft.module.advs::watermark_image'); $watermarkimage_id = $settings->value('visiosoft.module.advs::watermark_image');
$watermarkimage = $files->find($watermarkimage_id); $watermarkimage = $files->find($watermarkimage_id);
$w = $img->width(); $w = $img->width();
if ($watermarkimage != null) { if ($watermarkimage != null) {
$watermark = WaterMark::make(app_storage_path() . '/files-module/local/' . $watermarkimage->path()) $watermark = WaterMark::make(app_storage_path() . '/files-module/local/' . $watermarkimage->path());
->opacity($settings->value('visiosoft.module.advs::watermark_opacity'));
$img->insert($watermark, $position); $img->insert($watermark, $position);
} }
@ -123,9 +122,8 @@ class UploadController extends AdminController
$isImageUser = FilesFilesEntryModel::query()->where('created_by_id', Auth::id()) $isImageUser = FilesFilesEntryModel::query()->where('created_by_id', Auth::id())
->where('name', $filename)->first(); ->where('name', $filename)->first();
if ($isImageUser != null) { if ($isImageUser != null) {
$image->make(Storage::path('images/' . $filename)) WaterMark::make(Storage::path('images/' . $filename))->rotate(90)
->rotate(90) ->save(app_storage_path() . '/files-module/local/images/' . $filename);
->publish('app/default/files-module/local/images/' . $filename);
return response()->json(['status' => 'success']); return response()->json(['status' => 'success']);
} }
return response()->json(['status' => 'error']); return response()->json(['status' => 'error']);

View File

@ -188,7 +188,7 @@ class MyProfileController extends PublicController
$message = []; $message = [];
$message[] = trans('visiosoft.module.profile::message.adress_success_update'); $message[] = trans('visiosoft.module.profile::message.adress_success_update');
return redirect('/profile')->with('success', $message); return redirect(route('profile::address'))->with('success', $message);
} }
} }
@ -208,7 +208,7 @@ class MyProfileController extends PublicController
$message = []; $message = [];
$message[] = trans('visiosoft.module.profile::message.adress_success_create'); $message[] = trans('visiosoft.module.profile::message.adress_success_create');
return redirect('/profile/adress')->with('success', $message); return redirect(route('profile::address'))->with('success', $message);
} }
$country = CountryModel::all(); $country = CountryModel::all();
return $this->view->make('visiosoft.module.profile::address/create', compact('country')); return $this->view->make('visiosoft.module.profile::address/create', compact('country'));

View File

@ -1,6 +1,7 @@
<?php namespace Visiosoft\ProfileModule\Profile\Password; <?php namespace Visiosoft\ProfileModule\Profile\Password;
use Anomaly\Streams\Platform\Message\MessageBag; use Anomaly\Streams\Platform\Message\MessageBag;
use Anomaly\UsersModule\User\User;
use Anomaly\UsersModule\User\UserModel; use Anomaly\UsersModule\User\UserModel;
use Anomaly\UsersModule\User\UserPassword; use Anomaly\UsersModule\User\UserPassword;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
@ -41,10 +42,9 @@ class PasswordFormHandler
return redirect()->back(); return redirect()->back();
} }
$userModel->find(Auth::id()) $user = User::query()->find(Auth::id());
->update([ $user->setAttribute('password', $builder->getPostValue('new_password'));
'password' => Hash::make($builder->getPostValue('new_password')) $user->save($user->toArray());
]);
$messages->success(trans('visiosoft.module.profile::message.your_password_changed')); $messages->success(trans('visiosoft.module.profile::message.your_password_changed'));
} }
} }

View File

@ -1,138 +1,138 @@
{ {
"name": "openclassify/openclassify", "name": "openclassify/openclassify",
"description": "OpenClassify is the extensible and most advanced open source classified app build with Laravel.", "description": "OpenClassify is the extensible and most advanced open source classified app build with Laravel.",
"type": "project", "type": "project",
"keywords": [ "keywords": [
"OpenClassify", "OpenClassify",
"classified", "classified",
"open Classify" "open Classify"
], ],
"license": "MIT", "license": "MIT",
"authors": [ "authors": [
{ {
"name": "Visiosoft, Inc.", "name": "Visiosoft, Inc.",
"email": "support@visiosoft.com.tr" "email": "support@visiosoft.com.tr"
}
],
"require": {
"wikimedia/composer-merge-plugin": "~1.4.0",
"anomaly/streams-composer-plugin": "~1.1.0",
"visiosoft/streams-platform": "^1.7",
"anomaly/default_authenticator-extension": "~2.1.0",
"anomaly/throttle_security_check-extension": "~2.1.0",
"anomaly/private_storage_adapter-extension": "~1.0.0",
"anomaly/default_page_handler-extension": "~2.1.0",
"anomaly/user_security_check-extension": "~2.1.0",
"anomaly/xml_feed_widget-extension": "~2.1.0",
"anomaly/page_link_type-extension": "~2.1.0",
"anomaly/url_link_type-extension": "~2.1.0",
"anomaly/relationship-field_type": "~2.2.0",
"anomaly/colorpicker-field_type": "~2.3.0",
"anomaly/polymorphic-field_type": "~2.1.0",
"anomaly/checkboxes-field_type": "~2.4.0",
"anomaly/encrypted-field_type": "~2.1.0",
"anomaly/datetime-field_type": "~3.0.0",
"anomaly/repeater-field_type": "~1.3.0",
"anomaly/language-field_type": "~2.2.0",
"anomaly/multiple-field_type": "~2.3.0",
"anomaly/textarea-field_type": "~2.1.0",
"anomaly/markdown-field_type": "~3.1.0",
"anomaly/wysiwyg-field_type": "~3.1.0",
"anomaly/boolean-field_type": "~2.3.0",
"anomaly/country-field_type": "~2.3.0",
"anomaly/decimal-field_type": "~2.1.0",
"anomaly/integer-field_type": "~2.1.0",
"anomaly/editor-field_type": "~3.1.0",
"anomaly/select-field_type": "~2.3.0",
"anomaly/slider-field_type": "~3.0.0",
"anomaly/addon-field_type": "~2.2.0",
"anomaly/email-field_type": "~2.1.0",
"anomaly/state-field_type": "~2.3.0",
"anomaly/files-field_type": "~2.3.0",
"anomaly/tags-field_type": "~2.4.0",
"anomaly/slug-field_type": "~2.1.0",
"anomaly/text-field_type": "~2.2.0",
"anomaly/file-field_type": "2.2.32",
"anomaly/url-field_type": "~2.2.0",
"anomaly/configuration-module": "~2.1.0",
"anomaly/preferences-module": "~2.2.0",
"anomaly/navigation-module": "~2.4.0",
"anomaly/dashboard-module": "~2.2.0",
"anomaly/redirects-module": "~2.3.0",
"anomaly/variables-module": "~2.4.0",
"anomaly/settings-module": "~2.4.0",
"anomaly/addons-module": "~2.3.0",
"anomaly/blocks-module": "~1.3.0",
"anomaly/search-module": "~3.0.0",
"anomaly/system-module": "~1.0.0",
"anomaly/users-module": "~2.5.0",
"anomaly/pages-module": "~2.6.0",
"anomaly/posts-module": "~2.6.0",
"anomaly/files-module": "~2.6.0",
"anomaly/contact-plugin": "~1.2.0",
"anomaly/helper-plugin": "~2.1.0",
"anomaly/robots-extension": "~2.1.0",
"anomaly/sitemap-extension": "~2.2.0",
"anomaly/html_block-extension": "~1.0.0",
"anomaly/wysiwyg_block-extension": "~1.0.0",
"ammadeuss/laravel-html-dom-parser": "^1.1",
"visiosoft/decimal-field_type": "~2.1.0",
"visiosoft/integer-field_type": "~2.1.0",
"guzzlehttp/guzzle": "~6.3.3"
},
"replace" : {
"anomaly/streams-platform": "*"
},
"require-dev": {
"filp/whoops": "~2.0",
"phpunit/phpunit": "^7.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*",
"anomaly/installer-module": "~2.3.0"
},
"repositories": [
{
"type": "composer",
"url": "https://packages.pyrocms.com"
},
{
"type": "composer",
"url": "https://community.pyrocms.com"
}
],
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"extra": {
"merge-plugin": {
"include": [
"addons/*/*/*/composer.json",
"core/*/*/composer.json"
],
"recurse": true,
"replace": false
},
"laravel": {
"dont-discover": [
"*"
]
}
},
"config": {
"bin-dir": "bin",
"preferred-install": "dist",
"optimize-autoloader": true
} }
],
"require": {
"wikimedia/composer-merge-plugin": "~1.4.0",
"anomaly/streams-composer-plugin": "~1.1.0",
"visiosoft/streams-platform": "^1.7",
"anomaly/default_authenticator-extension": "~2.1.0",
"anomaly/throttle_security_check-extension": "~2.1.0",
"anomaly/private_storage_adapter-extension": "~1.0.0",
"anomaly/default_page_handler-extension": "~2.1.0",
"anomaly/user_security_check-extension": "~2.1.0",
"anomaly/xml_feed_widget-extension": "~2.1.0",
"anomaly/page_link_type-extension": "~2.1.0",
"anomaly/url_link_type-extension": "~2.1.0",
"anomaly/relationship-field_type": "~2.2.0",
"anomaly/colorpicker-field_type": "~2.3.0",
"anomaly/polymorphic-field_type": "~2.1.0",
"anomaly/checkboxes-field_type": "~2.4.0",
"anomaly/encrypted-field_type": "~2.1.0",
"anomaly/datetime-field_type": "~3.0.0",
"anomaly/repeater-field_type": "~1.3.0",
"anomaly/language-field_type": "~2.2.0",
"anomaly/multiple-field_type": "~2.3.0",
"anomaly/textarea-field_type": "~2.1.0",
"anomaly/markdown-field_type": "~3.1.0",
"anomaly/wysiwyg-field_type": "~3.1.0",
"anomaly/boolean-field_type": "~2.3.0",
"anomaly/country-field_type": "~2.3.0",
"anomaly/decimal-field_type": "~2.1.0",
"anomaly/integer-field_type": "~2.1.0",
"anomaly/editor-field_type": "~3.1.0",
"anomaly/select-field_type": "~2.3.0",
"anomaly/slider-field_type": "~3.0.0",
"anomaly/addon-field_type": "~2.2.0",
"anomaly/email-field_type": "~2.1.0",
"anomaly/state-field_type": "~2.3.0",
"anomaly/files-field_type": "~2.3.0",
"anomaly/tags-field_type": "~2.4.0",
"anomaly/slug-field_type": "~2.1.0",
"anomaly/text-field_type": "~2.2.0",
"anomaly/file-field_type": "~2.2.0",
"anomaly/url-field_type": "~2.2.0",
"anomaly/configuration-module": "~2.1.0",
"anomaly/preferences-module": "~2.2.0",
"anomaly/navigation-module": "~2.4.0",
"anomaly/dashboard-module": "~2.2.0",
"anomaly/redirects-module": "~2.3.0",
"anomaly/variables-module": "~2.4.0",
"anomaly/settings-module": "~2.4.0",
"anomaly/addons-module": "~2.3.0",
"anomaly/blocks-module": "~1.3.0",
"anomaly/search-module": "~3.0.0",
"anomaly/system-module": "~1.0.0",
"anomaly/users-module": "~2.5.0",
"anomaly/pages-module": "~2.6.0",
"anomaly/posts-module": "~2.6.0",
"anomaly/files-module": "~2.6.0",
"anomaly/contact-plugin": "~1.2.0",
"anomaly/helper-plugin": "~2.1.0",
"anomaly/robots-extension": "~2.1.0",
"anomaly/sitemap-extension": "~2.2.0",
"anomaly/html_block-extension": "~1.0.0",
"anomaly/wysiwyg_block-extension": "~1.0.0",
"ammadeuss/laravel-html-dom-parser": "^1.1",
"visiosoft/decimal-field_type": "~2.1.0",
"visiosoft/integer-field_type": "~2.1.0",
"guzzlehttp/guzzle": "~6.3.3"
},
"replace": {
"anomaly/streams-platform": "*"
},
"require-dev": {
"filp/whoops": "~2.0",
"phpunit/phpunit": "^7.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*",
"anomaly/installer-module": "~2.3.0"
},
"repositories": [
{
"type": "composer",
"url": "https://packages.pyrocms.com"
},
{
"type": "composer",
"url": "https://community.pyrocms.com"
}
],
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"extra": {
"merge-plugin": {
"include": [
"addons/*/*/*/composer.json",
"core/*/*/composer.json"
],
"recurse": true,
"replace": false
},
"laravel": {
"dont-discover": [
"*"
]
}
},
"config": {
"bin-dir": "bin",
"preferred-install": "dist",
"optimize-autoloader": true
}
} }