clivebeckett / grav-plugin-admin-addon-media-metadata

This plugin is an addon for the Grav CMS Admin plugin and lets you add and edit metadata for media files
MIT License
8 stars 6 forks source link

Admin Addon Media Metadata Plugin

The Admin Addon Media Metadata Plugin is an extension for the Grav CMS Admin plugin. It lets you add and edit metadata for media files in the Page Media browser.

The Admin plugin has not been offering a feature like this yet. In order to add/edit metadata e.g. for an image you had to create a [image.filename].meta.yaml for the image in your file browser and edit it in a text editor.

Usage and Features

How to use it

(see also screenshots below)

  1. hover any file in your Page Media section
  2. hit the small «i» button to open the metadata form (the regular «i» button which just showed the metadata will be overwritten by the plugin)

NOTE on setting “Auto metadata from Exif”

If your system is set to automatically write EXIF metadata
(system.yaml → media.auto_metadata_exif: true)

Installation

Grav Package Manager (GPM)

If you can access your Grav installation via the command line, install the plugin by typing the following from your Grav root:

bin/gpm install admin-addon-media-metadata

Admin Tool Web Interface

In the Plugins section, hit the [+ Add] button, search for Admin Addon Media Metadata and install.

Manual Installation

To install the plugin manually, download the ZIP version of the latest release of this repository and unzip it under /your/site/grav/user/plugins. Then rename the folder to admin-addon-media-metadata. You can find these files on GitHub.

Configuration

The default fields in the metadata form are alt, title, and caption. If you want to add more data to your meta.yaml files, please copy
user/plugins/admin-addon-media-metadata/admin-addon-media-metadata.yaml to
user/config/plugins/admin-addon-media-metadata.yaml
and add more form fields to the form by updating the copy. E.g. if you want to add a field for a web link, you might add the following lines:

  - type: text
    label: Web link
    name: weblink
    placeholder: https://domain.tld/

The URL field will be available in your metadata form and you’ll be able edit the information.

Do not touch base_fields in config as the plugin requires them to run properly. You can delete this field fromt your custom configuration though (which makes future upgrades more safe).

Also nesting (multi level arrays) like name: misc.tip or name: misc[tip] is not supported.

Additional Page Specific Metadata Fields (v1.1 and later)

You may also add page specific fields to a page’s frontmatter. Note: The fields will be added to the form, not override the ones from the above mentioned config files:

admin-addon-media-metadata:
  metadata_form:
    fields:
      -
        type: text
        label: 'Yet another field'
        name: yetAnotherField
        placeholder: 'yet yet yet'

Having added this example code to the frontmatter of your page, it will add the new field 'Yet another field' to the metadata modal, but only for this specific page.

Credits

I have based the plugin on Dávid Szabó’s Admin Addon Media Rename plugin. Much of the code would not have been possible for me without Dávid’s work.

@renards helped a lot in replacing my original self-written Yaml parsing and writing code with Grav core technology and thus made version 1.0.0 possible.

Screenshots