Integrates the ClassicPress Plugin Directory and any plugin stored in GitHub (tagged with classicpress-plugin) in the ClassicPress Admin

Overview

ClassicPress Plugin Directory

Bugs Vulnerabilities Maintainability Rating Reliability Rating Security Rating

slack

Adds a new screen in a ClassicPress Install where you can browse, install, activate, deactivate, update, delete and paginate Plugins listed on the ClassicPress Directory or on GitHub (read more about this additional repository below).

Usage

Install and activate like any other plugin.

Navigate to Dashboard > Plugins > Manage CP Plugins and start managing ClassicPress Plugins. You can install, activate, deactivate, update, delete, and also search Plugins all from within the same screen. The Directory results are cached locally for fast performance, and you can refresh the local cache on the click of a button.

It has a pagination and a total plugins display to navigate (15 plugins a time) through the assets. A "more info" will display all information known to ClassicPress about the plugin and developer.

The plugin requires wp_remote_get and file_put_contents to work properly on the server.

Plugins not listed in the ClassicPress Directory

It is possible to manage plugins that are not listed in the ClassicPress Directory with this plugin as well. The conditions for this to work are:

  • the GitHub stored Plugin MUST have a tag classicpress-plugin
  • the GitHub Repository MUST have a valid Release tag named witha SemVer release version (like 1.0.0) and Public Release with a manually uploaded Release Asset in Zip Format. This ZIP MUST be uploaded to the release section for Attach binaries by dropping them here or selecting them.
  • currently only plugins stored by the TukuToi Organization are available - in the next release, a setting will be offered to end users in order to register any organziation or user.

Disclaimers

  • The plugin does not take any responsibility for Plugins downloaded from the ClassicPress Directory or GitHub.
  • The ClassicPress Plugin Repository is not always well maintained by the Developers who list their plugins. They forget often to bump the Version Number of their Plugins. This means, you might not see an update, even if there is one, or you might see an update to a certain version and get an update to a much higher version.
  • If a GitHub stored plugin is not following above (MUST) clauses, it will not be possible for this plugin to find, pull or else manage such repos.

Changelog

1.2.0

[Added] GitHub Repo Sync for (TukuToi) Plugins [Added] Total Page Number on pagination [Added] Improved Error notices [Changed] Moved the "report this plugin" to the left in the cards

1.1.4

[Fixed] Plugins (unless the integration itself) got deactivated after Updating.

1.1.3

[Fixed] Plugin could not update itself. [Fixed] Request-URI Too Long when performing several searches without resetting the search. [Fixed] Unused third argument in AJAX operations removed.

1.1.0

[Added] AJAXified install/activate/deactivate/update/delete buttons/features. [Added] Bottom pagination [Fixed] Design of main search bar

1.0.1

[Fixed] Added fallback for when no mail client is installed on user computer.

1.0.0

  • [Added] Initial Release
