ramon/classifieds
Composer 安装命令:
composer require ramon/classifieds
包简介
Custom classified-ads composer, OLX-style listing pages and per-tag classifieds support for Flarum.
README 文档
README
Classifieds
Turn any tag in your Flarum forum into a classified-ads section: photo galleries, price & price ranges, location, sold/bumped status, OLX-inspired listing cards and a dedicated discussion page that replaces the standard hero with a marketplace-style layout. Originally written for Flarum 0.1 by Jason Clemons, completely rebuilt for Flarum 2.0.
Features
Marketplace UX
- OLX-style listing cards — Discussions in classifieds tags show as horizontal cards with cover photo, price, label badge, location, and time
- Dedicated discussion page — Two-column hero (gallery + info), breadcrumb, contact-seller button, share/copy-link, edit, and a seller card showing per-tag listing count
- Photo carousel — Up to 20 photos per listing, drag-and-drop upload at compose time, lightbox-ready hero carousel with thumbnails
- Subtle tag-color tint — The hero background gets a soft fade in the tag's color, plus a thin accent stripe — identity without being loud
- Currency-aware prices — Price + optional max (range), automatic symbol resolution (
USD → $,BRL → R$,EUR → €, …) with a forum-wide default fallback
Listing fields
- Labels —
ISO,WTB,WTS,TRADEout of the box; admin can add custom labels (OLX,PROMO,TROCA, etc.) via comma-separated config - Status —
active,sold,completedwith event-posts in the stream when changed - Bump — Re-promote your listing with a single click, also recorded as an event-post
- Edit-after-create — Modal to update label/price/range/currency/location at any time
- Required fields — Admin toggles for required label / price / location
Admin
- Per-tag opt-in — Pick which tags act as classifieds tags via the native flarum-tags select-tags widget
- Default currency code — One source of truth for currency symbol; per-listing override available
- Auto-prune — Scheduled command removes sold/inactive listings after N days; configurable
- Permissions —
discussion.markListingSold,discussion.bumpListing,discussion.editListing
Composer
- Tag-gated extension — The classifieds composer (image uploader + label pills + price row + location) only activates when at least one of the selected tags is flagged as classifieds in the admin
- Native styling — Pills built on Flarum's
.Buttoncomponent, inputs useFormControl, all Flarum theme tokens (--primary-color,--control-bg,--muted-color, …) — drops in cleanly with any theme
Requirements
- Flarum
^2.0.0 - flarum/tags (used for the per-tag opt-in widget)
Installation
composer require ramon/classifieds php flarum migrate php flarum cache:clear
Then enable Classifieds in Admin → Extensions and pick the tags that should behave as classifieds.
Updating
composer update ramon/classifieds --with-dependencies php flarum migrate php flarum cache:clear
Configuration
All settings are available in the admin panel under the Classifieds extension:
| Setting | Description | Default |
|---|---|---|
| Classifieds tags | Tags that turn into classifieds (uses flarum-tags' selector) | — |
| Default currency code | 3-letter ISO code used when a listing has no explicit currency | USD |
| Allowed listing labels | Comma-separated list of labels available in the composer | iso,wtb,wts,trade |
| Allow price ranges | Show a max-price field beside the price | true |
| Show currency symbol | Render $/€/R$ instead of the raw ISO code |
true |
| Require a listing label | Make label selection mandatory | true |
| Require a price | Make price field mandatory | true |
| Require a location | Make location field mandatory | false |
| Auto-prune after N days | Delete listings older than N days; 0 disables |
0 |
| Auto-prune sold listings | When pruning runs, also remove sold/completed listings | false |
Permissions
| Permission | Default group | Description |
|---|---|---|
discussion.markListingSold |
Member | Mark own listings as sold/active/completed |
discussion.bumpListing |
Member | Bump (re-promote) own listing |
discussion.editListing |
Member | Edit own listing fields after creation |
API Endpoints
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/classifieds/listings/{id}/screenshots |
Upload a photo to the listing (multipart file) |
DELETE |
/api/classifieds/listings/{id}/screenshots |
Remove a photo ({ filename }) |
The Discussion resource is extended with listingLabel, listingStatus, listingPrice, listingPriceMax, listingCurrency, listingLocation, listingSoldAt, listingBumpedAt, listingImages, plus the booleans isClassifieds, canMarkListingSold, canBumpListing, canEditListing.
The User resource is extended with classifiedsListingsCount (number of listings in classifieds tags only — not the user's total discussion count).
The Tag resource is extended with isClassifieds.
Console
# Prune sold/expired listings according to admin settings php flarum classifieds:prune # Override the retention window for this run only php flarum classifieds:prune --days=30 # See what would be deleted without committing php flarum classifieds:prune --days=30 --dry-run # Also remove listings that are still active beyond the window php flarum classifieds:prune --days=30 --include-active
The command is also scheduled to run daily automatically via Extend\Console::schedule.
Links
Authors
- Ramon Guilherme — Flarum 2.0 rewrite, photo galleries, OLX-style hero, per-tag opt-in, marketplace UX
- Jason Clemons — original Flarum 0.1 classifieds concept
License
ramon/classifieds 适用场景与选型建议
ramon/classifieds 是一款 基于 TypeScript 开发的 Composer 扩展包,目前已累计 110 次下载、GitHub Stars 达 1, 最近一次更新时间为 2026 年 05 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「classifieds」 「discussion」 「ads」 「marketplace」 「flarum」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ramon/classifieds 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ramon/classifieds 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ramon/classifieds 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Facebook & Instagram Ads for Laravel 5.6+
Make posts hidden for visitors.
A Twitter supported and maintained Ads API SDK for PHP
Add custom fields to discussions
Origin by Flagrow. Bombarding your users with ads.
Output of discussions lists in form of cards
统计信息
- 总下载量: 110
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 5
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-05-01