Download the PHP package justinholtweb/craft-penny without Composer

On this page you can find all versions of the php package justinholtweb/craft-penny. 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 craft-penny

Penny

One-time content invites for Craft CMS 5 — hand a client a single-use link that drops them straight into the fields you want filled in, and nothing else.


You need a bio from a new team member, a paragraph from a client, next month's opening hours. The usual options are bad: create them a Craft account, invent a user group, pick permissions, and remember to delete all of it afterwards — or give up and take it over email.

Penny is the third option. You pick the entry (or the global, or the section they should create something in), tick the fields they may touch, and it gives you a link. They open it, fill it in, send it back, and the link stops working.

It is modelled on WordPress's One Time Login, but where that plugin hands over a whole admin session, Penny hands over a scope.

And when they only need to look — a client signing off a draft that isn't live yet — Penny makes a view link (Pro): one person, one look, in one browser, and link scanners can't use it up.

Requirements

Craft CMS 5.3+ and PHP 8.2+.

Installation

From the Plugin Store, or:

How it works

You make an invite. Give it a name for your own records, pick what the recipient works on, and tick which of its fields they can edit. Set a deadline if you want one.

Penny gives you a link, once. Only a hash of the key is stored, so a database dump does not contain a working link — and Penny genuinely cannot show you the same link twice. Copy it, or let Penny email it (Pro). Later you can re-issue, which mints a new link and turns the old one off.

They open it. No account, no password, no sign-up. They see the fields you chose, your note at the top, and a submit button.

They send it in. The link is now spent. You get an email (Pro), and the invite's page in the control panel shows the whole trail: created, sent, opened, saved, submitted, from which address, and when.

What an invite can point at

An entry that exists The common case — "update this page"
A new entry in a section They fill in a blank one; it stays disabled until you say otherwise
A global set Opening hours, the address in the footer, the announcement bar
A category, a tag, an asset, a user Anything else with a field layout

One target in Lite, as many as you like in Pro.

Where they edit

The Penny page — a standalone page with your logo on it and nothing else. It renders Craft's real field inputs, so Matrix, CKEditor, asset uploads and relation fields all behave exactly as they do in the control panel. No Craft user account is created, which means it works on a Solo licence and your recipient never holds a login to your site.

The control panel (Pro) — for a recipient who needs the whole editor. Penny creates a temporary, tightly-permissioned account, drops them on the edit screen, and deletes the account when they hand the work in. It creates a real Craft user for the duration, which a Solo licence counts.

View links (Pro)

Craft's own Share button makes a link anybody can open until its token runs out, however far it is forwarded. A view link opens once, for one person:

Share once sits beside Save on any entry with a page: one click makes the link and shows it to you once, to copy. Or make one from Penny → New invite with What the link does set to View once.

It protects the page, not the files on it — images and PDFs keep their usual public URLs — and a full-page cache or CDN must not serve cached pages to requests carrying a token parameter.

Nothing is live until they say so

Where Craft keeps drafts — entries and categories — the recipient works on a draft. The live element is not touched until they submit, so a half-finished session is never visible on your site and closing the tab loses nothing.

Turn on hold for review (Pro) and submission does not publish either: the work stays a draft until somebody approves it in the control panel.

Globals, users and assets have no drafts in Craft 5. Those are written once, at submission, and Penny says so on the invite screen rather than pretending otherwise.

The scope is the point

The fields you tick are the only fields Penny will render and the only fields it will write. A posted value for anything else is dropped — not rejected with an error, just dropped, because a hostile POST and a tab left open across a scope change look identical from the server.

On the control panel surface, where Craft's own editor renders the whole field layout, out-of-scope fields are hidden and any change to them is put back before the save reaches the database.

Some things are never writable, whatever a field layout says: admin, permissions, groups, email, username, newPassword, suspended and their kind. An invite is not a route to an account.

Lite and Pro

Lite Pro
The Penny page ✓ ✓
Entries and globals as targets ✓ ✓
Field-level scoping ✓ ✓
Expiry, single submission, revoke, re-issue ✓ ✓
Audit trail ✓ ✓
Targets per invite 1 unlimited
New-entry targets ✓
Category, tag, asset and user targets ✓
Temporary control panel sessions ✓
Email delivery, reminders, submission notices ✓
Hold for review ✓
View links and Share once ✓
Logo, accent colour and heading on the Penny page ✓ ✓
Console commands and the Twig API ✓ ✓

Email templates

The emails are ordinary Twig, and your own site templates win. Put a template at any of these paths and Penny will use yours instead:

Twig

Console

remind re-issues the link it sends, because only a hash of the original is stored and there is nothing to re-send. One live link per invite, always. Each invite is reminded once, however often the command runs.

Settings

Everything is under Settings → Plugins → Penny: the URL prefix invites are served from, the default deadline and surface, session length, the viewing window for view links, email defaults, the accent colour and logo for the Penny page, how long the audit trail is kept, and how many wrong guesses an IP address gets per hour.

Security

Testing

Licence

Proprietary. See LICENSE.md.


All versions of craft-penny with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
ext-json Version *
craftcms/cms Version ^5.3.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 justinholtweb/craft-penny contains the following files

Loading the files please wait ...