This commit is contained in:
Diatrex 2020-02-19 15:20:00 +03:00
commit 27710512c1
17 changed files with 376 additions and 329 deletions

View File

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

View File

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

View File

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

View File

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

View File

@ -8,7 +8,7 @@
</a>
<ul class="dropdown-menu" x-placement="bottom-start">
<ul class="dropdown-menu px-2 mt-0" x-placement="bottom-start">
<li>
<a href="#" data-value="sort_price_up"
class="sort-by-item text-dark">{{ trans("visiosoft.module.advs::field.price_high") }}</a>

View File

@ -27,7 +27,6 @@ class AdvCriteria extends EntryCriteria
return $ads;
}
public function advsofDay()
{
$advModel = new AdvModel();
@ -69,6 +68,24 @@ class AdvCriteria extends EntryCriteria
return $ads;
}
public function findAdsByCategoryId($catId)
{
$advModel = new AdvModel();
$advs = AdvModel::query()
->whereDate('finish_at', '>=', date("Y-m-d H:i:s"))
->where('status', '=', 'approved')
->where('slug', '!=', '')
->where('cat1', $catId)
->get();
$ads = $advModel->getLocationNames($advs);
foreach ($ads as $index => $ad) {
$ads[$index]->detail_url = $advModel->getAdvDetailLinkByModel($ad, 'list');
$ads[$index] = $advModel->AddAdsDefaultCoverImage($ad);
}
return $ads;
}
public function getCurrentLocale()
{
return locale_get_display_name(config('app.locale'));

View File

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

View File

@ -212,7 +212,10 @@ class AdvsModuleServiceProvider extends AddonServiceProvider
'as' => 'ajax::getAds',
'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>";
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

@ -8,7 +8,8 @@ return [
'title' => 'visiosoft.theme.base::section.catalog_mode.name',
'fields' => [
'navigation_title', 'navigation_action', 'date_fields', 'price_fields',
'breadcrumbs', 'ad_details', 'ad_details_tab','latest_and_view_all_btn'
'breadcrumbs', 'ad_details', 'ad_details_tab','latest_and_view_all_btn',
'register_page_instruction_logo'
],
],
],

View File

@ -49,5 +49,11 @@ return [
"default_value" => 1,
]
],
'register_page_instruction_logo' => [
'type' => 'anomaly.field_type.file',
"config" => [
"folders" => ['images'],
"mode" => "upload",
]
],
];

View File

@ -123,7 +123,4 @@
padding-right: 85px;
background-color: #fff;
}
#header {
display: none;
}
}

View File

@ -6,4 +6,9 @@
font-size: 18px;
position: relative;
top: 4px;
}
.personal-advantages img {
max-height: 60px;
max-width: 60px;
}

View File

@ -28,4 +28,7 @@ return [
'latest_and_view_all_btn' => [
'name' => 'Latest and View All Btn',
],
'register_page_instruction_logo' => [
'name' => 'Register Page Instruction Logo',
],
];

View File

@ -1,18 +1,8 @@
{% extends "theme::layouts/default" %}
{% block content %}
{% set logo_web = file(setting_value('visiosoft.theme.sahibinden::logo_web')).url %}
{% if logo_web is null %}
{% set logo_web = img('visiosoft.theme.sahibinden::images/logo_web.png').url %}
{% endif %}
<div class="col-12 px-5 mx-4">
<a href="{{ url("/") }}">
<img class="img-responsive d-none d-sm-block logo-web"
src="{{ logo_web }}"></a>
</div>
<div class="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">
{% set form = form('signIn')
.redirect(app.request.get('redirect'))

View File

@ -40,8 +40,11 @@
<div class="col-12 col-md-6 py-3 pr-0 instructions d-none d-md-block">
<div class="border personal-advantages py-5 px-5">
<div class="d-flex align-items-center mb-4">
<img src="{{ img('visiosoft.theme.base::images/register-instruction.png').url }}">
<h4 class="ml-3">
{% if setting_value('visiosoft.theme.base::register_page_instruction_logo') %}
<img class="mr-3"
src="{{ file(setting_value('visiosoft.theme.base::register_page_instruction_logo')).url }}">
{% endif %}
<h4 class="mb-0">
{{ trans('visiosoft.theme.base::field.personal_registration_header') }}
</h4>
</div>

View File

@ -1,138 +1,138 @@
{
"name": "openclassify/openclassify",
"description": "OpenClassify is the extensible and most advanced open source classified app build with Laravel.",
"type": "project",
"keywords": [
"OpenClassify",
"classified",
"open Classify"
],
"license": "MIT",
"authors": [
{
"name": "Visiosoft, Inc.",
"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.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
"name": "openclassify/openclassify",
"description": "OpenClassify is the extensible and most advanced open source classified app build with Laravel.",
"type": "project",
"keywords": [
"OpenClassify",
"classified",
"open Classify"
],
"license": "MIT",
"authors": [
{
"name": "Visiosoft, Inc.",
"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.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
}
}