{"_id":"573ed0c4a233380e005db138","user":"573592b84b0ab120000b7d44","version":{"_id":"5735936aafab441700723a53","__v":12,"project":"5735936aafab441700723a50","createdAt":"2016-05-13T08:42:18.615Z","releaseDate":"2016-05-13T08:42:18.615Z","categories":["5735936aafab441700723a54","5735a32931a73b1700887c94","5735b55beceb872200abbc6c","5735b56eb667601700d3bd6f","5735b9ba4b0ab120000b7dd4","5735b9c94b0ab120000b7dd5","5735cb131f16241700c8a0f7","5735e5c4e4824c3400aa1f21","5735e5d9e4824c3400aa1f23","5735e5f2ec67f6290013ac72","573ecfe0804f901700a9dfc7","573f276c7eeb8b190094ca7d"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":false,"codename":"","version_clean":"1.0.0","version":"1.0"},"project":"5735936aafab441700723a50","__v":7,"parentDoc":null,"category":{"_id":"573ecfe0804f901700a9dfc7","version":"5735936aafab441700723a53","project":"5735936aafab441700723a50","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-05-20T08:50:40.206Z","from_sync":false,"order":5,"slug":"customising-your-ensembl","title":"Next steps"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-05-20T08:54:28.053Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"A plugin only needs to contain those files that it adds/makes changes too.  Any other files required by the Ensembl instance will be obtained from [ensembl-webcode](https://github.com/Ensembl/ensembl-webcode) or from the other plugins that have been loaded.  This means that a basic plugin could contain a single file but still add/alter functionality. \\n\\nTo be loaded by [easy mirror](https://github.com/lepbase/easy-mirror), the only requirement is that any newly created plugin must be in an accessible ``git`` repository (e.g. hosted on [github](http://github.com) or [bitbucket](http://bitbucket.org)) and that repository must be added to the [[REPOSITORIES]](doc:repositories) stanza of ``setup.ini``.\",\n  \"title\": \"Plugin requirements\"\n}\n[/block]\nTo create a new plugin simply create a ``git`` repository with a new version of the file(s) you would like to alter, preserving the directory structure.  \n\nTo modify the links at the bottom of the home page, for example, the relevant file (for an Ensembl Genomes based site) is [eg-web-common](https://github.com/EnsemblGenomes/eg-web-common)``/modules/EnsEMBL/Web/Document/Element/FooterLinks.pm``.  \n\nSo add a new ``FooterLinks.pm`` file (with appropriate edits) to a ``modules/EnsEMBL/Web/Document/Element/`` directory in your ``git`` repository, ``commit`` and ``push`` the changes.  Add your repository details to the [[REPOSITORIES]](doc:repositories) stanza of ``setup.ini`` and your new repository will be included next time you run [Step 4.1: Update Ensembl webcode](doc:step-41-update-ensembl-webcode) and the changes will be visible on your Ensembl site after you have re-run [Step 4.2: Reload Ensembl website](doc:step-42-reload-ensembl-website).","excerpt":"","slug":"creating-a-plugin","type":"basic","title":"Creating a plugin"}
[block:callout] { "type": "info", "body": "A plugin only needs to contain those files that it adds/makes changes too. Any other files required by the Ensembl instance will be obtained from [ensembl-webcode](https://github.com/Ensembl/ensembl-webcode) or from the other plugins that have been loaded. This means that a basic plugin could contain a single file but still add/alter functionality. \n\nTo be loaded by [easy mirror](https://github.com/lepbase/easy-mirror), the only requirement is that any newly created plugin must be in an accessible ``git`` repository (e.g. hosted on [github](http://github.com) or [bitbucket](http://bitbucket.org)) and that repository must be added to the [[REPOSITORIES]](doc:repositories) stanza of ``setup.ini``.", "title": "Plugin requirements" } [/block] To create a new plugin simply create a ``git`` repository with a new version of the file(s) you would like to alter, preserving the directory structure. To modify the links at the bottom of the home page, for example, the relevant file (for an Ensembl Genomes based site) is [eg-web-common](https://github.com/EnsemblGenomes/eg-web-common)``/modules/EnsEMBL/Web/Document/Element/FooterLinks.pm``. So add a new ``FooterLinks.pm`` file (with appropriate edits) to a ``modules/EnsEMBL/Web/Document/Element/`` directory in your ``git`` repository, ``commit`` and ``push`` the changes. Add your repository details to the [[REPOSITORIES]](doc:repositories) stanza of ``setup.ini`` and your new repository will be included next time you run [Step 4.1: Update Ensembl webcode](doc:step-41-update-ensembl-webcode) and the changes will be visible on your Ensembl site after you have re-run [Step 4.2: Reload Ensembl website](doc:step-42-reload-ensembl-website).