Recently I was adding a photo gallery page to a Drupal 9 site. When a photo was clicked/tapped, the link was supposed to take you to a larger version of the image. Instead, to my surprise, it gave a “page not found” error.
This is a quick post regarding the sort order of option elements in the Drupal Commerce Add to Cart form as part of Product Reference fields.
I was confused as to how this was sorting. It does not sort by the Product title. It does not sort by the Product entity identifier. On my development site, the options seemed to be sorting by SKU.
There were a couple options to look into:
At times I am confused by behavior in the powerful Rules module. Sometimes Rules data selectors for entities have their fields listed and sometimes they do not. I did not find documentation about this behavior.
So I dug through code…
Concrete example: One of our consulting clients was using a synchronous webservice for their retail store locator. We needed to create a form where store owners could change whether they’re listed in the store locator. When a store owner submits the form, should she have to wait around while our site sends her change to the store locator webservice? We didn’t think so. So we decided to use Drupal’s Queue API, which lets us save up all the store owners’ changes and send them to the webservice in a batch.
Here’s a simple example of adding items to a queue in a form submit handler and processing them in the next cron run.
The Chaos tool suite (ctools) is collection of useful methods intended to help Drupal developers create complex interfaces without duplicating too much effort.
Drupal 7 introduced a new Form API element: Vertical Tabs. When you set a parent element as this Form API type, then any child elements that are of type fieldset are displayed as vertical tabs instead of as in the traditional fieldset. Unfortunately for us developers, the documentation does not provide an example of how to use Vertical Tabs properly, but with some trial and error you can do it.
However, this new Vertical Tab Form API element doesn’t work in modal multistep wizard forms created with ctools.
spl_autoload_register() function has been around since late 2005, yet documentation on it is still pretty sparse.
spl_autoload_register() does basically the same thing as
__autoload(), but – instead of being a callback defined in the global namespace (reminds me of
ON ERROR GOTO in BASIC) – it allows you to add your autoload handler onto the end of a chain of callbacks. Useful if you don’t want to clobber everyone else’s autoload code.
More info here.