Download the PHP
package e2d2-dev/betta-terms without Composer
On this page you can find all versions of the php package
e2d2-dev/betta-terms. It is possible to download/install
these versions without Composer. Possible dependencies are resolved
automatically.
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.
# Terms & Conditions Management
### For Filament 4.x / 5.0
# Features
- 📦 Panel Guard
- 📄 Model Guard
- 🔍 **Entity discovery** (panel & models)
- 🌐 **Localized**
- 🎨 **Intuitive & Responsive UI**
- [Installation](#installation)
- [1. Install Package](#1-install-package)
- [2. Run Setup Command](#2-run-setup-command)
- [3. Setup User Model](#3-setup-user-model)
- [4. Manage Terms Plugin](#4-manage-terms-plugin)
- [5. Terms Guard Plugin](#5-terms-guard-plugin)
- [6. Panel Registration Form](#6-panel-registration-form)
- [Guards](#guards)
- [Guard Features](#guard-features)
- [Panel Guard](#panel-guard)
- [Panel Guard Usage](#panel-guard-usage)
- [Modify Panel Slug Generation](#modify-panel-slug-generation)
- [Model Guard](#model-guard)
- [Model Guard Setup](#model-guard-setup)
- [HasGuardConditions Trait](#add-the-hasguardconditions-trait-to-your-order-model)
- [ConsentComponent](#add-the-consentcomponent-to-your-form-schema)
- [Creating A Model Guard](#add-a-model-guard-in-the-guardresource)
- [Register Models](#register-models)
- [Slug Creation](#hook-into-model-slug-creation)
- [Conditions](#conditions)
- [Guards](#condition-guards)
- [Name](#condition-name)
- [Description](#condition-description)
- [Slug](#condition-slug)
- [Source](#condition-source)
- [Source Options](#condition-source-options)
- [Replacement](#condition-replacement)
- [Remove Conditions](#remove-conditions)
- [Consents](#condition-consents)
- [ConsentComponent](#consentcomponent)
- [Visual Modes](#visual-modes)
- [Regular](#regular-mode)
- [Compact](#compact-mode)
- [Layouts](#consent-component-layouts)
- [Guards](#guards-1)
- [Consent Conditions Page Component](#consent-conditions-page-component)
- [Slug](#slug)
- [Filament Menu Components](#filament-menu-components)
- [Generate Headings](#generate-headings)
- [Component](#component)
- [Commands](#commands)
- [Setup](#setup-command)
- [Make Condition](#make-condition-command)
- [Make Guard](#make-guard-command)
- [Make Terms Model](#make-terms-model-migration)
- [Events](#events)
- [Consent Complete](#consent-complete)
- [Condition Consent](#condition-consent)
- [Successor Activated](#successor-activated)
- [Disabling the Guard](#disabling-the-guard)
- [Restricting Access](#restricting-access)
- [Translations](#translations)
- [Publish Views](#publish-views)
- [TODO](#todo)
- [Credits](#credits)
- [License](#license)
# Installation
## 1. Install Package
## 2. Run Setup Command
Run the setup command
This will publish migrations, ask to publish the config file and translations
## 3. Setup User Model
To perform consent on conditions add the `HasConsents` trait & the `CanConsent` interface to your auth provider model:
## 4. Manage Terms Plugin
Add the `ManageTermsPlugin` to your panel:
## 5. Terms Guard Plugin
Add the `TermsGuardPlugin` plugin to the panel you want to guard:
## 6. Panel Registration Form
If you want to have the conditions on your registrations form, add the Register component to your panel.
# Guards
## Guard Features
#### Every guard can have multiple conditions
Conditions can be:
- skippable -> not required
- persistent -> will need consent every time / multiple times
- orderable

# Panel Guard
Terms comes with a multi-panel guard. Each can have an own.
The panel guard will be checked for new conditions every login, if there are any new users need to apply to them if not skippable.
This includes replaced conditions.
## Panel Guard Usage
- Make sure to add the ManageTermsPlugin to your panel
- Create at least one condition
- Create a guard with the `panel` option
- Link them together
## Modify Panel Slug Generation
Hook into the Panel slug creation using:
You can also just change the panel slug prefix in the config.
# Model Guard
Some records may need conditions (e.g. invoices & registrations). The model guard provides a solution for that.
Consents will be stored in the record and only committed when `commitConsent()` is called (e.g. after successful process).
## Model Guard Setup
### Add the `HasGuardConditions` trait to your order model:
### Add the `ConsentComponent` to your form schema:
### Add A Model Guard in the GuardResource
Add a guard in the GuardResource by selecting the type `model`. Models from App\Models namespace will be auto listed.
Add conditions to that model.
### Register Models
You can add more models to the select by registering them
### Hook into Model Slug Creation
You can change how the slug is generated by providing a closure to Terms in a service provider:
You can also just change the model slug prefix in the config.
# Conditions
## Condition Guards
- Every Condition can be added to any guard.
- Conditions can be marked active or skippable in each guard separately
- Conditions can be activated as soon as they have data filled in
## Condition Name
The name is required. It will show up to the client.
It is visible as the checkbox label in the compact mode and as section heading in the full mode
## Condition Description
Description is not required but can be a useful info for clients for further context.
It will show up in compact mode below the `accepted` checkbox and as description in full mode.
## Condition Slug
The slug is autogenerated with timestamp as prefix and with revision suffix.
## Condition Source
Every condition has its own content which can be supplied as
- text (url+markdown)
- file (with upload)
- as url
or just the name for small consents.
## Condition Source Options
- PDF
- Link
- Text
- Markdown
- Iframe
- Simple
- Image
## Condition Replacement
When a condition needs improvement, you can't just edit the file, because it is an official document.
Hit the replace action in the ConditionResource to replace it. As soon as all required data is filled in,
you will be asked to replace the predecessor (previous version).
The Predecessor will be removed from all guards and replaced by the successor.
## Remove Conditions
A Condition can only be deleted when they have any consents yet.
## Condition Consents
Every user's consent will be stored. On which guard or component it was signed will also be stored in the `signed_on` column of the consent table
# ConsentComponent
## Visual Modes
The consent component has two visual modes: regular and compact.
Regular mode is of bigger size for full-page usage. Compact mode for in-form usage.
### Regular Mode
### Compact Mode
Every condition is presented with the `AcceptedCheckbox` which has the condition name as label, description as hint and
a view action to display the content if applicable.
### Consent Component Layouts
The component does support further layouts:
## Guards
The consent component will find its guards automagically, but you can also specify the guard by slug or by model
# Consent Conditions Page Component
This page will be shown when there are open conditions a user needs to consent.
## Slug
The slug can be customized through the config
## Filament Menu Components
Can be individually enabled/disabled
## Generate Headings
You can define the heading by adding a closure `TermsGuardPlugin::generateConsentConditionsHeadingUsing()`
The parameters $livewire, $guard, $user & $panel will be provided;
## Component
The component can be swapped.
# Commands
## Setup Command
Will check if
- the filament plugins are registered to any panel and provide information how to add them
- tables are migrated and will ask to publish&run the migrations
- config is published and ask to publish
- translation is published and ask to publish
-
## Make Condition Command
Create a condition and attach it to a guard. You will still need to visit the condition management resource. Link will be provided by the command after creation.
## Make Guard Command
Create a guard. You will still need to visit the guard management resource. Link will be provided by the command after creation.
## Make Terms Model Migration
# Events
Terms supplies events if you want to attach further actions after something happened.
## Consent Complete
Will dispatch after ConsentConsentConditions is completed
## Condition Consent
After a condition was accepted.
## Successor Activated
When a new condition was activated and the predecessor got obsolete
# Disabling the guard
If you need to disable the panel guard for some reason or for some user, provide a closure or a just bool to:
# Restricting Access
Terms does not come with permission configuration on purpose. You can enable/disable every Filament Resource/Action through policies as permissions are handled different in every app.
Example:
There is one custom Action: Condition "ReplaceAction" which will forward to the model action:
# Translations
Localization is available in: [ en, de, es, fr & pt ] at the moment.
Publish the translations using:
or via the service provider:
# Publish Views
# Screenshots
## Edit Condition

## Consent Conditions Page

## Consents Table

## Guards Table

## Edit Guard

## Consent Component Compact Mode

## Consent Component Regular Mode

# TODO
- Disabling Sources & Components
- Conditions with language / country separation
# Credits
- [Filament Team](https://www.filamentphp.com)
# License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
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 e2d2-dev/betta-terms contains the following files
Loading the files please wait ...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.