Download the PHP package linkrobins/support without Composer

On this page you can find all versions of the php package linkrobins/support. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package support

Link Robins Support

A private support-desk extension for Flarum 2. Lets registered users open support tickets with staff, with an emphasis on workflows that keep forum-wide moderation actions (suspensions, bans) honest.

Features

Requirements

Installation

Then enable the extension in admin → Extensions.

Permissions

The extension adds three permissions. They sit in the Moderate section of admin → Permissions, and none is granted to any group on install, so until you grant them only admins handle tickets:

Anyone in the admin group bypasses all three.

Filing tickets requires being authenticated; the policy doesn't add a separate permission for it.

Admin UI

Settings live at admin → Extensions → LR Support, in these sections:

Forum UI

Users see:

Staff additionally see:

Data model

Seven tables:

One column added to the existing users table:

Replies use Flarum's content formatter via the HasFormattedContent trait. The rendered HTML is computed at serialize time via formatContent(), NOT cached in a content_html column -- this means formatter extensions like mentions and emoji apply to older replies the moment they're installed.

Category Access Control

Admins can configure Allowed User Groups on individual categories in the Admin Panel:

File attachments (fof/upload integration)

If fof/upload is installed and enabled, the compose form and reply form get an "Attach files" button. Uploaded files are stored, validated, and rendered by fof/upload; this extension only inserts the resulting BBCode marker into the message body. No additional configuration is needed -- if the user has permission to upload via fof/upload, the button appears.

Privacy caveat

fof/upload's download URLs act as capabilities: anyone who has the URL to a file can download it. CSRF protection limits direct hot-linking, but if a staff member copies a file URL out of a ticket and shares it elsewhere, that link works for anyone who clicks it.

This is identical to how fof/upload behaves on regular discussions, so it isn't unique to this extension. If you need a hard guarantee that ticket attachments can be read only by ticket-eligible users, fof/upload would need to be patched to gate downloads against per-resource policies. That's out of scope for v1.

In practice, for the support-desk use case, the risk is small: attachments tend to be screenshots and logs from the ticket-opener themselves, who is also the only non-staff party with the URL.

Security notes

API summary

Endpoint Method Auth
/api/linkrobins-support-categories GET public
/api/linkrobins-support-categories POST admin
/api/linkrobins-support-categories/:id PATCH/DELETE admin
/api/linkrobins-support-tickets GET authenticated
/api/linkrobins-support-tickets POST authenticated
/api/linkrobins-support-tickets/:id GET per-policy
/api/linkrobins-support-tickets/:id PATCH staff (handle_tickets)
/api/linkrobins-support-tickets/:id DELETE admin or force_delete_tickets, soft-deleted only
/api/linkrobins-support-replies GET authenticated
/api/linkrobins-support-replies POST authenticated
/api/linkrobins-support-replies/:id PATCH staff (handle_tickets)
/api/linkrobins-support-replies/:id DELETE staff, soft-deleted only
/api/linkrobins-support-events GET authenticated (staff: all; owner: status changes on own tickets)
/api/linkrobins-support-tickets/:id/read POST anyone who can see the ticket
/api/linkrobins-support-counts GET authenticated (staff get the queue counts)
/api/linkrobins-support-stats GET staff (handle_tickets); ?days=7\|30\|90
/api/linkrobins-support-staff GET staff (handle_tickets)
/api/linkrobins-support-saved-replies GET staff (handle_tickets)
/api/linkrobins-support-saved-replies POST/PATCH/DELETE admin

Moderation patterns:

Supported filters (use filter[name]=value shape; Flarum 2 rejects unrecognized top-level params):

Events for other extensions

Other extensions can react to tickets (webhooks, bots, audit logs) by listening for these events with Flarum's Extend\Event extender. Every event is dispatched after the database transaction commits, so a listener never sees a change that is then rolled back. All live in the LinkRobins\Support\Event namespace.

Event When Properties
TicketCreated A ticket is opened, with its opening message saved ticket, actor
TicketStatusChanged The status changes: picked by staff or the owner, moved on by a reply, or by the scheduled auto-close (actor is null then) ticket, actor, oldStatus, newStatus
TicketDecided The decision on an appeal ticket changes ticket, actor, oldDecision, newDecision
TicketAssigned The assignee changes: assigned, claimed by a staff reply, or unassigned (assignee is null) ticket, actor, assignee, oldAssignee
ReplyCreated A follow-up reply or internal note is posted (not the opening message, which TicketCreated covers) reply, actor

ReplyCreated fires for internal notes too, so check $reply->is_internal_note before showing a reply to anyone but staff.

The extension also dispatches TicketChanged and ReplyPosted, broader events that drive live updates; prefer the specific ones above.

Extending Ticket Types

Other extensions can register custom ticket types to introduce specialized workflows, custom fields, rate limits, and review actions.

Backend Driver (PHP)

Create a driver extending LinkRobins\Support\TicketType\AbstractTicketType:

Register your driver in extend.php:

Frontend Driver (TypeScript / Mithril)

Register a client-side driver in your forum and admin initializers:

License

MIT.


All versions of support with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
flarum/core Version ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package linkrobins/support contains the following files

Loading the files please wait ...