Objective evidence and certitude are doubtless very fine ideals to play with, but where on this moonlit and dream-visited planet are they found?
Provides some configuration only for use in the WetKit automated tests. This is provided as a separate module (rather than part of the main WetKit profile) to facilitate better abstraction.
Provides some configuration only for use in the WetKit automated tests. This is provided as a seperate module (rather than part of the main WetKit profile) to facilitate better abstraction.
This module provides bitlinks for nodes so that it can be used for social media sharing. The node bitlink is available in node template.Features
- Creates node bitlink on node creation.
- Updates node bitlink on node updation.
- Deletes node bitlink on node deletion.
- Bitlink can be accessible using $node->bitlink in node template.
- Bitlink is created while viewing a node if it does not exist already.
- Zero configuration.
- This module is created while working on PreviousNext project.
Bitlinks are better bookmarks
Save, search, and organize all your Bitlinks from around the web. Group them into bundles. Share them with friends. If you don't want them on your public profile, just mark them as private.
A Drush script that replaces not required file types with symbolic links to dummy files to prevent staging sites to consume lots of disk space after full sync from production.
The input is the directory of the dummy files, the output is the amount of disk space saved.
A possible content of the input directory:
sample.avi sample.doc sample.docx sample.mp3 sample.mp4 sample.ods sample.odt sample.pdf sample.wav sample.xls sample.xlsx sample.zip
This module allows site owners/administrators to comment (internally) on webform submissions and assign a status (pending or completed) to a submission.
This depends on the Webform module.
Since Twig autoescape is on, there are double escape bugs. If you can fix them by refactoring code into Twig templates, that's great. If not then wait for an easy way to create HTML on the fly without having to create a theme function / template. It's already RTBC, it's a matter of days to find its way in. Regarding SafeMarkup::set calls, there is an issue to refactor and remove the ones we needed to add to get tests pass and so adding more is not acceptable (the reason for writing this announcement are the quick fix issues I need to whack trying to fix double escape by adding more of these).
After writing my first Drupal 8 contrib module I have a new appreciation. Let me try to explain. It is certainly possible to write a letter on an empty sheet of paper but achieving tidy results is quite a lot easier if it's a lined sheet. In Drupal 7, the code flow in general is calling a function, getting an array, manipulating the array and passing it to another function. Pretty much anything goes. In Drupal 8, you are handed an object and the object has methods. Instead of trying to figure out which possible function are you continuing with, it is one of the methods. When passing on data, the receiving method (hopefully) has a helpful type hint which tells you what to pass in. Often even the argument name will be helpful too.
It's exactly like having a lined paper: you still need to know how to produce legible handwriting but at least you have a guide. Another apt metaphor is lining up shapes in a drawing program. Yes, it's possible by hand and there's more freedom doing it but for most it's easier to just use the snap to grid feature.
This blog post was inspired by ConfigDevelAutoImportSubscriber having a $this->configManager object. That I need a config manager I have copied from a core file doing similar things. So, I wanted to create an entity -- I already know doing that requires calling the create method of the relevant storage controller. But how do you get one? Well, ConfigManagerInterface only has 10 methods and only 1 looks even remotely relevant: getEntityManager. So now I have a EntityManagerInterface object. Look, a getStorage method.
$entity_type_id = $this->configManager->getEntityTypeIdByName($config_name);
$entity_storage = $this->configManager->getEntityManager()->getStorage($entity_type_id);
$entity = $entity_storage->create($data);
We could call this "autocomplete driven development" cos the autocomplete in your IDE pretty much drives you forward. Oh yeah: trying to develope D8 without an IDE is not something I'd recommend.