+++ title = "When There's Not a Module For That" outputs = ["Reveal"] +++ # When There's Not a Module For That ###### [mid.camp/6337](https://mid.camp/6337) Agaric {{% note %}} mid-air camp {{% /note %}} --- ###### Presented by **Benjamin Melançon** & **Mauricio Dinarte** ###### AKA **[mlncn](https://agaric.coop/mlncn)** & **[dinarcon](https://agaric.coop/dinarcon)** --- ### Together, ## We are #### ⅓ #### of --- Agaric **ask@agaric.coop** --- Agaric {{% note %}} mid-air camp {{% /note %}} --- > When building a Drupal site, “there’s a module for that” can be the sweetest words you can hear. {{% note %}} {{% /note %}} --- ![Regular node add form with Save button](images/create-frankenstein-unmodified.png) {{% note %}} Say you're creating a site where people can relive great literature that may have been inspired by a global pandemic. {{% /note %}} --- `frankenstein.info.yml` ```yaml name: Frankenstein type: module description: "Rename save button for Frankenstein's content." core: 8.x|9.x ```   `frankenstein.module` ```php =8.4) ``` {{% note %}} {{% /note %}} --- ### How to develop while sharing the same code you're using Your module `composer.json`: ```json { "name": "drupal/cyborgtranslate", "description": "Trigger Google translate and Drupal interface translation at the same time, allowing sections of your site's localization to be done by humans and the rest by machines.", "keywords": ["drupal", "translation", "multilingual", "localization", "google translate"], "type": "drupal-module", "license": "GPL-2.0+", "homepage": "https://www.drupal.org/project/cyborgtranslate", "minimum-stability": "dev", "support": { "issues": "https://www.drupal.org/project/issues/cyborgtranslate", "source": "https://gitlab.com/agaric/drupal/cyborgtranslate/tree/8.x-1.x" } } ``` {{% note %}} Composer makes a lot of stuff seem more complicated, but it makes it easier to contribute. Trust me... this will only be three screens of gibberish. {{% /note %}} --- Your project root `composer.json`: ```json { "require": { "drupal/core": "^8.8.0", "drupal/cyborgtranslate": "dev-8.x-1.x as 1.x-dev", "drush/drush": "^9.0" }, "repositories": { "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" }, "drupal/cyborgtranslate": { "type": "git", "url": "git@gitlab.com:agaric/drupal/cyborgtranslate.git" } } } ``` --- {{% note %}} {{% /note %}} --- ![Little rabbit in big grass](images/little-rabbit-in-big-grass.jpg) [MID.CAMP/6337](https://mid.camp/6337) · ASK@AGARIC.COOP {{% note %}} It's a big wild world out there. Bite off a piece you can chew. Links for all of this and more on the session page. {{% /note %}}