Share content between your websites.

Overview

Distributor icon

Distributor

Distributor is a WordPress plugin that makes it easy to distribute and reuse content across your websites — whether in a single multisite or across the web.

Support Level Tests Linting Code scanning Release Version WordPress tested up to version License

You can learn more about Distributor's features at DistributorPlugin.com and documentation at the Distributor documentation site.

Note: The latest stable version of the plugin is the stable branch. Download the stable branch if you are intending to use the plugin in production.

Table of Contents

Features

Distributor supports safe, SEO-friendly content reuse and sharing via "pushing" and "pulling".

While logged in and editing or viewing any single post (or custom post type) that can be distributed, a Distributor admin bar item will appear, that will facilitate sharing ("pushing") that content to any connection.

Push the content you’re editing or viewing to any of your other sites from the admin bar

In the admin dashboard, a top level Distributor menu item links to the "pull" screen. Here, editors can share ("pull") content from any connection into the current site.

Pull content from another site from the Distributor admin menu

Content this is distributed (via Push or Pull) is connected to the original. Reposted content receives updates from the original, canonical source automatically.

Distributor intuitively presents the origin and status of any reused content

There are two connection types: internal and external.

  • Internal connections are other sites inside of the same multisite network. Any user logged into the network can distribute any content in the network to any other sites in the network where that user has permission to publish posts (assuming the site supports the same post type).
  • External connections are external websites, connected by the JSON REST API using Application Passwords. External connections can be added in the WordPress admin dashboard under Distributor > External Connections. Administrators can decide which user roles are allowed to distribute content to and from that connection (Editors and Administrators by default). All users with those roles will inherit the permissions of the user account used to establish the remote connection.

Extendability

Distributor is built with the same extensible approach as WordPress itself, with fully documented hooks and filters to customize its default behavior and create custom distribution workflows. You can even create connections to other platforms.

Requirements

  • PHP 5.6+
  • WordPress 4.7+
  • External connections require HTTP Basic Authentication or WordPress.com OAuth2 (must be on WordPress VIP) be set up on the remote website. For Basic Auth, we recommend the Application Passwords plugin (note that other plugins like JWT Auth will likely cause issues for external connections) though if you're running WordPress 5.6 or above then Application Passwords is already installed.
  • For external connections, Distributor needs to be installed on BOTH sides of the connection.

Installation

For Production use, we recommend registering and downloading the plugin from DistributorPlugin.com – it's 100% free. You will be emailed a direct link to download the latest, production-ready build. Alternatively, you can download the latest release from GitHub.

You can upload and install the archived (zip) plugin via the WordPress dashboard (Plugins > Add New -> Upload Plugin) or manually inside of the wp-content/plugins directory, and activate on the Plugins dashboard.

Registration

To help inform our roadmap, keep adopters apprised of major updates and changes that could impact their websites, and solicit opportunities for beta testing and feedback, we’re asking for a little bit of information in exchange for a free key that unlocks update notifications and 1-click upgrades inside the WordPress dashboard. Your information is kept confidential. You can register here and input your key in Distributor settings in the dashboard (network dashboard for multisite users). Note that you need to input the email address you used to register Distributor (included in the email with your registration key) as that is linked to the registration key.

