Latest blog entries

A look at the splat operator (...)

Today we are going to look at something that's been missing from PHP for far too long - the ... token, a.k.a. splat operator. The splat operator helps us to convert an array of values to function's arguments.

Let's create a simple class with a method that takes three arguments:

User Experience in organization's internal systems

When I started this blog a few months ago, I've hinted at one topic that I haven't touched yet - the importance of User Experience for Enterprise Resource Planning, Intranet and other intra-organizational systems.

Drupal 7: Setting title module field programmatically

Hello and welcome back to Drupal Tips and Tricks. Today we will be looking at the Title module in combination with Entity Translation and we will be trying to change the value of the title field programmatically.

Title module replaces the title property on an entity with a field that can hold different language values. Unfortunately, this isn't as simple as it sounds, because the core title property is defined and used by the core directly in the node table.

A quick introduction to Drupal Entities

Drupal has always been known for its immense flexibility and exceptional adaptability. The CCK module's field system was a large step in the flexibility direction, but it had its limits. The fields were only really usable on content types (read: nodes), leading to additional modules which extended profiles, provided forms, a shopping cart, forums and more. But in Drupal 7, a new unified API, the entity system, was introduced that aimed to unify the various elements of the site - and it changed everything.

Undefined index: field in field_widget_field()

A few days ago, my colleague was building a custom form in Drupal 7. Everything was going great until he added a file field, at which point all hell broke loose. The data didn't submit and he received these notices:

Notice: Undefined index: field in field_widget_field() (Row 578 of ...)
Notice: Undefined index: instance in field_widget_instance() (Row 603 of ....)

Since the field was using a custom widget, we were first debugging there, until we finally found the real culprit somewhere completely else: passing by reference.

A new design, now with a blog

These last few years have lead to great many new adventures, experiences and revelations, both professionally and personally. For the past year or so, this website has been left almost unattended, as I was trying to figure out what to do with it. Now a team leader of web development at an international trading company, I was no longer seeking work as a freelancer, so most of its original purpose was gone.