Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/szepeviktor/composer-theme-fusion

Composer plugin for ThemeFusion ⬢
https://github.com/szepeviktor/composer-theme-fusion

composer composer-plugin themefusion wordpress

Last synced: about 2 months ago
JSON representation

Composer plugin for ThemeFusion ⬢

Awesome Lists containing this project

README

        

# Composer plugin for ThemeFusion

[![Packagist](https://img.shields.io/packagist/v/szepeviktor/composer-theme-fusion.svg?color=239922&style=popout)](https://packagist.org/packages/szepeviktor/composer-theme-fusion)
[![Packagist stats](https://img.shields.io/packagist/dt/szepeviktor/composer-theme-fusion.svg)](https://packagist.org/packages/szepeviktor/composer-theme-fusion/stats)
[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-239922)](https://github.com/phpstan/phpstan)

A [Composer plugin](https://getcomposer.org/doc/articles/plugins.md)
to load WordPress plugins from [ThemeFusion](https://theme-fusion.com/).

:bulb: Always the latest version is installed, as ThemeFusion does not make other versions available.
Package version locking can only be achieved by local persistent cache, not across hosts or users.

### Installation

This Composer plugin must be installed globally as it adds a virtual package repository.

```shell
composer global require --update-no-dev szepeviktor/composer-theme-fusion
```

### Configuration

Add your token and theme version to your `config.json` (in `$COMPOSER_HOME`).

You find the `token` in WordPress option `fusion_registration_data`.
Get its value with e.g. WP-CLI `wp option get fusion_registration_data`.

```json
{
"config": {
"theme-fusion": {
"token": "YOUR THEME-FUSION TOKEN",
"themeVersion": "YOUR AVADA THEME VERSION, EG. '6.2.2'"
}
}
}
```

### Usage

Once the plugin is installed and configured,
you can simply install any of the **premium** plugins (e.g. `theme-fusion/fusion-core`) as Composer packages.
You find the list plugin slugs in this JSON:
`https://updates.theme-fusion.com/?avada_action=get_plugins&avada_version=`

:bulb: Use the vendor name `theme-fusion`.

### Behind the scenes

1. This package is a Composer plugin
1. In the `activate` method it creates an `ArrayRepository`
with package data from ThemeFusion API
1. Package version is queried from ThemeFusion API
1. When installing a package its URL is also queried from ThemeFusion API