unModified()

Break stuff. Now.

Developer Tunnel Vision

You won't believe it until someone points it out

December 6, 2019

Earlier today, I had this really embarassing moment where two other developers, at separate times of the day, point out a really silly mistake I made. I was building a configurable three-column layout in Drupal. For that to happen, I had to implement a configuration class that supplied a <select> containing sizing options.

The relevant part of the implementation looked like this:

$form['column_distribution'] = [
  '#type' => 'select',
  '#title' => $this->t('Column Distribution'),
  '#description' => $this->t('Determines the width of each column.'),
  '#default_value' => $configuration['column_distribution'],
  '#options' => [
    '0' => $this->t('33% 33% 33%'),
    '1' => $this->t('25% 75% 25%'),
    '2' => $this->t('75% 25% 25%'),
    '3' => $this->t('25% 25% 75%'),
  ],
];

See what I did wrong? I didn't.

33% 33% 33% = 100% // ✔, rounded off btw.
25% 75% 25% = 100% // 😂
75% 25% 25% = 100% // 🤣
25% 25% 75% = 100% // 😒

Third time's the charm!

The error wasn't serious. The actual rendering of the columns, handled somewhere else in the code, was correctly implemented. Only this piece, the selection labels - something that is only ever shown to the user configuring the layout, was "broken". But I never noticed the mistake, and it took two developers to point it out to me.

Good thing we have mandatory code reviews. 😅