Saltar al contingut

Creating a Plugin

Aquesta pàgina encara no està disponible en el teu idioma.

In order to get started, you first need to setup your Castopod dev environment.

You’ll first need to create your plugin folder in the plugins/ directory.

Using the create command Recommended

Section titled “Using the create command ”

To quickly get you started, you can have a folder generated for you using the following CLI command:

Terminal window
php spark plugins:create

👉 You will be prompted for metadata and hooks usage to have a skeleton plugin project generated for you!

  1. create a plugin folder inside a vendor directory

    • Directoriplugins
      • Directoriacme // vendor name
        • Directorihello-world/ // plugin name
  2. add a manifest.json file

    • Directorihello-world
      • manifest.json

    See the manifest reference.

  3. add the Plugin.php class

    • Directorihello-world
      • manifest.json
      • Plugin.php

Now that your plugin folder is set, you can start working on your Plugin’s logic by implementing the hooks needed.

You can prompt users for data through settings forms.

These forms can be built declaratively using the settings attribute in your manifest.

manifest.json
{
"settings": {
"general": {
"field-key": {
"type": "text",
"label": "Enter a text"
}
},
"podcast": {
"field-key": {
"type": "text",
"label": "Enter a text for this podcast"
}
},
"episode": {
"field-key": {
"type": "type",
"label": "Enter a text for this episode"
}
}
}
}

This example will generate settings forms at 3 levels:

  • general: a general form to prompt data to be used by the plugin
  • podcast: a form for each podcast to prompt for podcast specific data
  • episode: a form for each episode to prompt for episode specific data

The data can then be accessed in the Plugin class methods via helper methods taking in the field key:

$this->getGeneralSetting('field-key');
$this->getPodcastSetting($podcast->id, 'field-key');
$this->getEpisodeSetting($episode->id, 'field-key');