Comments
  • Integrate GitHub TukuToi Repos

    Integrate GitHub TukuToi Repos

    Currently this plugin allows only to get plugins from the CP Directory API.

    Since the directory (or its owners) claim some sort of undocumented ownership over code, and requires too much manual work to maintain for a developer, and requires a forum account a developer might not want to partake in, at least TukuToi Plugins should be possible to be pulled directly from GitHub.

    It should be relatively easy by listing to a new plugin header tag or similar.

    enhancement 
    opened by smileBeda 16
  • Add build process with gulp to generate .pot

    Add build process with gulp to generate .pot

    • [x] Adds build process with gulp to generate .pot
    • [x] Generates current string up for translation.

    Run npm i && gulp watch to generate newly translated files. This would be a stepping block to help the move the project from English base only. There a number of string to make translatable as well in the project. This can be another PR to make it manageable to evaluate.

    opened by bahiirwa 8
  • Improve the Report this plugin link visibility

    Improve the Report this plugin link visibility

    Thanks for the work on this.

    I have two requests if you deem so would improve the product.

    1. Increase the legibility by adjusting the contrast of the Report this plugin link to something darker. 20% seemed better for me.
    2. Move the positioning adjacent to the contact the developer. This gives a visual hierarchy. I am also more likely to hit the report this plugin button when I want to install now or more details

    Screenshot(7)

    enhancement 
    opened by bahiirwa 6
  • Add number of available pages in pagination

    Add number of available pages in pagination

    While using the plugin, I felt like I had an unlimited options (This might be intended) I was overwhelmed not knowing where the end is. My request is to add number of available pages in pagination like in the screenshot. Thank you.

    Screenshot(8)

    enhancement 
    opened by bahiirwa 3
  • Allow end users to register trusted GitHub orgs or individuals and pull their tagged plugins

    Allow end users to register trusted GitHub orgs or individuals and pull their tagged plugins

    Currently the plugin pulls GitHub repos from TukuToi org, if the repo is tagged with classicpress-plugin Make it possible for an end user to add trusted Orgs/individuals in a simple to use setting, so to pull their repos as well, as long they are tagged appropriately

    This feature should:

    • provide a setting, perhaps with select2, to choose from orgs/individuals
    • save that setting and show the choice
    • then pull from those repos as well when enabled

    It could be nice to offer the user the option to find orgs/ind without having to search for those, by simply APIing the tags of GitHub and pulling all orgs/ind from that, then offer them as a choice to the user (of course, with adequate "hey do you know what you do" warning)

    enhancement 
    opened by smileBeda 2
  • 1.4.0

    1.4.0

    [Added] AJAX loading the plugins list when empty or refreshing list. [Added] CRON daily event to check for new plugins/updates. [Added] Full integration with CP's new Directory API (plugins only). [Fixed] Missing (if available) GitHub Authentication when requesting readme.* files.

    opened by smileBeda 1
  • Make sure to add authorisation to every GitHub Call

    Make sure to add authorisation to every GitHub Call

    According report from Simone,

    Seems that in admin/class-cp-plgn-drctry-github.php:275 should be

    $readme = $this->get_remote_raw_body( 'https://raw.githubusercontent.com/' . $login . '/' . $item . '/' . $branch . '/' . $var, $this->set_auth() );
    

    so you add authentication also when checking for readmes.

    bug requires-testing 
    opened by smileBeda 1
  • Make the pull process to remote an AJAX operation instead of blocking

    Make the pull process to remote an AJAX operation instead of blocking

    Currently when the plugin is first installed or a "refresh list" operation is done, a blocking remote get operation (which can take literal minutes) is performed.

    This should be an AJAX operation with a spinner and perhaps some nice status updates/progress.

    enhancement requires-testing 
    opened by smileBeda 1
  • Upload a POT file with last strings

    Upload a POT file with last strings

    As this PR #7 shows, the plugin has an empty POT file. The workflow proposed in that PR is a bit too complicated since we can do everything as well with wp-cli, as Simone showed me.

    I tried it and it works very well out of the box.

    Thus, release 1.3 should include the POT file of strings.

    Also PR #7 showed an issue with a string localised in /partials/display which needs to be fixed. This is going in the same.

    bug enhancement 
    opened by smileBeda 1
  • Request-URI Too Long when performing several searches without resetting

    Request-URI Too Long when performing several searches without resetting

    When a user performs a number of searches, the URI gets longer and longer, resulting finally in a

    The requested URL's length exceeds the capacity limit for this server.
    Additionally, a 414 Request-URI Too Long error was encountered while trying to use an ErrorDocument to handle the request.
    

    The fix should be to reset the search URL parameters when a user submits a new search. Found by Mark Davenport at CP.

    opened by smileBeda 1
  • 1.3.0

    1.3.0

    [Added] Plugin Settings Page (under Admin > Settings > Manage CP Repos) [Added] Setting to add custom GitHub Repositories of Orgs, Users, and single repos [Added] Setting to store Personal GitHub Token, which increases the API Limits to 5k hourly instead of 60. [Added] Verified Orgs (not users) are pre-selected. A PR can be used to add new Orgs to the vetted list. [Added] Fundations to read remote readme, README, (both in md or txt) files. Currently used ony for below [Fixed] item. [Added] POT file for translators [Fixed] Untranslatable strings [Fixed] Problem where plugins with foldername/distinct-filename.php AND a unguessable Plugin Title could not be managed. [Improved] Make less calls to the GitHub API by re-using already queried data as much as possible. [Changed] Refactored code base

    opened by smileBeda 0
Releases(1.4.0)
Owner
TukuToi
Where The Web Becomes Art
TukuToi
Ip2region is a offline IP location library with accuracy rate of 99.9% and 0.0x millseconds searching performance. DB file is ONLY a few megabytes with all IP address stored. binding for Java,PHP,C,Python,Nodejs,Golang,C#,lua. Binary,B-tree,Memory searching algorithm

Ip2region是什么? ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,ip2region.db数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法。 Ip2region特性

Lion 12.6k Dec 30, 2022
Simple user settings facade for Hyperf. Settings are stored as JSON in a single database column, so you can easily add it to an existing table.