Set up External Connections using Application Passwords

  1. Ensure that the current version of Distributor is active on BOTH sites being connected. We'll refer to these as mainsite.com and remotesite.com.
  2. On mainsite.com, navigate to Distributor > External Connections and click Add New.
  3. Enter a label for the connection (e.g., remotesite.com), select Username / Password for the Authentication Method, and a username from remotesite.com.
  4. On remotesite.com, ensure that Application Passwords is installed. (Note: Using this plugin instead of a normal WordPress users password helps limit the use of your primary password and will allow you to revoke access to Distributor in the future if needed.) Then navigate to the user profile that will be used to create the External Connection on mainsite.com and then to the Application Passwords section of the user profile (not the Account Management section). Add a label for the New Application Password Name (e.g., mainsite.com) and click Add New. Now copy the password provided into mainsite.com's External Connections Password field.
  5. On mainsite.com, add the External Connection URL (e.g., http://remotesite.com/wp-json). You should see a green circle and "Connection established.".
  6. Ensure the roles selected in Roles Allowed to Push are the ones you want to support, then press the Create Connection button. You should now be able to push from mainsite.com to remotesite.com. If you want to pull from remotesite.com to mainsite.com, simply repeat these instructions swapping mainsite.com and remotesite.com.

How to Distribute Content

There are two methods for distributing content between multiple WordPress sites, Push and Pull. Pushing allows you to share content from your site to one or more connected sites while Pulling allows you to bring content into your site from one of your connected sites. In either method, once content has been distributed it will stay in sync with any changes made to the origin post (when Pushing the origin is the site being Pushed from, when Pulling the origin is the site being Pulled from).

Pushing Content

The Distributor menu in the WP Admin Bar will appear after a piece of content has been published. Hovering over that menu item will expose the Push menu that displays the list of connected sites on the left, the list of sites that have been selected for push distribution on the right, and a button to Distribute the content to those selected sites.

Push menu exposed when viewing published content on the front-end

The same Push menu and set of Distributor options are also available after publishing a piece of content within the WordPress Block Editor.

Push menu exposed when viewing published content in the Block Editor

After you click the Distribute button, Distributor will push the content to the selected connected sites, showing a View link when those pieces of content have been distributed, and noting Post successfully distributed. once the content has completed distributing to selected sites.

Push menu showing details after content distribution

When viewing that piece of content in the Block Editor, there will be a Distributor notice in the Status & visibility section noting how many sites the content has been distributed to.

Block Editor sidebar showing Distributor count of sites that content has been distributed to (via Push and Pull)

The same Push menu is available in the WP Admin Bar if you are using the Classic Editor. The Distributor notice is also available in the Publish metabox noting how many sites the content has been distributed to.

Classic Editor showing the Push menu and metabox showing Distributor count of sites that content has been distributed to (via Push and Pull)

Pulling Content

Navigating to the Distributor > Pull Content screen in the WP Admin will present you with a dropdown to select any of the sites you are connected to and will display all available pieces of content that can be Pulled into the current site. You can select Posts, Pages, and other Custom Post Types to filter on this screen; you can use the Bulk Edit menu to Pull or Skip more than one piece of content at a time; and you can use individual row actions on each piece of content pull, view, or skip each piece of content.

Pull Content screen showing row actions and a single post selected for Pulling

After you have Bulk Pulled several pieces of content or used the row actions to Pull a single piece of content, the Pull Content screen will show a confirmation message that the Pull action was successful and redirect you to the Pulled list view to see all the items that have been pulled into the current site. The same process will happen if you opt to Skip specific piece(s) of content.

Pull Content screen showing confirmation on content being pulled

You can navigate to the Posts > All Posts table list view to see all content that has been pushed or pulled to the current site via the Distributor column denoted with the Distributor icon (Distributor icon). Rows that include the Distributor icon will link off that icon to the origin site and post where that content was either pushed or pulled from.

All Posts screen showing Distributor links for pushed and pulled content

Support Level

Active: 10up is actively working on this, and we expect to continue work for the foreseeable future including keeping tested up to the most recent version of WordPress. Bug reports, feature requests, questions, and pull requests are welcome.

Known Caveats/Issues

Gutenberg Fullscreen Mode - Gutenberg 3.8 originally introduced Fullscreen mode for the editor and WordPress 5.4 and Gutenberg 7.7 made that the default setting. Fullscreen mode creates a problem as the admin bar is no longer visible which means the Distributor push menu is no longer visible. We are working on researching a resolution to this issue, but in the meantime we recommend clicking on the three vertical dots in the upper right corner of Gutenberg and disabling fullscreen mode to ensure the admin bar and Distributor push menu is in view.

Remote Request Timeouts - With external connections, HTTP requests are sent back and forth - creating posts, transfering images, syncing post updates, etc. In certain situations, mostly commonly when distributing posts with a large number of images (or very large file sizes), using poorly configured or saturated servers / hosts, or using plugins that add significant weight to post creation, Distributor requests can fail. Although we do some error handling, there are certain cases in which post distribution can fail silently. If distribution requests are taking a long time to load and/or failing, consider adjusting the timeout; you can filter the timeout for pushing external posts using the dt_push_post_timeout filter. More advanced handling of large content requests, and improved error handling is on the road map for a future update.

Post Meta Associations - A distributed post includes all of the post meta from the original version. Sometimes arbitrary post meta references an ID for another piece of content on the original site. Distributor does not "bring along" the referenced content or update references for arbitrary post meta (it will take care of updating references in the case of core WordPress features, such as the featured image ID). This issue is very common when using field management plugins like Advanced Custom Fields (ACF). This can be addressed on a case by case basis by extending the plugin; for external connections, you can manually handle post meta associations using the dt_push_post hook. For internal connections, use the dt_push_post hook. Note that while named the same, these hooks accept different parameters.

Deleting Distributed Posts - When a post that has been distributed is deleted, the distributed copies will become unlinked ("forked") from the original and thus become editable. Similarly, when a distributed post is unpublished, distributed copies will not be unpublished. More sophisticated "removal" workflow is on the road map for a future update.

Gutenberg Block Mismatch - When distributing a Gutenberg post to another site that supports Gutenberg, if a block in the post does not exist on the receiving site, the block will be converted to a "Classic" HTML block.

Parent Posts - Distributor does not "bring along" parent (or child posts). If your post (or custom post type) has a parent or a child, it will distribute it as if it's an orphan.

Custom Post Type Support - Internal Connections (multisite) support multiple post types. In order for distribution to work with External Connections that have custom post type content, that post type needs to be registered with the argument show_in_rest => true on the external site.

Unable to Push to New Custom Post Types - If new Custom Post Types are created after establishing an External Connection, you will only be able to Pull those from an External Connection. To ensure you are able to Push new Custom Post Types to an External Connection, you will need to update the External Connection by editing it and then clicking the Update connection button.

Backwards Compatibility - While we strive to be mindful of backwards compatibility much the same way WordPress itself is, we do not currently guarantee continued interoperability between different versions of Distributor. We assume the current userbase for this plugin has a high degree of control over any site that has been set up as an external connection and urge you to keep Distributor up to date.

Distributing Post content - By default, post content is rendered before being copied. This means that shortcodes are expanded before being distributed and remote posts will not have the shortcode, but rather the expanded HTML content.

Distributing Authors - By default, distributed stories reference the original site as the "author" with a link to it. This can be altered by extending Distributor with custom code to make it sync authors.

Distributing Post Date - By default, the "post date" on distributed stories is the date its published on the remote site, not the date published on the origin site. This can be overridden by extending Distributor with custom code to make it preserve the post date.

Distributing Canonical URL - By default, canonical URL of distributed post will point to original content, which corresponds to SEO best practices. This can be overridden by extending Distributor with custom code and removing Distributor's default front end canonical URL filtering (look for 'get_canonical_url' and 'wpseo_canonical').

Drafts as Preferred Status - By default, drafts are the preferred status and can't be changed at the source site.

Developers

Running Locally

If you are compiling Distributor locally, note that there is a minimum requirement of Node.js 8.10. If you're using an older version of Node, then it will not compile correctly.

Testing

The plugin contains a standard test suite compatible with PHPUnit. If you want to test across multiple PHP versions, a Dockunit file is included.

Debugging

You can define a constant DISTRIBUTOR_DEBUG to true to increase the ease of debugging in Distributor. This will make all remote requests blocking and expose the subscription post type.

Enabling this will also provide more debugging information in your error log for image side loading issues. The specific logging method may change in the future.

Application Passwords and WordPress 5.6

In WordPress 5.6, Application Passwords was merged into WordPress core with some limitations. From 5.6, Application Passwords is enabled by default only for live sites with HTTPS. To enable Application Passwords for development sites, you will need the following snippet:

add_filter( 'wp_is_application_passwords_available', '__return_true' );

add_action( 'wp_authorize_application_password_request_errors', function( $error ) {
    $error->remove( 'invalid_redirect_scheme' );
} );

Changelog

A complete listing of all notable changes to Distributor are documented in CHANGELOG.md.

Contributing

Please read CODE_OF_CONDUCT.md for details on our code of conduct and CONTRIBUTING.md for details on the process for submitting pull requests to us.

Like what you see?

Comments
  • External Connection

    External Connection

    I have 2 different subdomains (site1: learning.sitename.com and site 2: employee.sitename.com) that I am trying to connect.

    External connections on both sites use /wp-json U/P is the primary admin in profile page User is admin on both sites

    I am getting the following message

    External Connection URL http://learning.sitename.com/wp-json Limited connection established. Authentication failed due to invalid credentials. Push distribution unavailable. Pull distribution limited to basic content, i.e. title and content body.

    I have reviewed all the posts about how to fix this issue and can not figure out a solution.

    Can someone provide me some guidance please

    type:question needs:feedback 
    opened by j0HnC0untry 35
  • Getting: Limited connection established

    Getting: Limited connection established

    I am using the WordPress.com rest API and I still get this error.

    Authentication failed. Push distribution unavailable. Pull distribution limited to basic content, i.e. title and content body.

    type:question needs:feedback 
    opened by anton-roos 26
  • Empty posts created when pushing

    Empty posts created when pushing

    When post/s are pushed from site A to site B many empty posts are created, as well as the intended post/s, empty posts are listed as:

    (no title) — Draft

    WordPress version : 4.9.8 Plugins installed : 'Distributor' and 'Application Passwords'

    type:bug help wanted 
    opened by steve-hadley 23
  • No Connection

    No Connection

    Describe your question

    I have registered and installed the plugin to my main site and remote site and set up a application password and i am not able to get a connection on the main site to the remote site.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:question needs:feedback 
    opened by jadamsbit 20
  • Limited connection - authorization failed: single site wordpress pulling from multi-site wordpress

    Limited connection - authorization failed: single site wordpress pulling from multi-site wordpress

    One site that is part of a multi-side wordpress account is working fine. Can pull posts perfectly. All sites are in the same wordpress account.

    The issue I'm having is trying to connect a separate single wordpress site to be able to pull posts from my multi-site wordpress account.

    From my single site wordpress, when I try to connect a site from multi-site, I get "limited connection. authorization failed" with no ability to pull/post/do anything.

    Thoughts? Thank you very much. Your plugin is a godsend.

    type:question needs:feedback 
    opened by samels 19
  • Featured Image not transfered

    Featured Image not transfered

    I've started using this plugin, run several tests on it and it's working fine except for the fact that's not transferring any Featured Image. Not from posts, pages or CPTs.

    type:bug 
    opened by d13mas 18
  • CPT Support

    CPT Support

    I posted on https://github.com/10up/distributor/issues/103, however it's a closed issue, so wanted to create a new one.

    I'm running into the same issue, when trying to use a different endpoint than /wp-json/. I need to pull specific posts from a CPT.

    Example I'm trying to use: https://WWW.URL.COM/wp-json/wp/v2/podcast?series=123

    I've registered the CPT and set: "show_in_rest" => true

    I keep getting this error: image

    However if I just use "https://WWW.URL.COM/wp-json/" for the endpoint it connects fine.

    Any help would be appreciated!

    type:question needs:feedback 
    opened by pstamandjr 17
  • Just need to know what to put in

    Just need to know what to put in "External Connection URL"

    Hi there, I´m not a programmer or an expert, and I really didn´t find any documentation or helping file saying how to do this. When Adding External Connection, I don´t know what URL to put there. Looked all over documentation and couldn´t find any hint. Any help?

    type:question needs:feedback 
    opened by lselbach 17
  • cURL error with self signed SSL for local dev

    cURL error with self signed SSL for local dev

    I'm receiving a cURL error 60 when I install the plugin on a multisite locally with a self signed SSL:

    screenshot 2018-08-13 00 16 32

    The plugin functions as expected when using http://

    PHP 7.2 WP 4.9.8 (multisite subdirectory) Distributor 1.2.2 Local By Flywheel 2.2.4

    type:enhancement help wanted needs:documentation 
    opened by danmaby 17
  • Setup Cypress for E2E testing

    Setup Cypress for E2E testing

    Is your enhancement related to a problem? Please describe.

    See overall concept in the OSBP guide and example setups on Simple Podcasting, Restricted Site Access, and https://github.com/10up/ElasticPress/pull/2446.

    Describe the solution you'd like

    • [ ] add base GitHub Action
    • [ ] add .wp-env.json
    • [ ] add base docker files
    • [ ] update package.json / package lock files
    • [ ] add cypress tests
    • [ ] remove any WP Acceptance components

    Designs

    n/a

    Describe alternatives you've considered

    n/a

    Additional context

    https://github.com/10up/cypress-wp-setup/ && https://github.com/10up/cypress-wp-utils will be helpful in getting this spun up and some initial test commands to leverage.

    type:enhancement help wanted needs:engineering 
    opened by vikrampm1 16
  • Add: Debug info to Site Health Info screen

    Add: Debug info to Site Health Info screen

    Description of the Change

    Add debug information of Distributor to Site Health Info screen.

    Alternate Designs

    n/a

    Benefits

    Adding Distributor-specific debug info there can help solve issues that come to us from support forums, GitHub, email, etc. as users can copy this info and send to us for faster assistance with issues.

    Possible Drawbacks

    n/a

    Verification Process

    Go to Tools > Site Health > Info and check the Distributor section.

    Checklist:

    • [x] I have read the CONTRIBUTING document.
    • [x] My code follows the code style of this project.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I have added tests to cover my change.
    • [x] All new and existing tests passed.

    Applicable Issues

    Relates to #407

    Changelog Entry

    Added: Site Health debug information.

    type:enhancement 
    opened by dinhtungdu 16
  • Canonical URL still set to originating site

    Canonical URL still set to originating site

    Describe the bug

    Canonical URL is still set to source site URL, even after using below code snippets from https://10up.github.io/distributor/tutorial-snippets.html

    /**
     * Stop Distributor from changing the canonical links.
     *
     * This removes Distributor's canonical functionality from
     * both Internal and External Connections and for those sites
     * that use Yoast SEO.
     */
    add_action( 'template_redirect', function () {
        remove_filter( 'get_canonical_url', array( '\Distributor\InternalConnections\NetworkSiteConnection', 'canonical_url' ), 10, 2 );
        remove_filter( 'wpseo_canonical', array( '\Distributor\InternalConnections\NetworkSiteConnection', 'wpseo_canonical_url' ) );
        remove_filter( 'get_canonical_url', array( '\Distributor\ExternalConnections\WordPressExternalConnection', 'canonical_url' ), 10, 2 );
        remove_filter( 'wpseo_canonical', array( '\Distributor\ExternalConnections\WordPressExternalConnection', 'wpseo_canonical_url' ) );
    }, 20 );
    

    Steps to Reproduce

    1. Connect Site A and Site B as external connection from Site A. Both site has Yoast SEO and Yoast SEO premium
    2. Configure settings on both sites as shown below

    Screenshot

    1. Add below snippets on both websites as set it to run everywhere
    /**
     * Stop Distributor from changing the canonical links.
     *
     * This removes Distributor's canonical functionality from
     * both Internal and External Connections and for those sites
     * that use Yoast SEO.
     */
    add_action( 'template_redirect', function () {
        remove_filter( 'get_canonical_url', array( '\Distributor\InternalConnections\NetworkSiteConnection', 'canonical_url' ), 10, 2 );
        remove_filter( 'wpseo_canonical', array( '\Distributor\InternalConnections\NetworkSiteConnection', 'wpseo_canonical_url' ) );
        remove_filter( 'get_canonical_url', array( '\Distributor\ExternalConnections\WordPressExternalConnection', 'canonical_url' ), 10, 2 );
        remove_filter( 'wpseo_canonical', array( '\Distributor\ExternalConnections\WordPressExternalConnection', 'wpseo_canonical_url' ) );
    }, 20 );
    
    1. Push a post (With featured image and in article images) from Site A to Site B as Draft
    2. Publish post on site B manually
    3. Observe that canonical URL of post on site B is still shown as url on site A.

    Screenshots, screen recording, code snippet

    No response

    Environment information

    No response

    WordPress information

    Provided as comment to this issue.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:bug 
    opened by yogeshbeniwal 1
  • Attachment images not getting transferred

    Attachment images not getting transferred

    Describe the bug

    Images used within posts are not transferred to destination website even when Process the featured image and any attached images. is enabled on both sites.

    Steps to Reproduce

    1. Connect Site A and Site B as external connection from Site A
    2. Configure settings on both sites as shown below

    Screenshot

    1. Push a post (With featured image and in article images) from Site A to Site B as Draft
    2. Publish post on site B manually
    3. Observe that only featured image is pushed to media library of site B, in article images are not pushed to site B media library and are used with site A URL.

    Screenshots, screen recording, code snippet

    No response

    Environment information

    No response

    WordPress information

    Provided as comment to this issue.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:bug 
    opened by yogeshbeniwal 1
  • Easiest way to distribute to an existing Post of a connected site

    Easiest way to distribute to an existing Post of a connected site

    Describe your question

    We have a few sites that were historically not connected using distributor but they previously were cloned versions of an original site. Many of the post IDs are the same however there are many that are not. Is there a way (maybe using the CLI or using another method) where you can force a mapping between posts on each site if you know the Post ID of the original post and the Post ID of the Post you want to connect to?

    Site A : Push Post 123 -> Site B Post ID 124 (overriding any content that is on 124 as needed)

    It's OK to overwrite the post on the receiving side in this scenario. Currently, if we try to distribute to a receiving site, we would create a New post of the same name.

    I looked through the documentation but nothing jumped out at me and I didn't see any issues that used similar terminology to what I was using in this issue.

    Any help/shove in the right direction is greatly appreciated. @jeffpaul if this is something that I should reach out to you directly let me know.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:question 
    opened by aaronware 0
  • Add a GH Actions summary

    Add a GH Actions summary

    Is your enhancement related to a problem? Please describe.

    Update the plugin to use the GH Actions Report summary used in https://github.com/10up/cypress-wp-utils/pull/63. It's a very nice presentation of the test results.

    Designs

    No response

    Describe alternatives you've considered

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:enhancement 
    opened by iamdharmesh 0
  • Unpublish ditributed post

    Unpublish ditributed post

    Describe your question

    Distributor 1.9.0 WP 6.1.1

    Created a post on source/original site, and distribute to destination site. Publish it on destination site, and attempt to switch back to draft. The modal is disabled

    Screenshot 2023-01-04 at 09 41 44

    How can I unpublish a distributed post?

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:question 
    opened by pdewouters 0
  • Remove duplication overriding post meta.

    Remove duplication overriding post meta.

    Is your enhancement related to a problem? Please describe.

    Distributor replaces the following for distributed copies of posts:

    • canonical URL (WP Core and Yoast SEO accounted for)
    • Yoast SEO opengraph URL
    • Author name and URL based on settings

    The code for replacing these items is duplicated in both the external and network connection classes. This code can be unified and removed from the classes.

    To maintain backward compatibility, the current code can be replaced throw deprecation errors.

    Designs

    No response

    Describe alternatives you've considered

    No response

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct
    type:enhancement 
    opened by peterwilsoncc 0
Releases(1.9.0)
Owner
10up
We make finely crafted websites and tools for content creators, doing our part to create a better web for clients like Microsoft, Time, ESPN, and Adobe.
10up
Moodle activity plugin for embedding content from other websites in a GDPR-compliant way

ICON activate external content What is it? This plugin is for when you want to include GDPR-compliant embeddings of content from external platforms su

ICONnewmedia 2 Sep 14, 2022
📦 An easy way to share the data from your backend to the JavaScript.

Laravel Shared Data ✨ Introduction Laravel Shared Data provides an easy way to share the data from your backend to the JavaScript. ?? Quick start Inst

Coderello 326 Nov 30, 2022
Share value objects that contain the same primitive value as a singleton

sharable-value-objects Share value objects that contain the same primitive value as a singleton. Singletons are kept under WeakReference objects. Inst

mpyw 5 Nov 14, 2021
Private groups to share messages, photos, videos, links with friends and family.

A truly private space for you and your friends What is Zusam ? Zusam (/tsuˈzam/) is a free and open-source way to self-host private forums for groups

Zusam 104 Dec 20, 2022
Super simple share buttons for WordPress. No images, no css, no javascript

Developer Share Buttons A super lightweight social sharing solution using either the Web Share API or simple sharing links. Description A simple, cust

Grant Richmond 28 Nov 13, 2022
Optional package for Laravel to generate social share links.

Laravel Share Share links exist on almost every page in every project, creating the code for these share links over and over again can be a pain in th

Joren Van Hocht 466 Dec 21, 2022
Arc social share - A Social Bookmarking Plugin for Textpattern

arc_social_share A Social Bookmarking Plugin for Textpattern; easily add links for sharing content with numerous social networks. arc_social_share 1.4

Andy Carter 5 Nov 15, 2022
It is the latest version of private RAT called Xworm. I share this one for free, so leave the star⭐ to this repository

XWorm-RAT-cracked- It is the latest version of private RAT called Xworm. I share this one for free, so leave the star ⭐ to this repository COMPILING:

null 67 Jan 1, 2023
Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization.

Admidio Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it

Admidio 212 Dec 30, 2022
A bot written in PHP which attempts to link IRC with SQL database, allowing for integration between platforms

Valeyard IRC-SQL-GateWay A bot written in PHP which attempts to link IRC with SQL database, allowing for integration between platforms. This bot is mo

Valerie Pond 10 Oct 6, 2022
Envbar allows you to differentiate between environments by adding a custom colored bar above the top navigation.

Envbar Envbar allows you to differentiate between environments by adding a custom colored bar above the top navigation. This should help backend users

Magenizr 6 Oct 7, 2022
This plugin allows you to create many-to-many relationships between pages in Kirby and synchronizes them on both sides.

Kirby 3 Many To Many Field This plugin allows you to create many-to-many relationships between pages in Kirby.

Jonas Holfeld 41 Nov 19, 2022
Manifest is a ProcessWire module that bridges between Twig and Webpack.

Manifest is a ProcessWire module that bridges between Twig and Webpack.

Rudy Affandi 4 Nov 12, 2022
Library for check dependency between modules inside projects

PHP Dependency analyzer PHP DA is tool for check and support dependencies inside your project clear. For example: You have project with 3 root namespa

Kir Apukhtin 12 Nov 15, 2022
A simple HTTP server behaving as proxy between webhooks and Appwrite Functions.

A simple HTTP server behaving as proxy between webhooks and Appwrite Functions, allowing for instance Stripe payments integration into Appwrite.

Matej Bačo 21 Nov 30, 2022
A comprehensive library for generating differences between two strings in multiple formats (unified, side by side HTML etc). Based on the difflib implementation in Python

PHP Diff Class Introduction A comprehensive library for generating differences between two hashable objects (strings or arrays). Generated differences

Chris Boulton 708 Dec 25, 2022
A fully-managed real-time messaging service that allows you to send and receive messages between independent applications.

A fully-managed real-time messaging service that allows you to send and receive messages between independent applications.

Google APIs 58 Dec 23, 2022
A tool that can be used to verify BC breaks between two versions of a PHP library.

Roave Backward Compatibility Check A tool that can be used to verify BC breaks between two versions of a PHP library. Pre-requisites/assumptions Your

Roave, LLC 530 Dec 27, 2022