Haven't seen a paid ad yet but this add-on is still extremely buggy. The counters are completely wrong, shows 0 items in the category yet there are listings. Some show 1 yet there are none.
Also trying to figure out how to re-open an expired listing. I re-open it yet it doesn't appear.
Still an absolute mess
If a listing expires, and I re-open it, it doesn't show up in the Classifieds section. Bug? Should be able to do this without having to delete and add it again.
when multiple images are added, it doesn't look good that it's complicated as shown in the picture. Would you consider doing a slide study instead?
<xf:title>{{ prefix('classifieds_listing', $listing, 'escaped') }}{$listing.title}</xf:title>
<xf:set var="$descSnippet" value="{{ snippet($listing.content, 250, {'stripBbCode': true}) }}" />
<xf:js src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js" />
<xf:js>
$('.owl-carousel').owlCarousel({
center: false,
autoplay:false,
margin:10,
nav: false,
responsive:{
0:{
items:2
},
{{$xf.style.getProperty('responsiveMedium') + 0}}:{
items:3
}
}
});
</xf:js>
<xf:css src="z61_classifieds_slider.less" />
<xf:css src="z61_classifieds_listing_view.less" />
<xf:macro template="metadata_macros" name="metadata"
arg-description="{$descSnippet}"
arg-shareUrl="{{ link('canonical:classifieds', $listing) }}"
arg-canonicalUrl="{{ link('canonical:classifieds', $listing) }}" />
<xf:page option="ldJsonHtml">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CreativeWork",
"@id": "{{ link('canonical:classifieds', $listing)|escape('json') }}",
"headline": "{$listing.title|escape('json')}",
"description": "{$descSnippet|escape('json')}",
"dateCreated": "{{ date($listing.listing_date, 'c')|escape('json') }}",
<xf:if is="$listing.last_edit_date > 0">
"dateModified": "{{ date($listing.last_edit_date, 'c')|escape('json') }}",
</xf:if>
<xf:if is="$listing.hasViewableDiscussion()">
"discussionUrl": "{{ link('canonical:threads', $listing.Discussion)|escape('json') }}",
</xf:if>
"author": {
"@type": "Person",
"name": "{{ ($listing.User ? $listing.User.username : $listing.username)|escape('json') }}"
}
}
</script>
</xf:page>
<xf:wrap template="z61_classifieds_listing_wrapper">
<xf:set var="$pageSelected" value="overview" />
</xf:wrap>
<xf:macro template="lightbox_macros" name="setup" arg-canViewAttachments="{{ $listing.canViewAttachments() }}" />
<div class="block block--classifieds">
<div class="block-container">
<div class="classifieds-wrapper">
<div class="classifieds-left">
<div class="classifiedsCoverImage">
<div class="classifiedsCoverImage-container">
<div class="classifiedsCoverImage-container-image">
<img src="{{ link('classifieds/cover-image', $listing) }}" />
</div>
</div>
</div>
<div class="classifieds-featuredImage--icons">
<div class="lbContainer js-classifiedsDetails"
data-xf-init="lightbox"
data-lb-id="listing-{$listing.listing_id}"
data-lb-caption-desc="{{ $listing.User ? $listing.User.username : $listing.username }} · {{ date_time($listing.listing_date) }}">
<div class="js-lbContainer thumbnailCount{$listing.attach_count|raw}">
<xf:if is="$listing.attach_count > 1">
<xf:if contentcheck="true">
<xf:css src="attachments.less" />
<div class="attachmentList-slider owl-carousel owl-theme">
<xf:contentcheck>
<xf:foreach loop="$listing.Attachments" value="$attachment" if="!$listing.isAttachmentEmbedded($attachment)">
<ul class="listPlain">
<xf:macro template="attachment_macros" name="attachment_list_item"
arg-attachment="{$attachment}"
arg-canView="{{ $listing.canViewAttachments() }}" />
</ul>
</xf:foreach>
</xf:contentcheck>
</div>
</xf:if>
</xf:if>
</div>
</div>
</div>
</div>
<div class="classifieds-right">
<dl class="pairs pairs--justified">
<dt>{{ $category.type_phrase }}</dt>
<dd>{{ $listing.Type.title }}</dd>
</dl>
<xf:if is="$listing.condition_id">
<dl class="pairs pairs--justified">
<dt>{{ $category.condition_phrase }}</dt>
<dd>
{{ $listing.Condition.title }}
<xf:if is="$listing.Condition.description != ''">
<span tabindex="0" role="button"
data-xf-init="tooltip" data-trigger="hover focus click" title="{{ $listing.Condition.description }}">
<xf:fa icon="far fa-info-circle" class="u-muted u-smaller" />
</span>
</xf:if>
</dd>
</dl>
</xf:if>
<xf:if is="$listing.canShowPrice()">
<dl class="pairs pairs--justified">
<dt>{{ $category.price_phrase }}</dt>
<dd>
<xf:if is="$listing.price > 0">
{$listing.price|currency($listing.currency)}
<xf:else/>
{{ phrase('z61_classifieds_free') }}
</xf:if>
</dd>
</dl>
</xf:if>
<xf:if is="{$listing.expiration_date} && $listing.listing_status != 'sold'">
<dl class="pairs pairs--justified">
<dt>{{ phrase('expires') }}</dt>
<dd><xf:date time="{{ $listing.expiration_date }}" /></dd>
</dl>
</xf:if>
<xf:if is="{{$listing.sold_user_id > 0 && $listing.listing_status == 'sold' && $listing.canViewPurchaseInfo()}}">
<dl class="pairs pairs--justified">
<dt>{{ phrase('z61_classifieds_purchased_by')}}</dt>
<dd><xf:username user="{$listing.SoldUser}" /></dd>
</dl>
</xf:if>
</div>
</div>
</div>
</div>
<xf:if contentcheck="true">
<div class="block">
<div class="block-outer">
<div class="block-outer-opposite">
<xf:contentcheck>
<xf:macro template="z61_classifieds_listing_wrapper_macros" name="action_buttons" arg-listing="{$listing}" />
</xf:contentcheck>
</div>
</div>
</div>
</xf:if>
<div class="block">
<div class="block-container">
<div class="block-body js-listingBody">
<div class="listingBody">
<article class="listingBody-main">
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="classifiedsListings"
arg-group="above"
arg-onlyInclude="{$category.field_cache}"
arg-set="{$listing.custom_fields}"
arg-wrapperClass="listingBody-fields listingBody-fields--before" />
{{ bb_code($listing.content, 'classifieds_listing', $listing) }}
<xf:macro template="custom_fields_macros" name="custom_fields_view"
arg-type="classifiedsListings"
arg-group="below"
arg-onlyInclude="{$category.field_cache}"
arg-set="{$listing.custom_fields}"
arg-wrapperClass="listingBody-fields listingBody-fields--after" />
<xf:if contentcheck="true">
<div class="actionBar">
<xf:contentcheck>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--external">
<xf:contentcheck>
<!--[XF:listing_tools_menu:top]-->
<xf:react content="{$listing}" link="classifieds/react" list="< .listingBody | .js-reactionsList" />
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="actionBar-set actionBar-set--internal">
<xf:contentcheck>
<xf:if is="$listing.canReport()">
<a href="{{ link('classifieds/report', $listing) }}"
class="actionBar-action actionBar-action--report" data-xf-click="overlay">{{ phrase('report') }}</a>
</xf:if>
<xf:set var="$hasActionBarMenu" value="{{ false }}" />
<xf:if is="$listing.canEdit()">
<a href="{{ link('classifieds/edit', $listing) }}"
class="actionBar-action actionBar-action--edit actionBar-action--menuItem">{{ phrase('edit') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$listing.canDelete('soft')">
<a href="{{ link('classifieds/delete', $listing) }}"
class="actionBar-action actionBar-action--delete actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('delete') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$xf.visitor.canViewIps() && $listing.ip_id">
<a href="{{ link('classifieds/ip', $listing) }}"
class="actionBar-action actionBar-action--ip actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('ip') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<xf:if is="$listing.canWarn()">
<a href="{{ link('classifieds/warn', $listing) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem">{{ phrase('warn') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
<xf:elseif is="$listing.warning_id && $xf.visitor.canViewWarnings()" />
<a href="{{ link('warnings', {'warning_id': $listing.warning_id}) }}"
class="actionBar-action actionBar-action--warn actionBar-action--menuItem"
data-xf-click="overlay">{{ phrase('view_warning') }}</a>
<xf:set var="$hasActionBarMenu" value="{{ true }}" />
</xf:if>
<!--[XF:listing_tools_menu:bottom]-->
<xf:if is="$hasActionBarMenu">
<a class="actionBar-action actionBar-action--menuTrigger"
data-xf-click="menu"
title="{{ phrase('more_options') }}"
role="button"
tabindex="0"
aria-expanded="false"
aria-haspopup="true">•••</a>
<div class="menu" data-menu="menu" aria-hidden="true" data-menu-builder="actionBar">
<div class="menu-content">
<h4 class="menu-header">{{ phrase('more_options') }}</h4>
<div class="js-menuBuilderTarget"></div>
</div>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
<div class="reactionsBar js-reactionsList {{ $listing.reactions ? 'is-active' : '' }}">
<xf:reactions content="{$listing}" link="classifieds/reactions" />
</div>
<div class="js-historyTarget toggleTarget" data-href="trigger-href"></div>
</article>
</div>
</div>
</div>
</div>
<xf:if is="{{ $listing.listing_location }} && {{ $xf.options.z61ClassifiedsGoogleApi }}">
<div class="block">
<div class="block-container">
<div class="block-minorHeader">{{ phrase('z61_classifieds_location') }}</div>
<div class="block-body ">
<div class="block-row block-row--separated">
<iframe
width="100%" height="400px" frameborder="0" style="border: 0"
src="https://www.google.com/maps/embed/v1/place?key={$xf.options.z61ClassifiedsGoogleApi}&q={{ $listing.listing_location|censor }}">
</iframe>
</div>
</div>
</div>
</div>
</xf:if>
<xf:sidebar>
<div class="block">
<div class="block-container">
<h3 class="block-minorHeader">{{ phrase('information') }}</h3>
<div class="block-body block-row block-row--minor">
<dl class="pairs pairs--justified">
<dt>{{ phrase('category') }}</dt>
<dd><a href="{{ link('classifieds/categories', $listing) }}">{{ $listing.Category.title }}</a></dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('author') }}</dt>
<dd><xf:username user="{$listing.User}" defaultname="{$listing.username}" /></dd>
</dl>
<dl class="pairs pairs--justified">
<dt>{{ phrase('created') }}</dt>
<dd><xf:date time="{{ $listing.listing_date }}" /></dd>
</dl>
<xf:if is="$listing.last_edit_date">
<dl class="pairs pairs--justified">
<xf:if is="$listing.user_id == $listing.last_edit_user_id">
<dt>{{ phrase('last_edited') }}</dt>
<dd><xf:date time="{$listing.last_edit_date}" /></dd>
<xf:else />
<dt>{{ phrase('last_edited_by_moderator') }}</dt>
<dd><xf:date time="{$listing.last_edit_date}" /></dd>
</xf:if>
</dl>
</xf:if>
<dl class="pairs pairs--justified">
<dt>{{ phrase('views') }}</dt>
<dd>{{ $listing.view_count }}</dd>
</dl>
</div>
</div>
</div>
</xf:sidebar>
<xf:sidebar>
<xf:if contentcheck="true">
<div class="listingSidebarGroup listingSidebarGroup--buttons">
<xf:contentcheck>
<xf:if is="$listing.hasViewableDiscussion()">
<xf:button href="{{ link('threads', $listing.Discussion) }}" class="button--fullWidth">{{ phrase('z61_classifieds_join_discussion') }}</xf:button>
</xf:if>
</xf:contentcheck>
</div>
</xf:if>
</xf:sidebar>
<xf:sidebar>
<xf:if is="$authorOthers is not empty">
<div class="block">
<div class="block-container">
<h3 class="block-minorHeader">
<a href="{{ link('classifieds/authors', $listing.User) }}">{{ phrase('z61_classifieds_more_listings_by_x', {'name': $listing.User.username}) }}</a>
</h3>
<div class="block-body block-row">
<ul class="listingSidebarList">
<xf:foreach loop="$authorOthers" value="$authorOther">
<li>
<xf:macro template="z61_classifieds_listing_list_macros" name="listing_simple"
arg-listing="{$authorOther}"
arg-withMeta="{{ false }}" />
</li>
</xf:foreach>
</ul>
</div>
</div>
</div>
</xf:if>
</xf:sidebar>
<xf:sidebar key="shareSidebar">
<xf:if contentcheck="true">
<div class="block">
<div class="block-container">
<xf:contentcheck>
<h3 class="block-minorHeader">{{ phrase('z61_classifieds_share_this_listing') }}</h3>
<xf:if contentcheck="true">
<div class="block-body block-row block-row--separated">
<xf:contentcheck>
<xf:macro template="share_page_macros" name="buttons" arg-iconic="{{ true }}" />
</xf:contentcheck>
</div>
</xf:if>
<xf:if contentcheck="true">
<div class="block-body block-row block-row--separated">
<xf:contentcheck>
<xf:macro template="share_page_macros" name="share_clipboard_input"
arg-label="{{ phrase('z61_classifieds_copy_url_bb_code') }}"
arg-text="[URL="{{ link('canonical:classifieds', $listing) }}"]{$listing.title}[/URL]" />
</xf:contentcheck>
</div>
</xf:if>
</xf:contentcheck>
</div>
</div>
</xf:if>
</xf:sidebar>
<xf:widgetpos id="classifieds_listing_view_sidebar" context-listing="{$listing}" position="sidebar" />
I guess I should have done a bit more research on this addon, I was excited for a bit, but I cannot get it to do anything.Would be nice if the developer would respond to open bug reports in his addon. A few of them renders this addon fairly broken. (expired not working properly and listing disappearing unable to be reposted).
Thanks, that's just some spam on the demo site - I've dealt with it now.I was just at https://xf2.nixfifty.com/ to look at my account and if I was able to download the latest version or had to pay for the upgrade and found it had been spammed, (I hope). When I logged in I found I received a message! I like this mod and would have liked to see development continue so I hope this doesn't mean it has been abandoned.
View attachment 262482
Unless he has a reason to follow up on the report, most reports would not require a response. I know I personally will not respond to most bug reports, and will only follow up once they're planned for release unless I need further information.Why are you ignoring the requests about the active bug reports? While answering other questions.
Wouldn't call it unreasonable just to get a response, eg. "I'm working on a solution, hope to have an update out in the coming weeks. I'm sorry for the inconvenience."
Hi,
here in Germany we're using a comma as the decimal seperator.
This isnt noticed by the addon - the addon expects a point therefore.
So if I enter the amount 49,99 - the addon cuts the value to 49,00
Thanks
We use essential cookies to make this site work, and optional cookies to enhance your experience.