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

https://github.com/gioxx/yourls-pluginmanager

Install, update and manage YOURLS plugins directly from the admin interface.
https://github.com/gioxx/yourls-pluginmanager

php yourls yourls-plugin

Last synced: 8 days ago
JSON representation

Install, update and manage YOURLS plugins directly from the admin interface.

Awesome Lists containing this project

README

          

# ๐Ÿ”Œ YOURLS Advanced Plugin Manager

[Readme file is also available in italian](README_IT.md).

[![Latest Release](https://img.shields.io/github/v/release/gioxx/YOURLS-PluginManager)](https://github.com/gioxx/YOURLS-PluginManager/releases)
[![License](https://img.shields.io/github/license/gioxx/YOURLS-PluginManager)](LICENSE)

**Install, update and manage YOURLS plugins directly from the admin interface.**
Just feed it a GitHub URL and it handles the rest ๐Ÿง™โ€โ™‚๏ธ

---

## ๐Ÿš€ Features

- ๐Ÿงฒ Install plugins from any public GitHub repo (release or tag)
- ๐Ÿ” Auto-overwrite existing plugin folder (works like "update")
- โฑ๏ธ Automatic update checks every 24 hours (plus manual on-demand checks)
- ๐Ÿค– Auto-associates repository metadata from `Plugin URI` (when valid GitHub URLs are available)
- โœ… Verifies `plugin.php` structure before installing
- ๐Ÿ” Supports GitHub Personal Access Token (to avoid API limits)
- ๐Ÿ“ฆ Extracts ZIP via `ZipArchive` (no dependencies)
- ๐Ÿ“Š Shows version, author, status, and last update time
- ๐Ÿ”— Associate/Change repo via dedicated modal UI (with pre-filled URL on change)
- ๐Ÿงผ Can delete inactive plugins safely
- ๐Ÿ’ฌ Fully translatable (`.po/.mo` ready โ€” Italian included ๐Ÿ‡ฎ๐Ÿ‡น)

---

## ๐Ÿ”ง Requirements

- PHP with [`ZipArchive`](https://www.php.net/manual/en/class.ziparchive.php) extension (default in most hosting)
- YOURLS 1.8+

---

## ๐Ÿ› ๏ธ Installation

1. Clone or download this repo
2. Copy the folder `yourls-plugin-manager` into your `user/plugins/` directory
3. (Optional) Create a `/languages` folder and add `.mo` translations
4. Activate the plugin from the YOURLS admin interface
5. Go to **Tools > Advanced Plugin Manager** to start using it!

---

## โ„น๏ธ Update Metadata Note

Plugins installed **before** repository metadata tracking was introduced may temporarily show **"No repository metadata"**.

To enable update checks and one-click updates for those plugins, reinstall or update each one once via Advanced Plugin Manager.

Default YOURLS plugins do not require repository association, and the UI now reflects this explicitly.

---

## ๐Ÿ†• Whatโ€™s New in 1.1.5

- Self-update notifications:
- the plugin now checks its own GitHub releases and shows a dashboard notice when a newer version is available
- the plugin page title now shows an update badge when applicable

## ๐Ÿ†• Whatโ€™s New in 1.1.4

- Delete flow hardened:
- automatic deletion now reports the exact plugin directory when YOURLS cannot remove it
- the admin can delete that folder manually on the server

## ๐Ÿ†• Whatโ€™s New in 1.1.3

- Install flow hardened:
- automatic extraction now runs only when `user/plugins` is writable by PHP
- when permissions are missing, the plugin stops with a clear message and a direct ZIP download link for manual installation

## ๐Ÿ†• Whatโ€™s New in 1.1.2

- Minor consistency fix:
- unified product naming across plugin metadata, UI copy, translations, and docs to **YOURLS Advanced Plugin Manager**

## ๐Ÿงพ Previous highlights (1.1.1)

- UI naming updates:
- plugin menu entry is now **Advanced Plugin Manager**
- page title is now **YOURLS Advanced Plugin Manager**
- Plugin submenu quality of life:
- plugin admin sublinks under **Manage Plugins** are now sorted alphabetically
- Installed plugins header actions:
- added a **Manage** button that links directly to YOURLS native plugin management page (`admin/plugins.php`)
- action buttons are now visually consistent
- **Update all available** is disabled when no updates are available
- New integrated settings feature:
- built-in `admin_view_per_page` customization (no separate plugin needed)
- if legacy plugin **Custom number of displayed links** is detected, an in-panel warning suggests deactivating/removing it
- credit: based on the snippet shared by **ozh** in YOURLS issue #2339: https://github.com/YOURLS/YOURLS/issues/2339#issuecomment-352127623

---

## ๐Ÿ™ GitHub API Tips

By default, GitHub allows **60 unauthenticated requests/hour per IP**.

To increase the limit to **5000 req/hour**, use a **[GitHub Personal Access Token](https://github.com/settings/tokens/new)** (no scopes needed).

---

## ๐ŸŒ Localization

- English (`en_US`) โ€” default
- Italian (`it_IT`) โ€” included
You can contribute other translations by forking and submitting `.po`/`.mo` files to the `languages/` folder.

---

## ๐Ÿค“ Example Plugin URLs

You can paste any of these into the GitHub URL field:

- `https://github.com/gioxx/YOURLS-LogoSuite`
- `https://github.com/YOURLS/antispam`

The plugin will automatically fetch the latest release or fallback to the latest tag.

---

## ๐Ÿงฉ Plugin Compatibility

To make your YOURLS plugin compatible with **Advanced Plugin Manager**, follow these simple guidelines:

### โœ”๏ธ What to do

- **Create a release** on your GitHub repository.
This will generate a `.zip` package that Advanced Plugin Manager can detect and download.
- Ensure your `plugin.php` file is:
- in the **root** of the ZIP, **or**
- in a **single subfolder** along with the rest of your plugin files.

### โŒ What to avoid

- Do not leave your repository in a flat layout without a release:
in this case, Advanced Plugin Manager will **not find any installable content**.
- Avoid deeply nested folders like `your-plugin/another-folder/plugin.php`.

### ๐Ÿ“ฆ Example structure

```text
your-plugin/
โ”œโ”€โ”€ plugin.php
โ”œโ”€โ”€ readme.md
โ””โ”€โ”€ ...
```

Then publish a release starting with the link: https://github.com/tuo-utente/tuo-plugin/releases/new (replace your-user and your-plugin with the correct informations).

---

## ๐Ÿ“„ License

This plugin is licensed under the [MIT License](LICENSE).
It uses only native PHP features โ€” no bundled third-party code or copyleft libraries.

---

## ๐Ÿ’ฌ About

Lovingly developed by the usually-on-vacation brain cell of [Gioxx](https://github.com/gioxx), using Codex to speed up some of the development and correct some rubbish.

---

## ๐Ÿค Contributing

Pull requests and feature suggestions are welcome.
If you find bugs or have feature requests, [open an issue](https://github.com/gioxx/YOURLS-PluginManager/issues).
If you find it useful, leave a โญ on GitHub! โค๏ธ