Merge branch 'master' of https://github.com/openclassify/openclassify
@ -18,6 +18,8 @@ return [
|
||||
'title' => 'visiosoft.module.advs::section.ads',
|
||||
'fields' => [
|
||||
'latest-limit',
|
||||
'default_view_type',
|
||||
'hide_zero_price',
|
||||
'auto_approve',
|
||||
'estimated_pending_time',
|
||||
'default_published_time',
|
||||
|
||||
@ -14,6 +14,19 @@ return [
|
||||
'default_value' => 5,
|
||||
],
|
||||
],
|
||||
'default_view_type' => [
|
||||
'type' => 'anomaly.field_type.select',
|
||||
'config' => [
|
||||
'options' => ['list' => 'List', 'table' => 'Table', 'map' => 'Map', 'gallery' => 'Gallery'],
|
||||
'default_value' => 'list',
|
||||
]
|
||||
],
|
||||
'hide_zero_price' => [
|
||||
'type' => 'anomaly.field_type.boolean',
|
||||
'config' => [
|
||||
'default_value' => false,
|
||||
],
|
||||
],
|
||||
'auto_approve' => [
|
||||
'type' => 'anomaly.field_type.boolean',
|
||||
'bind' => 'adv.auto_approve',
|
||||
|
||||
@ -211,8 +211,9 @@ $(document).ready(function () {
|
||||
});
|
||||
|
||||
$(".priceField, .priceDecimalField").on('change', function () {
|
||||
var price = parseInt($(".priceField").val().replace(/\./g, ''));
|
||||
var decimal = parseInt($(".priceDecimalField").val());
|
||||
let price = $(".priceField").val() === "" ? '0' : $(".priceField").val();
|
||||
price = parseInt(price.replace(/\./g, ''));
|
||||
let decimal = parseInt($(".priceDecimalField").val());
|
||||
$('.priceHidden').find('input').val(parseFloat(price + "." + decimal));
|
||||
})
|
||||
});
|
||||
|
||||
@ -278,4 +278,7 @@ return [
|
||||
'part_2' => 'If not, click the "Edit" button.',
|
||||
],
|
||||
'views' => 'Views',
|
||||
|
||||
// Detail page
|
||||
"no_street_view" => "No street view image in this location"
|
||||
];
|
||||
|
||||
@ -4,6 +4,13 @@ return [
|
||||
'auto_approve' => [
|
||||
'name' => 'Auto Approve',
|
||||
],
|
||||
'default_view_type' => [
|
||||
'name' => 'Default View Type',
|
||||
],
|
||||
'hide_zero_price' => [
|
||||
'name' => 'Hide Price if Zero',
|
||||
'instructions' => 'Hide the price if the ad price is 0',
|
||||
],
|
||||
'estimated_pending_time' => [
|
||||
'name' => 'Estimated Pending Time',
|
||||
'instructions' => 'In Hours',
|
||||
|
||||
@ -173,7 +173,7 @@ return [
|
||||
'create_adv' => 'Krijoni shpalljen',
|
||||
'edit_adv' => 'Ndrysho shpalljen',
|
||||
'mandatory_fields' => 'Të dhëna të detyrueshme',
|
||||
'ad_post' => 'Postimi i reklamave',
|
||||
'ad_post' => 'Postimi i Njoftime',
|
||||
'sell_item' => 'Shitet nje artikull ose sherbim',
|
||||
'search_save' => 'Kërkimi i preferuar u ruajt me sukses',
|
||||
'address' => 'Adresë',
|
||||
@ -185,8 +185,8 @@ return [
|
||||
'extended' => 'Zgjatur me sukses',
|
||||
'declined' => 'Ka rënë me sukses',
|
||||
'search_on_map' => 'Kërkimi në hartë',
|
||||
'post_free_ad' => 'Posto reklamën falas',
|
||||
'select_a_category' => 'Zgjidh nje kategori',
|
||||
'post_free_ad' => 'Posto Njoftime Falas',
|
||||
'select_a_category' => 'Zgjidh nje Kategori',
|
||||
'select_a_sub_category' => 'Zgjidhni një Nën Kategori',
|
||||
'all_dopings_added' => 'Të gjitha llojet e vitamina janë shtuar për këtë shpallje.',
|
||||
'is_get_adv' => [
|
||||
|
||||
@ -16,7 +16,7 @@ return [
|
||||
],
|
||||
'create_ad_with_post_cat' => [
|
||||
'title' => "Posto një shpallje në vetëm 30 sekonda",
|
||||
'msg' => "Ju lutemi NUK postoni reklama të shumta për të njëjtat artikuj ose shërbim. Të gjitha reklamat e kopjuara, spam dhe të kategorizuara gabimisht do të fshihen.",
|
||||
'msg' => "Ju lutemi NUK postoni reklama të shumta për të njëjtat artikuj ose shërbim. Të gjitha njoftime e kopjuara, spam dhe të kategorizuara gabimisht do të fshihen.",
|
||||
'nextBtn' => "tjetër",
|
||||
'cancelBtn' => "ose Anuloni",
|
||||
'link' => "",
|
||||
|
||||
@ -76,7 +76,7 @@ return [
|
||||
'name' => 'Reklama e paracaktuar GET',
|
||||
],
|
||||
'twitter' => [
|
||||
'name' => 'Cicëroj',
|
||||
'name' => 'Twitter',
|
||||
],
|
||||
'facebook' => [
|
||||
'name' => 'Facebook',
|
||||
|
||||
@ -3,27 +3,33 @@
|
||||
{{ trans('visiosoft.module.advs::field.no_location') }}
|
||||
{% else %}
|
||||
{% set map_arr = adv.map_Val|split(',') %}
|
||||
<div id="mapDiv" style="height: 500px; width: 100%; "></div>
|
||||
<div id="mapDiv" style="height: 500px; width: 100%;"></div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
var no_image_text = "{{ trans('visiosoft.module.streetview::field.no_location') }}";
|
||||
var no_image_text = "{{ trans('visiosoft.module.advs::field.no_street_view') }}";
|
||||
|
||||
if (typeof coord !== 'undefined') {
|
||||
var ifAnyImg = "https://maps.googleapis.com/maps/api/streetview/metadata?size=600x300&location=" + coord[0] + "," + coord[1] +
|
||||
"&fov=90&heading=235&pitch=10&key=" + google_map_key;
|
||||
$.getJSON(ifAnyImg, function (data) {
|
||||
if (data.status === "OK") {
|
||||
loadScript('https://maps.googleapis.com/maps/api/js?key={{ setting_value('visiosoft.module.location::google_map_key') }}&callback=initMap');
|
||||
}
|
||||
if (data.status === "ZERO_RESULTS") {
|
||||
$("#mapDiv").html(no_image_text);
|
||||
} else {
|
||||
$("#mapDiv").html("Google Error : " + data.error_message);
|
||||
}
|
||||
var ifAnyImg = "https://maps.googleapis.com/maps/api/streetview/metadata?size=600x300&location=" + lat + "," + lng +
|
||||
"&fov=90&heading=235&pitch=10&key=" + google_map_key;
|
||||
$.getJSON(ifAnyImg, function (data) {
|
||||
if (data.status === "OK") {
|
||||
loadScript('https://maps.googleapis.com/maps/api/js?key={{ setting_value('visiosoft.module.location::google_map_key') }}&callback=initMap');
|
||||
}
|
||||
)
|
||||
}
|
||||
if (data.status === "ZERO_RESULTS") {
|
||||
$("#mapDiv").html(no_image_text);
|
||||
} else {
|
||||
$("#mapDiv").html("Google Error : " + data.error_message);
|
||||
}
|
||||
}
|
||||
)
|
||||
});
|
||||
|
||||
function loadScript(src, callback) {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
if (callback) script.onload = callback;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
script.src = src;
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
var lat = parseFloat({{ map_arr[0] }});
|
||||
|
||||
@ -288,6 +288,9 @@ class AdvsController extends PublicController
|
||||
|
||||
public function viewTypeBasedRedirect($viewType, $compact)
|
||||
{
|
||||
if (!$viewType) {
|
||||
$viewType = setting_value('visiosoft.module.advs::default_view_type');
|
||||
}
|
||||
if (isset($viewType) and $viewType == 'table') {
|
||||
return $this->view->make('visiosoft.module.advs::list/table', $compact);
|
||||
} elseif (isset($viewType) and $viewType == 'map') {
|
||||
|
||||
74
addons/default/visiosoft/base-theme/resources/css/base.css
Normal file
@ -0,0 +1,74 @@
|
||||
.left-categories-section .categories-list,
|
||||
.left-categories-section .categories-list li ul {
|
||||
list-style: none;
|
||||
margin: 8px 2px 13px 0;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li {
|
||||
padding: 6px 0 0 35px;
|
||||
margin-top: 7px;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li img {
|
||||
margin-left: -35px;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li .main-category {
|
||||
font-weight: bold;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li ul li {
|
||||
margin-bottom: 5px;
|
||||
line-height: 17px;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li .main-category,
|
||||
.left-categories-section .categories-list .categories-list-li ul li a {
|
||||
font: 13px "Lucida Grande", "LucidaGrande", Arial, sans-serif;
|
||||
color: #039;
|
||||
line-height: 17px;
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
background: no-repeat 0 0;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li ul .show-all {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li ul .show-all a {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li .main-category:hover,
|
||||
.left-categories-section .categories-list .categories-list-li ul li a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.left-categories-section .categories-list .categories-list-li ul li a i {
|
||||
color: #5d6f86;
|
||||
}
|
||||
|
||||
#footer .store_icon .playstore {
|
||||
background: url("{{ img('visiosoft.theme.base::images/store_icon.png').url }}") top left no-repeat;
|
||||
width: 96px;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
#footer .store_icon .appstore {
|
||||
background: url("{{ img('visiosoft.theme.base::images/store_icon.png').url }}") top right no-repeat;
|
||||
width: 96px;
|
||||
height: 30px;
|
||||
}
|
||||
@media (min-width: 577px) {
|
||||
.left-categories-section .categories-list .categories-list-li img {
|
||||
width: 26px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 403 B |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
BIN
addons/default/visiosoft/base-theme/resources/images/get-ads.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 2.0 MiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 981 B |
|
After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 345 B |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
@ -26,14 +26,18 @@ function phoneMask(fields) {
|
||||
});
|
||||
|
||||
function maskPhone(name) {
|
||||
var currentMask = $("input[name='" + name + "']").attr('placeholder');
|
||||
if (currentMask) {
|
||||
$("input[name='" + name + "']").mask(currentMask.replace(/[0-9+]/ig, '9'), {
|
||||
autoclear: true,
|
||||
clearIncomplete: true
|
||||
});
|
||||
if ( $("input[name='" + name + "']").length ) {
|
||||
var currentMask = $("input[name='" + name + "']").attr('placeholder');
|
||||
if(currentMask) {
|
||||
$("input[name='" + name + "']").mask(currentMask.replace(/[0-9+]/ig, '9'), {
|
||||
autoclear: true,
|
||||
clearIncomplete: true
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function controlNumber(inputQuery) {
|
||||
@ -51,4 +55,4 @@ function controlNumber(inputQuery) {
|
||||
})
|
||||
|
||||
return iti.isValidNumber();
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,5 +38,11 @@ return [
|
||||
'create_new_password' => 'إنشاء كلمة مرور جديدة',
|
||||
|
||||
// Login page
|
||||
'or' => 'أو'
|
||||
'or' => 'أو',
|
||||
|
||||
// Side menu links
|
||||
'company_directory' => 'دليل شركة',
|
||||
'popular_ads' => 'إعلانات شعبية',
|
||||
'last_48_hours' => 'آخر 48 ساعة',
|
||||
'secure_e-commerce_ads' => 'إعلانات التجارة الإلكترونية الآمنة',
|
||||
];
|
||||
@ -38,5 +38,11 @@ return [
|
||||
'create_new_password' => 'Neues Passwort erstellen',
|
||||
|
||||
// Login page
|
||||
'or' => 'oder'
|
||||
'or' => 'oder',
|
||||
|
||||
// Side menu links
|
||||
'company_directory' => 'Firmenverzeichnis',
|
||||
'popular_ads' => 'Beliebte Anzeigen',
|
||||
'last_48_hours' => 'Letzte 48 Stunden',
|
||||
'secure_e-commerce_ads' => 'Sichere E-Commerce-Anzeigen',
|
||||
];
|
||||
@ -38,5 +38,11 @@ return [
|
||||
'create_new_password' => 'Create New Password',
|
||||
|
||||
// Login page
|
||||
'or' => 'or'
|
||||
'or' => 'or',
|
||||
|
||||
// Side menu links
|
||||
'company_directory' => 'Company directory',
|
||||
'popular_ads' => 'Popular Ads',
|
||||
'last_48_hours' => 'Last 48 Hours',
|
||||
'secure_e-commerce_ads' => 'Secure e-Commerce Ads',
|
||||
];
|
||||
@ -38,5 +38,11 @@ return [
|
||||
'create_new_password' => 'Создать новый пароль',
|
||||
|
||||
// Login page
|
||||
'or' => 'или'
|
||||
'or' => 'или',
|
||||
|
||||
// Side menu links
|
||||
'company_directory' => 'Каталог компаний',
|
||||
'popular_ads' => 'Популярные объявления',
|
||||
'last_48_hours' => 'Последние 48 часов',
|
||||
'secure_e-commerce_ads' => 'Безопасные объявления электронной коммерции',
|
||||
];
|
||||
@ -4,8 +4,8 @@ return [
|
||||
'post_ad' => [
|
||||
'name' => 'Posto reklamën',
|
||||
],
|
||||
'login' => 'Hyrje',
|
||||
'login' => 'hyrje',
|
||||
'register' => 'Regjistrohu',
|
||||
'continue' => 'Vazhdoj',
|
||||
'reset_password' => 'Rivendosni Fjalëkalimin',
|
||||
'continue' => 'vazhdoj',
|
||||
'reset_password' => 'Rivendosni fjalëkalimin',
|
||||
];
|
||||
@ -38,5 +38,11 @@ return [
|
||||
'create_new_password' => 'Krijoni Fjalëkalimin e ri',
|
||||
|
||||
// Login page
|
||||
'or' => 'ose'
|
||||
'or' => 'ose',
|
||||
|
||||
// Side menu links
|
||||
'company_directory' => 'Drejtoria e ndërmarrjes',
|
||||
'popular_ads' => 'Reklama popullore',
|
||||
'last_48_hours' => '48 orët e fundit',
|
||||
'secure_e-commerce_ads' => 'Reklama të sigurta për tregtinë elektronike',
|
||||
];
|
||||
@ -38,5 +38,11 @@ return [
|
||||
'create_new_password' => 'Yeni Şifre Oluştur',
|
||||
|
||||
// Login page
|
||||
'or' => 'veya'
|
||||
'or' => 'veya',
|
||||
|
||||
// Side menu links
|
||||
'company_directory' => 'şirket bilgisi',
|
||||
'popular_ads' => 'popüler reklamlar',
|
||||
'last_48_hours' => 'son 48 saat',
|
||||
'secure_e-commerce_ads' => 'güvenli e-ticaret',
|
||||
];
|
||||
@ -0,0 +1,20 @@
|
||||
{% extends "theme::layouts/default" %}
|
||||
{% block ogdata %}
|
||||
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/ogdata" %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<!-- breadcrumb -->
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/breadcrumb" %}
|
||||
<!-- breadcrumb -->
|
||||
{% include "visiosoft.module.advs::ad-detail/partials/ad-status" %}
|
||||
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/main" %}
|
||||
|
||||
{{ asset_add("styles.css", "visiosoft.theme.sahibinden::css/sahibinden.css") }}
|
||||
{{ asset_add("scripts.js", "visiosoft.module.advs::js/viewed.js") }}
|
||||
{{ asset_add("styles.css", "visiosoft.module.advs::css/detail.css") }}
|
||||
{{ asset_add("styles.css", "visiosoft.theme.sahibinden::css/detail.css") }}
|
||||
{% endblock %}
|
||||
@ -0,0 +1,165 @@
|
||||
<main id="main">
|
||||
<div class="container">
|
||||
<section id="main" class="clearfix details-page">
|
||||
<div class="container">
|
||||
<div class="classified-title row mx-0">
|
||||
<div class="col-12 col-sm-6 p-0 m-0">
|
||||
<h1>
|
||||
{{ adv.title }}
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="col-6 pt-3 m-0 justify-content-end pull-right d-none d-sm-flex">
|
||||
{{ addBlock('ad-detail/title/action', {'adv_id':adv.id, 'sahibinden':true})|raw }}
|
||||
<a href="https://www.facebook.com/sharer/sharer.php?u={{ url_current()|url_encode }}"
|
||||
class="a-sahibinden-type pl-2">
|
||||
<i class="fab fa-facebook"></i>
|
||||
</a>
|
||||
<a href="http://twitter.com/share?url={{ url_current()|url_encode }}"
|
||||
class="a-sahibinden-type pl-2">
|
||||
<i class="fab fa-twitter"></i>
|
||||
</a>
|
||||
<a href="https://wa.me/?text={{ setting_value('visiosoft.theme.sahibinden::shareWhatsappMsg')|url_encode }}%20{{ app.request.uri|url_encode }}" target="_blank" class="a-sahibinden-type pl-2">
|
||||
<i class="fab fa-whatsapp"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--detail-ad -->
|
||||
<div class="section slider mb-4">
|
||||
<div class="row">
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/slider" %}
|
||||
|
||||
<div class="col-md-3 pl-0">
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/detail" %}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3 px-0 classified-user-section">
|
||||
<div class="userBox d-none d-sm-block">
|
||||
<div class="userDetail">
|
||||
<div class="border-bottom pb-3 mb-3">
|
||||
{{ addBlock('ad-details/user-image', {'userId': adv.created_by_id})|raw }}
|
||||
<h5 class="d-inline-block">{{ adv.first_name }} {{ adv.last_name }}</h5>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between">
|
||||
<p>{{ trans('visiosoft.theme.sahibinden::field.member_since.name') }} {{ user(adv.create_by_id).created_at|date('F Y') }}</p>
|
||||
{% if profile.file.url is not null %}
|
||||
<img src="{{ profile.file.url }}" class="user-profile-img">
|
||||
{% endif %}
|
||||
</div>
|
||||
<ul class="classified-owner-action list-unstyled">
|
||||
<li>
|
||||
{% include 'visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/list-link' %}
|
||||
</li>
|
||||
{{ addBlock('ad-detail/seller/action',{'seller_id':adv.created_by_id, 'sahibinden':true})|raw }}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="userDetail">
|
||||
{% set user = adv.created_by %}
|
||||
<ul class="list-unstyled classified-owner-contact">
|
||||
{% if user.gsm_phone is not null %}
|
||||
<li class="row">
|
||||
<div class="col-md-4 p-0 m-0">
|
||||
<strong>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.mobile.name') }}
|
||||
</strong>
|
||||
</div>
|
||||
<div class="col-md-8 p-0 m-0 text-right">{{ user.gsm_phone }}</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user.office_phone is not empty %}
|
||||
<li class="row border-1 border-top">
|
||||
<div class="col-md-4 p-0 m-0">
|
||||
<strong>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.office_phone.name') }}
|
||||
</strong>
|
||||
</div>
|
||||
<div class="col-md-8 p-0 m-0 text-right">{{ user.office_phone }}</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user.land_phone is not empty %}
|
||||
<li class="row border-1 border-top">
|
||||
<div class="col-md-4 p-0 m-0">
|
||||
<strong>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.land_phone.name') }}
|
||||
</strong>
|
||||
</div>
|
||||
<div class="col-md-8 p-0 m-0 text-right">{{ user.land_phone }}</div>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% if user.gsm_phone is not null %}
|
||||
<div class="d-none">
|
||||
<input class="phoneCheck" type="hidden" value="{{ user.gsm_phone }}">
|
||||
{{ asset_add('scripts.js','visiosoft.theme.sahibinden::js/phoneCheck.js') }}
|
||||
</div>
|
||||
<div class="alert alert-info hidden alert-phoneNumber">
|
||||
<p>
|
||||
{{ trans('visiosoft.theme.sahibinden::message.invalid_phoneNumber') }}
|
||||
</p>
|
||||
{% if auth_check() %}
|
||||
<p>
|
||||
<a href="{{ url_route('profile::profile') }}">
|
||||
<b>
|
||||
{{ trans('visiosoft.theme.sahibinden::button.update_profile') }}
|
||||
</b>
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
</p>
|
||||
</div>
|
||||
<a href="https://wa.me/{{ user.gsm_phone|replace({'+': ""}) }}" target="_blank"
|
||||
class="whatsapp-link hidden">
|
||||
<button type="button" class="whatsapp-message btn position-relative">
|
||||
<i class="d-none d-lg-inline-block fab fa-whatsapp position-absolute"></i>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.whatsapp') }}
|
||||
</button>
|
||||
</a>
|
||||
{% endif %}
|
||||
{{ addBlock('ad-detail/contact-with', {'adv': adv, 'showTheme': false})|raw }}
|
||||
</div>
|
||||
</div>
|
||||
{{ addBlock('ad-detail/widget', {'ad': adv, 'price': adv.price, 'id': adv.id, 'cat1': categories['cat1']})|raw }}
|
||||
{{ addBlock('ad-detail/widget-details', {'adv': adv})|raw }}
|
||||
{% if setting_value('visiosoft.theme.sahibinden::show_security_tips') %}
|
||||
<div class="security-tips d-none d-sm-block">
|
||||
<h6>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.security_tips.name') }}
|
||||
</h6>
|
||||
<p>
|
||||
{{ setting_value('visiosoft.theme.sahibinden::security_tips_msg') }}
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--detail-ad -->
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/content" %}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
{% if user.gsm_phone is not null %}
|
||||
<div class="position-fixed w-100 d-block d-sm-none bg-light footer-mobile-device hidden">
|
||||
<div class="row m-0 py-2 justify-content-center">
|
||||
<div class="col pr-1">
|
||||
<a href="tel:{{ user.gsm_phone }}" class="btn btn-primary w-100">
|
||||
<i class="fas fa-phone"></i>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.contact_us.name') }}
|
||||
</a>
|
||||
</div>
|
||||
<a href="https://wa.me/{{ user.gsm_phone|replace({'+': ""}) }}" target="_blank"
|
||||
class="whatsapp-link hidden col pl-1">
|
||||
<button type="button" class="whatsapp-message mt-0 btn position-relative">
|
||||
<i class="fab fa-whatsapp"></i>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.whatsapp') }}
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% include "visiosoft.module.advs::ad-detail/partials/dropleft-edit" %}
|
||||
@ -0,0 +1,12 @@
|
||||
<nav aria-label="breadcrumb" class=" d-none d-sm-block">
|
||||
<ol class="breadcrumb classified-breadcrumb">
|
||||
<div class="container">
|
||||
{% for cat in categories %}
|
||||
<li class="breadcrumb-item float-left">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list_cat', [cat.id]) }}">{{ cat['name'] }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<input class="hidden" id="adv-id" value="{{ adv.id }}">
|
||||
</ol>
|
||||
</nav>
|
||||
@ -0,0 +1,76 @@
|
||||
<div class="description-info classified-description">
|
||||
<div class="row">
|
||||
<div class="col-md-12 description-tabs">
|
||||
<nav>
|
||||
<div class="nav nav-tabs nav-fill ad-detail-tabs" id="nav-tab" role="tablist">
|
||||
<a class="nav-item nav-link bg-secondary d-block d-sm-none" id="nav-info-tab"
|
||||
data-toggle="tab" href="#nav-info" role="tab"
|
||||
aria-controls="nav-info"
|
||||
aria-selected="true">{{ trans('visiosoft.theme.sahibinden::field.ad_info.name') }}</a>
|
||||
|
||||
<a class="nav-item nav-link active bg-secondary" id="nav-description-tab"
|
||||
data-toggle="tab" href="#nav-description" role="tab"
|
||||
aria-controls="nav-description"
|
||||
aria-selected="true">{{ trans('visiosoft.module.advs::field.description') }}</a>
|
||||
|
||||
<a class="nav-item nav-link bg-secondary" id="nav-location-tab"
|
||||
data-toggle="tab" href="#nav-location" role="tab"
|
||||
aria-controls="nav-location"
|
||||
aria-selected="true">{{ trans('visiosoft.module.advs::field.location') }}</a>
|
||||
|
||||
<!-- Content Tab With Block -->
|
||||
{{ addBlock('ad-detail/content-tab',{'features':features,'adv':adv})|raw }}
|
||||
<!-- Content Tab With Block -->
|
||||
</div>
|
||||
</nav>
|
||||
<div class="tab-content pb-3 px-3 px-sm-0 border-0" id="nav-tabContent">
|
||||
<div class="tab-pane fade" id="nav-info" role="tabpanel"
|
||||
aria-labelledby="nav-info-tab">
|
||||
<ul class="list-unstyled classified-detail">
|
||||
<li class="row m-0">
|
||||
<div class="col-6 p-0 m-0 font-weight-bold detail-title">{{ trans('visiosoft.theme.sahibinden::field.price.name') }}</div>
|
||||
<div class="col-6 p-0 m-0 text-primary detail-value">{{ adv.price.currency }}</div>
|
||||
</li>
|
||||
<li class="row m-0">
|
||||
<div class="col-6 p-0 m-0 font-weight-bold detail-title">{{ trans('visiosoft.theme.sahibinden::field.ad.name') }}</div>
|
||||
<div class="col-6 p-0 m-0 text-danger detail-value">{{ adv.id }}</div>
|
||||
</li>
|
||||
<li class="row m-0">
|
||||
<div class="col-6 p-0 m-0 font-weight-bold detail-title">{{ trans('visiosoft.theme.sahibinden::field.ad_date.name') }}</div>
|
||||
<div class="col-6 p-0 m-0 detail-value">{{ adv.created_at|date('d/m/Y') }}</div>
|
||||
</li>
|
||||
{{ addBlock('ad-detail/content',{'features_detail':features})|raw }}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade show active" id="nav-description" role="tabpanel"
|
||||
aria-labelledby="nav-description-tab">
|
||||
<h4 class="subject-tab d-none d-sm-block mb-0 border">{{ trans('visiosoft.module.advs::field.explanation') }}</h4>
|
||||
<div class="row mx-0 mt-0">
|
||||
<div class="col-12 classified-description-row border mt-0 pt-2">
|
||||
<p>{{ adv.advs_desc|raw }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{ addBlock('ad-detail/checkboxes',{'features':features})|raw }}
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade show" id="nav-location" role="tabpanel"
|
||||
aria-labelledby="nav-location-tab">
|
||||
<div class="classified-description-row px-3 border">
|
||||
{% include "visiosoft.module.advs::ad-detail/partials/map" %}
|
||||
</div>
|
||||
</div>
|
||||
<!-- Content With Block -->
|
||||
{{ addBlock('ad-detail/content',{'features':features,'adv':adv, 'profile': profile, 'show':true})|raw }}
|
||||
<!-- Content With Block -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ addBlock('ad-detail/section',{'adv':adv})|raw }}
|
||||
<div class="d-none d-sm-block">
|
||||
{{ setting_value('visiosoft.theme.sahibinden::detail_bottom')|raw }}
|
||||
</div>
|
||||
<div class="d-block d-sm-none">
|
||||
{{ setting_value('visiosoft.theme.sahibinden::detail_bottom_mobile')|raw }}
|
||||
</div>
|
||||
@ -0,0 +1,58 @@
|
||||
{% set district = getDistrict(adv.district.getObject().value) %}
|
||||
{% set neighborhood = getNeighborhood(adv.neighborhood.getObject().value) %}
|
||||
<div class="slider-text">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 offered-field offered-row p-0">
|
||||
<h3 class="ad-price">
|
||||
<b>{{ adv.price.currency(null,'currency') }}</b>
|
||||
|
||||
{{ addBlock('ad-detail/details',{'adv':adv,'theme':'sahibinden'})|raw }}
|
||||
|
||||
<!-- priceField with Block -->
|
||||
{{ addBlock('ad-detail/priceField',{'adv':adv})|raw }}
|
||||
<!-- priceField with Block -->
|
||||
|
||||
</h3>
|
||||
<h2 class="d-none d-sm-block">
|
||||
{% set lastCatId = categories|last['id'] %}
|
||||
{% if setting_value('visiosoft.theme.sahibinden::show_country') %}
|
||||
{{ adv.country_name }}
|
||||
<span>/</span>
|
||||
{% endif %}
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?city[]={{ adv.city }}&cat={{ lastCatId }}"
|
||||
class="link-unstyled">
|
||||
{{ adv.city_name }}
|
||||
</a>
|
||||
{% if district %}
|
||||
<span>/</span>
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?city[]={{ adv.city }}&district[]={{ district.id }}&cat={{ lastCatId }}"
|
||||
class="link-unstyled">
|
||||
{{ district.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if neighborhood %}
|
||||
<span>/</span>
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?city[]={{ adv.city }}&district[]={{ district.id }}&neighborhood[]={{ neighborhood.id }}&cat={{ lastCatId }}"
|
||||
class="link-unstyled">
|
||||
{{ neighborhood.name }}
|
||||
</a>
|
||||
{% endif %}
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 p-0 d-none d-sm-block">
|
||||
<ul class="list-unstyled classified-detail">
|
||||
<li class="row m-0">
|
||||
<div class="col-md-6 p-0 m-0 font-weight-bold">{{ trans('visiosoft.module.advs::field.ad_id') }}</div>
|
||||
<div class="col-md-6 p-0 m-0 text-danger">{{ adv.id }}</div>
|
||||
</li>
|
||||
<li class="row m-0">
|
||||
<div class="col-md-6 p-0 m-0 font-weight-bold">{{ trans('visiosoft.theme.sahibinden::field.ad_date.name') }}</div>
|
||||
<div class="col-md-6 p-0 m-0">{{ adv.created_at|date('d/m/Y') }}</div>
|
||||
</li>
|
||||
{{ addBlock('ad-detail/content',{'features_detail':features,'adv':adv})|raw }}
|
||||
<li class="row m-0">
|
||||
<div class="col-md-6 p-0 m-0 font-weight-bold">{{ trans('visiosoft.module.advs::field.views') }}</div>
|
||||
<div class="col-md-6 p-0 m-0 font-weight-bold viewed-ad-count">{{ adv.count_show_ad }}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,7 @@
|
||||
{% if addBlock('store/link') is null %}
|
||||
<a href="{{ url_route('visiosoft.module.advs::list_user_ad', [adv.created_by_id]) }}">
|
||||
{{ trans('visiosoft.theme.sahibinden::field.other_ads.name') }}
|
||||
</a>
|
||||
{% else %}
|
||||
{{ addBlock('store/link', {'userId': adv.created_by_id})|raw }}
|
||||
{% endif %}
|
||||
@ -0,0 +1,7 @@
|
||||
<meta property="og:site_name"
|
||||
content="{{ template.get('og_site_name', setting_value('streams::name', config_get('streams::distribution.name'))) }}"/>
|
||||
<meta property="og:description" content="{{ adv.advs_desc|striptags|raw }}"/>
|
||||
<meta property="og:title" content="{{ adv.title }}"/>
|
||||
<meta property="og:url" content="{{ template.get('og_url', url_current()) }}"/>
|
||||
<meta property="og:image" content="{{ adv.getViewPhotoUrl|first }}">
|
||||
<meta property="og:type" content="website"/>
|
||||
@ -0,0 +1,69 @@
|
||||
<div class="col-md-6 slider-box pl-0">
|
||||
{% if blocks('ad-item-picture-block-area') is null %}
|
||||
<div class="fotorama"
|
||||
data-width="700"
|
||||
data-arrows="true"
|
||||
data-allowfullscreen="true"
|
||||
data-ratio="3/2"
|
||||
data-nav="thumbs"
|
||||
data-thumbheight="48">
|
||||
|
||||
{% set advPhoto = '' %}
|
||||
{% if count(adv.files) == 0 %}
|
||||
{% set advPhoto = img('visiosoft.module.advs::images/no-image.png').url %}
|
||||
<a href="{{ image }}"><img src="{{ img('visiosoft.module.advs::images/no-image.png').url }}"></a>
|
||||
{% else %}
|
||||
{% for image in adv.getViewPhotoUrl %}
|
||||
<a href="{{ image }}"><img src="{{ image }}"></a>
|
||||
{% if loop.index == 1 %}
|
||||
{% set advPhoto = image %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="position-absolute w-100 row pl-3 slider-controller-bar">
|
||||
<div class="col-12 bg-light row m-0 py-1">
|
||||
<div class="col-6">
|
||||
<a href="#" class="a-sahibinden-type" onclick="fotorama.requestFullScreen()">
|
||||
<i class="fas fa-search"></i>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.mega_photo.name') }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<button class="{% if adv.video_url %}a-sahibinden-type{% else %} text-secondary {% endif %} border-0 bg-light"
|
||||
data-toggle="modal" data-target="#adv-video" {% if adv.video_url is null %}disabled{% endif %}>
|
||||
<i class="fas fa-video"></i>
|
||||
{{ trans('visiosoft.theme.sahibinden::field.video.name') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
{{ blocks('ad-item-picture-block-area') }}
|
||||
{% endif %}
|
||||
{{ asset_add("styles.css", "visiosoft.module.advs::css/fotorama.css") }}
|
||||
</div>
|
||||
{% if adv.video_url %}
|
||||
<div class="modal fade video-wrapper-modal" id="adv-video" tabindex="-1" role="dialog"
|
||||
aria-labelledby="myModalLabel">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="close-modal text-right">
|
||||
<button type="button" class="btn btn-danger" data-dismiss="modal">X
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<video controls loop class="img-responsive"
|
||||
style="text-align: center; width: 100%">
|
||||
<source src="{{ adv.video_url }}" class="video-src"
|
||||
type="video/mp4"/>
|
||||
</video>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ asset_add("scripts.js", "visiosoft.module.cloudinary::js/close-btn.js") }}
|
||||
{% endif %}
|
||||
{{ asset_add("scripts.js", "visiosoft.module.advs::js/fotorama.js") }}
|
||||
{{ asset_add("scripts.js", "visiosoft.theme.sahibinden::js/slider.js") }}
|
||||
@ -0,0 +1,67 @@
|
||||
{% extends "theme::layouts/default" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<!-- breadcrumb -->
|
||||
{% include "visiosoft.module.advs::list/partials/breadcrumb" %}
|
||||
<!-- breadcrumb -->
|
||||
|
||||
<section id="main" class="clearfix details-page">
|
||||
<div class="container">
|
||||
|
||||
{{ addBlock('ads-list/user-section', {'store': store})|raw }}
|
||||
|
||||
<div class="row my-3">
|
||||
<div class="col-md-3 d-none d-sm-block filter-section">
|
||||
{% include "visiosoft.module.advs::list/partials/list-filter" %}
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="section recommended-ads">
|
||||
<div class="row breadcrumb list-header">
|
||||
<div class="col-12 col-md-6 my-2 d-none d-sm-block">
|
||||
{% include "visiosoft.module.advs::list/partials/list-sort-by" %}
|
||||
</div>
|
||||
<div class="col-12 col-md-6 my-2">
|
||||
{% include "visiosoft.module.advs::list/partials/display-mode" %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="my-2 p-0 bg-light d-flex d-sm-none mobile-list-action row text-center align-items-center">
|
||||
<div class="col-4" id="filter_modal_btn">
|
||||
<i class="fas fa-filter w-100"></i>
|
||||
<a href="javascript:;">{{ trans('visiosoft.theme.sahibinden::field.filter.name') }}</a>
|
||||
</div>
|
||||
<div class="col-4" id="sort_modal_btn">
|
||||
<i class="fas fa-sort-amount-down w-100"></i>
|
||||
<a href="javascript:;">{{ trans('visiosoft.theme.sahibinden::field.sort.name') }}</a>
|
||||
</div>
|
||||
{{ addBlock('ads-list/row-bottom',{'show_favorite_search':true})|raw }}
|
||||
</div>
|
||||
{{ addBlock('ads-list/row',{'topfields':topfields,'advs':advs})|raw }}
|
||||
<div class="row justify-content-center">
|
||||
{% block listContent %}
|
||||
{% include "visiosoft.module.advs::list/partials/ads" %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% include "visiosoft.module.advs::list/partials/pagination" %}
|
||||
|
||||
{{ addBlock('ads-list/row-bottom')|raw }}
|
||||
|
||||
{# <div class="category-tabs"></div>#}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{% include "visiosoft.module.advs::list/partials/filter-modal" %}
|
||||
{% include "visiosoft.module.advs::list/partials/sort-modal" %}
|
||||
<script>
|
||||
var select_trans = "{{ trans('visiosoft.module.advs::field.pick_option') }}";
|
||||
</script>
|
||||
|
||||
{{ asset_add("scripts.js", "visiosoft.module.advs::js/list.js") }}
|
||||
{{ asset_add("styles.css", "visiosoft.module.advs::css/list.css") }}
|
||||
{{ asset_add("styles.css", "visiosoft.theme.sahibinden::css/list.css") }}
|
||||
{% endblock %}
|
||||
{% block customjs %}
|
||||
{{ addBlock('ads-list/list',{'adv':adv})|raw }}
|
||||
{% endblock %}
|
||||
@ -0,0 +1,41 @@
|
||||
{{ addBlock('ad-list/partials/ads',{'featured_advs':featured_advs})|raw }}
|
||||
{% for adv in advs %}
|
||||
<div class="col-6 col-md-12 mb-2 list-classified bg-light aditem-wrapper">
|
||||
<a href="{{ adv.detail_url }}" class="text-dark">
|
||||
<div class="row{% if adv.doping != null %} doping_type4 {% endif %}">
|
||||
<div class="col-md-2 justify-content-center align-self-center text-center border-right border-white">
|
||||
<img class="img-thumbnail" src="{{ adv.cover_photo }}" alt="{{ adv.name }}"
|
||||
style="max-height:80px;">
|
||||
</div>
|
||||
<div class="col-md-7 justify-content-center align-self-center border-right border-white">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<p>{{ adv.name }}</p>
|
||||
</div>
|
||||
<div class="col-md-12 text-truncate d-none d-md-block">
|
||||
<small class="text-muted">{{ adv.cat1_name }}, {{ adv.cat2_name }}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3 text-left justify-content-center align-self-center">
|
||||
<div class="row price-location">
|
||||
<div class="col-md-12">
|
||||
<b>{{ adv.price.currency(null,'currency') }}</b>
|
||||
</div>
|
||||
{% if setting_value('visiosoft.module.location::list_page_location') %}
|
||||
<div class="col-md-12 justify-content-center align-self-center text-truncate">
|
||||
<small>{{ adv.city_name }} {{ adv.country_name }}</small>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<div class="row mb-2">
|
||||
<div class="col-md-2"></div>
|
||||
<div class="col-md-7 justify-content-center align-self-center border-right border-white">
|
||||
{{ addBlock('list/extra-actions', {'ad': adv})|raw }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
@ -0,0 +1,18 @@
|
||||
<nav aria-label="breadcrumb" class=" d-none d-sm-block">
|
||||
<ol class="breadcrumb classified-breadcrumb">
|
||||
<div class="container">
|
||||
<li class="breadcrumb-item float-left">
|
||||
<a href="{{ url('') }}">
|
||||
{{ trans("visiosoft.module.advs::field.home") }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="breadcrumb-item float-left">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}">
|
||||
{{ trans("visiosoft.module.advs::field.list") }}
|
||||
</a>
|
||||
</li>
|
||||
{{ addBlock('ads-list/partials/breadcrumb',{'mainCats': mainCats, 'category': categoryId})|raw }}
|
||||
</div>
|
||||
<input class="hidden" id="adv-id" value="{{ adv.id }}">
|
||||
</ol>
|
||||
</nav>
|
||||
@ -0,0 +1,36 @@
|
||||
|
||||
<section id="main" class="clearfix details-page">
|
||||
<div class="container">
|
||||
|
||||
{% include "visiosoft.module.advs::list/partials/user-section" %}
|
||||
|
||||
<div class="row my-3">
|
||||
<div class="col-md-3 d-none d-sm-block filter-section">
|
||||
{% include "visiosoft.module.advs::list/partials/list-filter" %}
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="section recommended-ads">
|
||||
|
||||
<div class="row breadcrumb list-header">
|
||||
|
||||
<div class="col-md-6 my-2">
|
||||
{% include "visiosoft.module.advs::list/partials/list-sort-by" %}
|
||||
</div>
|
||||
<div class="col-md-6 my-2">
|
||||
{% include "visiosoft.module.advs::list/partials/display-mode" %}
|
||||
</div>
|
||||
</div>
|
||||
{{ addBlock('ads-list/row',{'topfields':topfields})|raw }}
|
||||
<div class="row justify-content-center">
|
||||
{% block listContent %}
|
||||
{% include "visiosoft.module.advs::list/partials/ads" %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% include "visiosoft.module.advs::list/partials/pagination" %}
|
||||
|
||||
{# <div class="category-tabs"></div>#}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -0,0 +1,55 @@
|
||||
<div class="mb-3 p-2 price-section">
|
||||
<div id="price" class="collapse show overflow-auto" aria-labelledby="priceHeading"
|
||||
data-parent="#filter">
|
||||
<div class="row p-0 m-0">
|
||||
<div class="col-md-12 p-0 pl-3 row">
|
||||
<div class="input-group-btn col-md-12 filtering-currencies-btn position-relative w-100 px-0"
|
||||
data-toggle="buttons">
|
||||
{% set active_currencies = setting_value('visiosoft.module.advs::enabled_currencies') %}
|
||||
{% set active_currencies2 = setting_value('visiosoft.module.advs::enabled_currencies') %}
|
||||
{% set selected_currency = setting_value('streams::currency') %}
|
||||
{% if app.request.get('currency') %}
|
||||
{% set selected_currency = app.request.get('currency') %}
|
||||
{% endif %}
|
||||
|
||||
{% for currency in active_currencies %}
|
||||
<label class="btn currency-filtering-label col
|
||||
{% if selected_currency == currency %}
|
||||
active
|
||||
{% endif %}
|
||||
" data-value="{{ currency }}">
|
||||
<input type="radio" class="currency-filtering-btn">
|
||||
{{ currency_symbol(currency) }}
|
||||
</label>
|
||||
{% endfor %}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12 p-0 pl-3 row ">
|
||||
<div class="col-4 p-0">
|
||||
<input type="hidden" name="currency"
|
||||
value="{{ setting_value('streams::currency') }}">
|
||||
<input type="text" id="min-filter" class="price-input form-control w-100"
|
||||
value="{{ app.request.get('min_price') }}" name="min_price"
|
||||
data-placeholder="{{ trans('visiosoft.module.advs::field.min.name') }}"
|
||||
placeholder="{{ trans('visiosoft.module.advs::field.min.name')~" "~setting_value('streams::currency') }}">
|
||||
</div>
|
||||
<div class="col-1 p-0 text-center">-</div>
|
||||
<div class="col-4 p-0">
|
||||
<input id="max-filter" class="price-input form-control w-100" type="text"
|
||||
value="{{ app.request.get('max_price') }}"
|
||||
name="max_price"
|
||||
data-placeholder="{{ trans('visiosoft.module.advs::field.max.name') }}"
|
||||
placeholder="{{ trans('visiosoft.module.advs::field.max.name')~" "~setting_value('streams::currency') }}">
|
||||
</div>
|
||||
<div class="col-2 p-0 pl-2">
|
||||
<button class="btn btn-primary price-filter-btn hidden">
|
||||
{{ trans('visiosoft.theme.sahibinden::field.find.name') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -0,0 +1,8 @@
|
||||
<!-- breadcrumb -->
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/partials/breadcrumb" %}
|
||||
<!-- breadcrumb -->
|
||||
|
||||
{% include "visiosoft.theme.sahibinden::addons/visiosoft/advs-module/ad-detail/main" %}
|
||||
|
||||
{{ asset_add("styles.css", "visiosoft.theme.sahibinden::css/sahibinden.css") }}
|
||||
{{ asset_add("styles.css", "visiosoft.theme.sahibinden::css/detail.css") }}
|
||||
@ -20,7 +20,6 @@
|
||||
{% include "theme::partials/header" %}
|
||||
|
||||
{{ addBlock('layouts/default/section')|raw }}
|
||||
|
||||
<main id="main">
|
||||
<div class="container">
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
{{ asset_add("theme.js", "visiosoft.theme.base::js/jquery.inputmask.bundle.min.js") }}
|
||||
|
||||
{# Theme Scripts #}
|
||||
{#{{ asset_add("theme.js", "theme::js/plugins/*") }}#}
|
||||
{#{{ asset_add("theme.js", "visiosoft.theme.base::js/plugins/*") }}#}
|
||||
{{ asset_add("theme.js", "visiosoft.theme.base::js/theme/initialize.js") }}
|
||||
|
||||
{{ asset_script("theme.js") }}
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
{% set sub_categories_limit = setting_value('visiosoft.theme.base::home_page_sub_categories_limit') %}
|
||||
|
||||
<ul class="categories-list px-0 mr-2 d-block d-sm-none">
|
||||
<li class="categories-list-li category-icon text-truncate category-{{ main_category.slug }}">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?cat={{ main_category.id }}"
|
||||
class="main-category">
|
||||
{% if main_category.icon.path != "" %}
|
||||
<img src="{{ url('files/' ~ main_category.icon.path) }}" alt="{{ main_category.name }}"
|
||||
class="img-responsive">
|
||||
{% else %}
|
||||
<img src="{{ img('visiosoft.theme.base::images/default-categories-icon.png').url }}" alt="{{ main_category.name }}"
|
||||
class="img-responsive">
|
||||
{% endif %}
|
||||
<font>{{ main_category.name }}</font>
|
||||
<p class="p-0 sub-categories">
|
||||
{% set sub_categories = entries('cats','category').where('parent_category_id', main_category.id).where('deleted_at', null).orderBy('sort_order').get() %}
|
||||
{% for sub_category in sub_categories|slice(0,sub_categories_limit) %}
|
||||
{{ sub_category.name }},
|
||||
{% endfor %}
|
||||
</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@ -0,0 +1,40 @@
|
||||
{% set sub_categories_limit = setting_value('visiosoft.theme.base::home_page_sub_categories_limit') %}
|
||||
<ul class="categories-list p-0 d-none d-sm-block">
|
||||
<li class="categories-list-li category-icon category-{{ main_category.slug }}">
|
||||
{% if main_category.icon.path != "" %}
|
||||
<img src="{{ url('files/' ~ main_category.icon.path) }}" alt="{{ main_category.name }}"
|
||||
class="img-responsive">
|
||||
{% else %}
|
||||
<img src="{{ img('visiosoft.theme.base::images/default-categories-icon.png').url }}"
|
||||
alt="{{ main_category.name }}"
|
||||
class="img-responsive">
|
||||
{% endif %}
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?cat={{ main_category.id }}"
|
||||
class="main-category">
|
||||
<b>{{ main_category.name }}</b>
|
||||
</a>
|
||||
<ul class="p-0" style="">
|
||||
{% set sub_categories = entries('cats','category').where('parent_category_id', main_category.id).where('deleted_at', null).orderBy('sort_order').get() %}
|
||||
{% for sub_category in sub_categories|slice(0,sub_categories_limit) %}
|
||||
<li>
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?cat={{ sub_category.id }}"
|
||||
class="">{{ sub_category.name }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% for sub_category in sub_categories|slice(sub_categories_limit,count(sub_categories)) %}
|
||||
<li class="hidden hidden-category">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?cat={{ sub_category.id }}"
|
||||
class="">{{ sub_category.name }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% if count(sub_categories) > sub_categories_limit %}
|
||||
<li class="show-all">
|
||||
<a>
|
||||
{{ trans('visiosoft.theme.base::button.show_all') }}
|
||||
<i class="fas fa-arrow-circle-down"></i>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -0,0 +1,50 @@
|
||||
<div class="col left-categories-section mx-0">
|
||||
|
||||
<ul class="categories-list p-0 d-none d-sm-block mb-0">
|
||||
<li class="categories-list-li category-icon border-bottom-0 mt-0">
|
||||
<img src="{{ img('visiosoft.theme.base::images/store-search.png').url }}" class="img-responsive">
|
||||
<a href="{{ url_route('store::list') }}" class="main-category">
|
||||
<span class="text-dark" class="text-dark">
|
||||
{{ trans('visiosoft.theme.base::field.company_directory') }}
|
||||
</span>
|
||||
</a>s
|
||||
</li>
|
||||
<li class="categories-list-li category-icon border-bottom-0 mt-0">
|
||||
<img src="{{ img('visiosoft.theme.base::images/popular-ads.png').url }}" class="img-responsive">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?sort_by=popular" class="main-category">
|
||||
<span class="text-dark">
|
||||
{{ trans('visiosoft.theme.base::field.popular_ads') }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="categories-list-li category-icon border-bottom-0 mt-0">
|
||||
<img src="{{ img('visiosoft.theme.base::images/last-48-hours.png').url }}" class="img-responsive">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?date=two_days" class="main-category">
|
||||
<span class="text-dark">
|
||||
{{ trans('visiosoft.theme.base::field.last_48_hours') }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="categories-list-li category-icon mt-0 pb-3">
|
||||
<img src="{{ img('visiosoft.theme.base::images/get-ads.png').url }}" class="img-responsive">
|
||||
<a href="{{ url_route('visiosoft.module.advs::list') }}?get_ads=true" class="main-category">
|
||||
<span class="text-dark">
|
||||
{{ trans('visiosoft.theme.base::field.secure_e-commerce_ads') }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
{{ addBlock('base/categoriesRow')|raw }}
|
||||
|
||||
<div class="col-12 p-0 m-0">
|
||||
{% set main_categories = entries('cats','category').where('parent_category_id', null).where('deleted_at', null).orderBy('sort_order').get() %}
|
||||
{% for main_category in main_categories %}
|
||||
{% include "visiosoft.theme.base::partials/categories-web" %}
|
||||
{% include "visiosoft.theme.base::partials/categories-mobile" %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="col-12 p-0 m-0 d-none d-sm-block">
|
||||
{{ setting_value('visiosoft.theme.base::home_bottom_left_categories')|raw }}
|
||||
</div>
|
||||
</div>
|
||||
@ -13,6 +13,7 @@
|
||||
{#{{ favicons("theme::img/favicon.png") }}#}
|
||||
|
||||
{# Base Theme Components #}
|
||||
{{ asset_add("theme.css", "visiosoft.theme.base::css/base.css") }}
|
||||
{{ asset_add("theme.css", "visiosoft.theme.base::css/bootstrap.min.css") }}
|
||||
{{ asset_add("theme.css", "visiosoft.theme.base::css/theme.css") }}
|
||||
{{ asset_add("theme.css", "visiosoft.theme.base::css/select2.css") }}
|
||||
|
||||
@ -26,19 +26,15 @@
|
||||
|
||||
{% if setting_value('visiosoft.theme.base::navigation_action') %}
|
||||
<ul class="nav navbar-nav navbar-right d-block d-sm-none">
|
||||
{{ addBlock('navigationLinks')|raw }}
|
||||
<li class="nav-item">
|
||||
{% if auth_check() %}
|
||||
<a class="nav-link"
|
||||
href="{{ url_route('anomaly.module.users::logout') }}">{{ trans('visiosoft.theme.base::field.logout.name') }}</a>
|
||||
<a class="nav-link" href="{{ url_route('anomaly.module.users::logout') }}">{{ trans('visiosoft.theme.base::field.logout.name') }}</a>
|
||||
{% else %}
|
||||
<a class="nav-link"
|
||||
href="{{ url_route('anomaly.module.users::login') }}">{{ trans('visiosoft.theme.base::field.login.name') }}</a>
|
||||
<a class="nav-link" href="{{ url_route('anomaly.module.users::login') }}">{{ trans('visiosoft.theme.base::field.login.name') }}</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link"
|
||||
href="{{ url_route('profile::profile') }}">{{ trans('visiosoft.theme.base::field.profile') }}</a>
|
||||
<a class="nav-link" href="{{ url_route('profile::profile') }}">{{ trans('visiosoft.theme.base::field.profile') }}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="/advs/create_adv" class="btn btn-primary">{{ trans("theme::button.post_ad.name") }}</a>
|
||||
@ -49,19 +45,15 @@
|
||||
<div class="d-none d-sm-block">
|
||||
{% if setting_value('visiosoft.theme.base::navigation_action') %}
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{{ addBlock('navigationLinks')|raw }}
|
||||
<li class="nav-item">
|
||||
{% if auth_check() %}
|
||||
<a class="nav-link"
|
||||
href="{{ url_route('anomaly.module.users::logout') }}">{{ trans('visiosoft.theme.base::field.logout.name') }}</a>
|
||||
<a class="nav-link" href="{{ url_route('anomaly.module.users::logout') }}">{{ trans('visiosoft.theme.base::field.logout.name') }}</a>
|
||||
{% else %}
|
||||
<a class="nav-link"
|
||||
href="{{ url_route('anomaly.module.users::login') }}">{{ trans('visiosoft.theme.base::field.login.name') }}</a>
|
||||
<a class="nav-link" href="{{ url_route('anomaly.module.users::login') }}">{{ trans('visiosoft.theme.base::field.login.name') }}</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link"
|
||||
href="{{ url_route('profile::profile') }}">{{ trans('visiosoft.theme.base::field.profile') }}</a>
|
||||
<a class="nav-link" href="{{ url_route('profile::profile') }}">{{ trans('visiosoft.theme.base::field.profile') }}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a href="/advs/create_adv" class="btn btn-primary">{{ trans("theme::button.post_ad.name") }}</a>
|
||||
|
||||
@ -129,6 +129,10 @@ class BaseThemeServiceProvider extends AddonServiceProvider
|
||||
protected $mobile = [
|
||||
//'streams::errors/404' => 'module::mobile/errors/404',
|
||||
//'streams::errors/500' => 'module::mobile/errors/500',
|
||||
'anomaly.module.users::login' => 'visiosoft.theme.base::addons/anomaly/users-module/login',
|
||||
'anomaly.module.users::register' => 'visiosoft.theme.base::addons/anomaly/users-module/register',
|
||||
'anomaly.module.users::password/forgot' => 'visiosoft.theme.base::addons/anomaly/users-module/password/forgot',
|
||||
'anomaly.module.users::password/reset' => 'visiosoft.theme.base::addons/anomaly/users-module/password/reset'
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@ -1,33 +1,36 @@
|
||||
$( document ).ready(function() {
|
||||
$("select[name='parent_category']").select2({
|
||||
ajax: {
|
||||
url: window.location.origin + "/keySearch",
|
||||
type: "GET",
|
||||
data: function (params) {
|
||||
return {
|
||||
q: params.term // search term
|
||||
};
|
||||
if ($("select[name='parent_category']").length ) {
|
||||
$("select[name='parent_category']").select2({
|
||||
ajax: {
|
||||
url: window.location.origin + "/keySearch",
|
||||
type: "GET",
|
||||
data: function (params) {
|
||||
return {
|
||||
q: params.term // search term
|
||||
};
|
||||
},
|
||||
processResults: function (data) {
|
||||
return {
|
||||
results: $.map(data.category, function (item) {
|
||||
return {
|
||||
text: item.parents,
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
},
|
||||
processResults: function (data) {
|
||||
return {
|
||||
results: $.map(data.category, function (item) {
|
||||
return {
|
||||
text: item.parents,
|
||||
id: item.id
|
||||
}
|
||||
})
|
||||
};
|
||||
},
|
||||
cache: true
|
||||
},
|
||||
allowClear: true,
|
||||
theme: "classic",
|
||||
placeholder:"All" ,
|
||||
minimumInputLength: 3
|
||||
});
|
||||
allowClear: true,
|
||||
theme: "classic",
|
||||
placeholder:"All" ,
|
||||
minimumInputLength: 3
|
||||
});
|
||||
|
||||
$("select[name='parent_category']").on('select2:select', function (e) {
|
||||
var data = e.params.data;
|
||||
$("input[name='category_name']").val(data.text);
|
||||
});
|
||||
});
|
||||
$("select[name='parent_category']").on('select2:select', function (e) {
|
||||
var data = e.params.data;
|
||||
$("input[name='category_name']").val(data.text);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@ -8,7 +8,7 @@ return [
|
||||
'slack_link' => 'Skuadër e ngathët',
|
||||
'slack_description' => 'Gjeni dhe komunikoni me përdoruesit dhe zhvilluesit e tjerë të OpenClassify.',
|
||||
'forum_link' => 'Forumi i Diskutimit',
|
||||
'forum_description' => 'Gjeni përgjigje dhe postoni pyetje në lidhje me përdorimin dhe zhvillimin me OpenClassify.',
|
||||
'forum_description' => 'Gjeni përgjigje dhe postoni pyetje në lidhje me përdorimin dhe zhvillimin me tregtaret.com',
|
||||
'addons_link' => 'Shtesa të disponueshme',
|
||||
'addons_description' => 'Zbuloni shtesat në dispozicion për OpenClassify.',
|
||||
];
|
||||
|
||||
@ -31,5 +31,5 @@ return [
|
||||
// Forgot Password
|
||||
'email_phone_not_found' => 'البريد الإلكتروني ، رقم الهاتف غير صحيح!',
|
||||
|
||||
'disable_account' => 'Do you want to close your account? This operation cannot be undone.',
|
||||
'disable_account' => 'هل تريد إغلاق حسابك؟ هذه العملية لا يمكن التراجع عنها.',
|
||||
];
|
||||
|
||||
@ -32,5 +32,5 @@ return [
|
||||
// Forgot Password
|
||||
'email_phone_not_found' => 'Die E-Mail, Telefonnummer ist nicht korrekt!',
|
||||
|
||||
'disable_account' => 'Do you want to close your account? This operation cannot be undone.',
|
||||
'disable_account' => 'Möchten Sie Ihr Konto schließen? Dieser Vorgang kann nicht rückgängig gemacht werden.',
|
||||
];
|
||||
|
||||
@ -34,5 +34,5 @@ return [
|
||||
// Forgot Password
|
||||
'email_phone_not_found' => 'E-mail, номер телефона неверен!',
|
||||
|
||||
'disable_account' => 'Do you want to close your account? This operation cannot be undone.',
|
||||
'disable_account' => 'Вы хотите закрыть свой аккаунт? Эта операция не может быть отменена.',
|
||||
];
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
return [
|
||||
"email" => "Kërkohet fusha me postë elektronike!",
|
||||
"username" => "Kërkohet fusha e përdoruesit!",
|
||||
"success_update" => "Përditësimi i Profilit Me sukses!",
|
||||
"success_update" => "Përditësimi i Profilit me sukses!",
|
||||
"adress_success_update" => "Përditësoni me sukses Adresën!",
|
||||
"adress_success_create" => "Adresa Krijoni me sukses!",
|
||||
"login_error" => "Identifikim ose fjalëkalim i pasaktë.",
|
||||
@ -31,5 +31,5 @@ return [
|
||||
// Forgot Password
|
||||
'email_phone_not_found' => 'E-maili, numri i telefonit nuk është i saktë!',
|
||||
|
||||
'disable_account' => 'Do you want to close your account? This operation cannot be undone.',
|
||||
'disable_account' => 'Dëshiron të mbyllësh llogarinë tënde? Ky operacion nuk mund të zhbëhet.',
|
||||
];
|
||||
|
||||