visiosoft/advs-module
A Laravel/PHP module from VisioSoft for handling advertisements and listings, giving your application a reusable structure for creating, organizing, and displaying ad content. A practical building block for projects that need integrated classifieds or ad management.
composer require visiosoft/advs-module. This package is not a standalone Laravel package — it assumes the visiosoft/streams-platform addon runtime is present. There are zero dependents and no README, so treat the source as the spec.addons/visiosoft/advs-module/. Ensure Visiosoft\AdvsModule\AdvsModuleServiceProvider is listed in config/app.php (or that the addon is enabled via php artisan addon:list / the admin Addons screen). Auto-discovery is unreliable for addons.php artisan addon:publish visiosoft.module.advs followed by php artisan migrate. Addon migrations are namespaced and run against the same DB as core Streams tables (streams_streams, streams_fields, streams_assignments).src/AdvsModuleServiceProvider.php — registers routes, bindings, view namespaces, and the addon manifest.migrations/ — this is the real schema documentation. Look for the advs stream creation, field definitions (title, price, description, category), and field assignments.src/Advs/ — the Streams-backed model/repository/form/table builder classes.resources/views/ — Blade partials for listing and detail views show what data shapes are expected./admin/advs and create a listing (advert). Then read it back programmatically via the Streams repository (see Implementation Patterns). That single round-trip validates the migration, field assignment, and view wiring end-to-end.AdvsRepository) and Streams::entries('advs').FormBuilder bound to the advs stream for create/edit screens, and a TableBuilder for admin listings. This is idiomatic PyroCMS and keeps validation, field rendering, and permissions consistent with the rest of the platform.Criteria classes (e.g., AdvsByCategory, AdvsOrder) and push them onto the repository rather than writing SQL. This is where "day-to-day" leverage actually happens — new filters are new criteria classes.Entry events (EntryWasCreated, EntryWasUpdated) or model observers to trigger downstream actions — notifications, index updates, geocoding — rather than overriding controllers.@include('visiosoft.module.advs::partials.listing', ['advs' => $advs]). Publish views to override: php artisan vendor:publish --tag=advs-views.routes/web.php — keep addon routing scoped.advs-module composes with profile, categories, and payments modules. Prefer joining via those modules' streams and their Streams relations rather than duplicating data.php artisan addon:reinstall visiosoft.module.advs --force (or the equivalent in your Streams version), then clear application cache. A stale streams_assignments table is the #1 cause of "my new field doesn't show."php artisan migrate:rollback acts differently for addon migrations; rollback in a local environment and re-migrate rather than editing already-run migrations.advs-module with the broader OpenClassify platform. This package is a fragment; features like image uploads, payments, and moderation may live in sibling modules. Check the parent repo (openclassify/*) before reimplementing.php artisan addon:list | grep advs.visiosoft/advs-module and visiosoft/streams-platform to known-good versions in composer.json; a platform bump can break field assignment loading.streams_fields and streams_assignments rows directly to confirm the stream is wired; enable query logging in local; log in storage/logs/laravel.log since addon errors are often swallowed by Streams' exception handling.php artisan vendor:publish --tag=advs-config) to change defaults, and prefer new Criteria classes plus custom field types over editing vendor files. Any change to vendor code will be lost on the next composer update./admin/advs and assert on Streams entries — this is the only reliable regression net given the package's state.How can I help you explore Laravel packages today?