Create a node programmatically in Drupal 8

Many of the changes from Drupal 7 to Drupal 8 involve the use of object oriented code. One particular change is to move away from code specific to nodes to writing the code for entities and then overriding or extending it where necessary for nodes. Conceptually, this results in being able to use much of the same code for other entities including custom entities.

Fuzzy autocomplete

For a small number of taxonomy terms, a select box can be used where the choices are explicitly displayed to the user.  But for larger numbers of terms using a select box becomes problematic.  Using a textfield with autocomplete is an obvious option when there are a large number of terms but it can be discarded because it is not robust to variations in spelling.  This post shows how in Drupal 7 a fuzzy autocomplete can be used to increase robustness.

Understanding the node processor plugin for the Feeds module

In Drupal 6, the Feeds module has three types of plugins.  These are the fetcher, parser and the processor plugins.  The processor plugins that are supplied with the Feeds module are for data, nodes, taxonomy and users.  This article looks at the node processor.

If a feed is imported multiple times to allow the information in the feed to update the Drupal site, thre are three options under the node processor settings.  These are

Ordering Drupal hooks and callbacks

A while ago someone was testing me on my Drupal knowledge.  He inquired which hook gets called first, hook_form_alter() or hook_form_FORM_ID_alter().  I was a bit puzzled since nothing in the system api specifies that one is called first and wondered why he was not using other approaches that are in the api.  Hook_form_FORM_ID_alter() he crowed triumphantly.  I thought it strange to rely on the order of calling these two hooks since there is nothing that guarantees that the order will always be the same.  In fact, his claim is only true for Drupal 6.  The order

Automated Webserver Backup

Often the first step in working on a website is downloading the website to your computer so you can work on a local copy.  Websites can be fairly large (especially if they have video files) and these downloads can take some time.  What if the files for the website were already on your computer?  Problems could be fixed a lot faster and if there is a problem with the webserver you have a backup that can be used to restore the website.  This focus of this article is on the files on the webserver.  The database is another topic although the approach discussed could be

Removing MBR on a Mac

Setting up a dual boot Mac and Ubuntu requires using GPT for the Mac and MBR for Ubuntu. rEFIt is commonly used to sync these. The Ubuntu bootloader should be written to the first Ubuntu partition but occasionally it can get written to the MBR. In my case it appeared in both the MBR and the Ubuntu partition rendering Ubuntu unbootable. So how can this be fixed? Start with backing up everything just in case. If you have one hard disk the following is the command to use to remove the bootloader from the MBR:

fdisk -u /dev/disk0

Setting Up Subversion in Xcode 3.0

Using version control during software development allows experimentation without worrying about removing the experimental work when it does not pan out. Apple has gone a long way to integrating Subversion into Xcode but their instructions are oriented more towards groups of developers rather than a stand-alone version control for a single developer. There is a much easier and more secure way to use Subversion.