hyperf-user-settings Simple user settings util for hyperf Settings are stored as JSON in a single database column, so you can easily add it to an exis

lysice 1 Oct 15, 2021
Minimalistic bookmark manager for your own server written in PHP. Bookmarks are stored in a sqlite database.

b - Bookmark manager b is a minimalistic bookmark manager for your own server. Written in PHP. Bookmarks are stored in a sqlite database. Features: fi

Sebastian Volland 48 Jan 6, 2023
Plugin to diagnose/fix ClassicPress SSL issues.

ClassicPress SSL Fix This plugin provides a way to work around the issue "cURL error 60: SSL certificate problem: certificate has expired" in ClassicP

ClassicPress Research 2 Oct 10, 2021
This composer plugin removes unnecessary development files and directories from vendor directory

Composer Vendor Cleaner This composer plugin removes unnecessary development files and directories from vendor directory. Installation Local installat

Libor M. 15 Dec 16, 2022
Run your WP site on github pages, php innovation award winner https://www.phpclasses.org/package/12091-PHP-Make-a-WordPress-site-run-on-GitHub-pages.html

Gitpress Run wordpress directly on github pages Gitpress won the innovation award for may 2021 Read more about this https://naveen17797.github.io/gitp

naveen 13 Nov 18, 2022
Compares two directories and removes the duplicate files from the second directory.

How does the HRZ Duplicate Refiner work? 1- Compares two directories : patternDir: the directory used as the pattern & does not change. victimDir: A d

Hamidreza Zolfaghar 2 May 6, 2022
Directory for storing files from PHP and Logic classes

Curso Logica e PHP (C4) ✔️ Diretório para guardar os arquivos das aulas de PHP e lógica Seção 1 - Introdução Seção 2 - Lógica com VisualG e Nocões de

Bruno Henrique 1 Jan 28, 2022
Victor The Cleaner for Composer - This tool removes unnecessary files and directories from Composer vendor directory.

Victor The Cleaner for Composer This tool removes unnecessary files and directories from Composer vendor directory. The Cleaner leaves only directorie

David Grudl 133 Oct 26, 2022
🔨 Prefixes all PHP namespaces in a file/directory to isolate the code bundled in PHARs.

PHP-Scoper PHP-Scoper is a tool which essentially moves any body of code, including all dependencies such as vendor directories, to a new and distinct

Humbug 590 Jan 2, 2023
Track any ip address with IP-Tracer. IP-Tracer is developed for Linux and Termux. you can retrieve any ip address information using IP-Tracer.

IP-Tracer is used to track an ip address. IP-Tracer is developed for Termux and Linux based systems. you can easily retrieve ip address information using IP-Tracer. IP-Tracer use ip-api to track ip address.

Rajkumar Dusad 1.2k Jan 4, 2023
This module integrates Silverstripe CMS with Google Translate API and then allows content editors to use automatic translation for every translatable field.

Autotranslate This module integrates Silverstripe CMS with Google Translate API and then allows content editors to use automatic translation for every

null 4 Jan 3, 2022
Arc admin comment preview - Simple Textpattern plugin that adds a comment preview to admin

arc_admin_comment_preview This is a Textpattern plugin for adding comment previews to the admin comment edit pages. Requirements Textpattern 4.0.8+ In

Andy Carter 1 Jan 20, 2017
Description: A simple plugin that sets the current admin page to always be at the top of the admin menu.

=== Sticky Admin Menu === Contributors: sc0ttkclark Donate link: https://www.scottkclark.com/ Tags: admin menu, sticky Requires at least: 4.4 Tested u

Scott Kingsley Clark 2 Sep 29, 2022
salah eddine bendyab 18 Aug 17, 2021
This Magento 2 extension integrates EasyTranslate into Magento 2.

EasyTranslate Magento 2 Connector This Magento 2 extension integrates EasyTranslate into Magento 2. Mind that you need to have an account with EasyTra

Easytranslate ApS 0 Oct 7, 2022
The MX_PhinxMigrations module integrates Phinx database migrations into Magento 2

MX Phinx Migrations About The MX_PhinxMigrations module integrates Phinx database migrations into Magento 2 as a replacement for the built-in setup:up

Inviqa 34 Jul 30, 2021
A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.

select2entity-bundle Introduction This is a Symfony bundle which enables the popular Select2 component to be used as a drop-in replacement for a stand

Ross Keatinge 214 Nov 21, 2022