{"id":21840181,"url":"https://github.com/gocom/textpattern-installer","last_synced_at":"2025-04-14T10:50:57.554Z","repository":{"id":8268529,"uuid":"9721263","full_name":"gocom/textpattern-installer","owner":"gocom","description":"Textpattern plugin and theme installer for Composer","archived":false,"fork":false,"pushed_at":"2022-11-19T14:44:24.000Z","size":161,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-28T00:04:29.293Z","etag":null,"topics":["composer","composer-installer","composer-plugin","php","textpattern","textpattern-development","textpattern-plugin"],"latest_commit_sha":null,"homepage":"https://textpattern.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gocom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-04-27T21:22:47.000Z","updated_at":"2023-12-19T20:19:04.000Z","dependencies_parsed_at":"2023-01-13T14:43:08.801Z","dependency_job_id":null,"html_url":"https://github.com/gocom/textpattern-installer","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2Ftextpattern-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2Ftextpattern-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2Ftextpattern-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2Ftextpattern-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gocom","download_url":"https://codeload.github.com/gocom/textpattern-installer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248585338,"owners_count":21128976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","composer-installer","composer-plugin","php","textpattern","textpattern-development","textpattern-plugin"],"created_at":"2024-11-27T21:24:57.422Z","updated_at":"2025-04-14T10:50:57.534Z","avatar_url":"https://github.com/gocom.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Textpattern Installer for Composer\n=====\n\n[Package directory](https://packagist.org/search/?q=textpattern) | [Issues](https://github.com/gocom/textpattern-installer/issues)\n\nInstall plugins and themes to [Textpattern CMS](https://textpattern.com)\nwith [Composer](https://getcomposer.org/) dependency manager.\n\n```shell\n$ composer require rah/rah_replace\n```\n\nWhy Composer?\n-----\n\nNormally installing Textpattern plugins requires that you manually download an\ninstallation package, upload the package through your admin-panel, and then go\nthrough a multi-step installer process; rinse and repeat for every plugin, and\nwhen you need to update one.\n\nWith [Composer](https://getcomposer.org/), it's all managed through the\ndependency manager. Any theme or a plugin can be installed, updated or\nuninstalled, using a single command. This also comes with all the other\nComposer's benefits such as being able to commit your package manifesto under\nversion  control system and all of your project teammates will have the same\nset of plugins synced without any extra fiddling.\n\nQuick start for end-users\n-----\n\nAfter [installing Composer](https://getcomposer.org/doc/00-intro.md) to your\nhost system that Textpattern is installed on, you can start adding plugins\nto Textpattern with Composer from command line.\n\nFirst, head over to your Textpattern installation location, and tell\nComposer your Textpattern installation version by installing\n[textpattern/lock](https://github.com/gocom/textpattern-lock) meta-package:\n\n```shell\n$ cd /path/to/your/textpattern/installation/root\n$ composer require textpattern/lock:4.6.2\n```\n\nAfter that, you can add any plugins and themes to your Textpattern installation\nlike any other Composer packages:\n\n```shell\n$ composer require rah/rah_replace rah/rah_flat\n```\n\nAlways run Composer commands in Textpattern installation directory, or in a\ndirectory right above it; the Composer installer supports installing Textpattern\nto a sub-directory, which would allow Textpattern to be within public HTTP\nserver  root directory, while Composer packages can be in a directory above it.\n\nQuick start for developers\n-----\n\nPlugins and themes are just like any other normal Composer package, but with a\nspecial [type](https://getcomposer.org/doc/04-schema.md#type) and a matching\ninstaller requirement in your\n[composer.json](https://getcomposer.org/doc/04-schema.md). The package should be\nnamed after the plugin or the theme too. An example `composer.json` stub would\nlook like the following:\n\n```json\n{\n  \"name\": \"vendor/pfx_pluginname\",\n  \"type\": \"textpattern-plugin\",\n  \"require\": {\n      \"textpattern/installer\" : \"*\"\n  }\n}\n```\n\n### Package types\n\n| Type                   | Description |\n|------------------------|-------------|\n| `textpattern-plugin` | The package contains manifest.json formatted plugin sources. See [an example plugin](https://github.com/gocom/abc_plugin) |\n| `textpattern-plugin-package`| The package contains collection of compiled plugin installer files. Any file that's name matches the format `pfx_pluginname_v0.1.0.txt` will be installed. |\n| `textpattern-admin-theme` | The package is [an admin-side theme](https://docs.textpattern.com/themes/admin-side-themes). See [an example admin-theme](https://github.com/gocom/abc_theme).  |\n| `textpattern-public-theme` | The package is [a front-end theme](https://docs.textpattern.com/themes/front-end-themes) |\n\nInternals\n-----\n\nThe installer works by scanning `composer.json` file's sibling and child\ndirectories for a Textpattern installation. If found, it injects the whole\nTextpattern application to the currently running Composer process. It then\ncollects any plugins and themes from Composer packages and installs them,\ninvoking plugin-lifecycle updaters and installers as needed. This process\ncan be compatible with, and used by, any plugin or a theme.\n\nThe installer doesn't require any extra configuration from the end-user or the\ndeveloper. All it needs is a functional Textpattern installation, located\neither in the same directory as the `composer.json` file or in a child\ndirectory. Just note that the system the Composer command is ran at, needs to\nhave access to the database; take this in mind if you are, for instance, running\nthe composer command outside a virtualized container.\n\nRequirements\n-----\n\n* [Composer](https://getcomposer.org/) 1.x, 2.x\n* [Textpattern CMS](https://textpattern.com/) 4.4.1, 4.5.7, 4.6.x, 4.7.x, 4.8.x\n* [PHP](https://secure.php.net/) \u003e= 5.5.38\n* [PDO](https://secure.php.net/manual/en/book.pdo.php)\n\nDevelopment\n----\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgocom%2Ftextpattern-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgocom%2Ftextpattern-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgocom%2Ftextpattern-installer/lists"}