WordPress to Drupal : First steps

 

I plan to use Drupal to re-organize this large blog: flowingmotion.jojordan.org.  This post lists the beginning steps.  Each step is quite large and if you are completely new to web development, you will need to look up and complete each step as a mini-project.

  1. Make a development environment on my laptop.  Set up WAMP.
  2. Set up Drush so that I download Drupal and its modules more easily.
  3. Set up a clean database in WAMP / PHPMyAdmin.
  4. Download the latest version of Drupal 7 and unpack it into folder in c:/wamp/www/myblog
  5. Go to my browser and install Drupal: “localhost/myblog”
  6. Use the command line to use Drush : “cd c:/wamp/www/myblog”
  7. Use Drush to download and enable the modules for “pretty url”
    1. drush dl token pathauto
    2. drush en -y token pathauto
  8. Chose a theme and use Drush to download/upload it.  I used Stanford’s Open Framework and downloaded it manually to /myblog/sites/all/themes.
  9. Logged in, set the time to UK and set up the date format.
  10. Under Appearance, set the Open Framework to the default
  11. Use Drush to install the modules needed for WordPress_Migrate (see above for the commands): migrate ctools features  media media_youtube migrate_extras
  12.  As of today’s date though this will change, do not download WordPress_migrate with drush. Go to its webpage and install the latest development version
  13. Go to Add Content and select Migrate. Look for the Worpress link
  14. Follow the instructions – all of the them!
  15. I  tried to retained my WordPress urls but that did not work and the aliases are borked too.  As it was not straightforward finding this workflow, I will leave this for now and worry about sorting my comment.

These are the basic steps for importing WordPress content into Drupal. It is not perfect but as this is a one off import, it is satisfactory.

WordPress to Drupal

Here begins my migration from WordPress to Drupal.

Why move from WordPress to Drupal?

I don’t advise anyone to move from WordPress to Drupal unless they have a strong reason.  WordPress is friendly and you will be functional and confident in few months.

Drupal is overly complicated, bloated and very badly documented.

So why move to Drupal?

Drupal is designed for complicated sites.  The Views facility, that is, it’s query function is very powerful.

This blog, Flowingmotion.jojordan.org has grown very big.  I don’t even remember everything i have written.   And I would like to find out.  I would like to delete what is no longer of any use. I would like to organize what is still valuable. And I would like to rewrite what could benefit from rewriting.]

The benefits of migrating from WordPress to Drupal

I intend to download the content of this WordPress blog onto a development site on my laptop and reorganize its content.

I will use a Drupal module to do a rough-and-ready migration.   Then I will start allocating posts to “Books”.   That is, I will set up a “Book” and cross-reference them to existing posts.  Once I have done that, I will be able to make a plan for each Book or collection.

I have also chosen a simple base them to think ahead to a “responsive” theme. I want people to be able to read my “Books” on their mobiles. When I rewrite the posts, I will take the smaller screen estate into account and chunk and structure the posts so that people can follow a complicated idea more easily.

A simple ‘to do’ list for Drupal 7 using Date & Calendar

This post describes a very simple ‘to do’ list that I made in a Drupal 7 website.

The website already had a Calendar and Date function.  I can add a Date, and all its details, which is recorded as a node of content-type Date and displayed on a Calendar View.

Already installed and enabled : Drupal 7, Token, Pathauto, CTools, Views and Views UI, Date, Calendar, Computed Field

To add items and to put them on and off the ‘to do’ list

To make this simple to do list, I decided –

  1. To add the things I want ‘to do’as a Date and, if they have no date, I record an arbitrary start date – say the end of the quarter or the end of the half.
  2. When I want to move an item to my active ‘to do’ list, I simply edit the item and change the start date to today or if it on this week’s list, to Monday.
  3. When I have finished the task, I edit the item again to reflect the finish date.
  4. As I will describe below, an odd feature of the filter’s in Views required an extra Boolean filed so I check a box when the task is complete.

Permanent record

With this simple set up, I have a permanent record, in one place, of all my projects that are pending, and of all my projects in the past with the dates when I started them and finished them

Adding focus

To keep me thoroughly focused, I made two taxonomies – one for work and one for leisure. Both of these were added to Date so that later I can retrieve work and leisure activities into separate Views.

Additional information

As I have both start and end information, I added another field to Date to calculate the Elapsed Time between the date I started and ended a project. There is code available on the internet and I repeat it here.  Simply, we retrieve the entity values for the two times, make DateObjects with the values, and then choose our granuality (‘days’).

I also added another field to Date, Days in Queue, and added similar code to calculate the time between the day the Date was added and the start date.

To display my ‘to do’ list

To display my current ‘to do’ list, I made a View in a Block, in table format, and display the taxonomy tag and Date title

I also added two filters. First, using a Relative filter, I selected Dates with a start date equal or larger than now.  Second, I searched on the Complete check box.  It is important to manually put in 1 and 0 as the default values when you set up the field initially, otherwise they will filter will not work in the View. The reason that I added what seems to be a superfluous checkbox is that the default finish date for a new task is not NULL, as one might expect, but the start date. The only way to select tasks that have been started and not finished is to add the extra box.

As I have made a Block, I can put the Block in a side bar.

Note also that we can tell the Block View to order the items in the order of the Taxonomy.  So when you set up the Taxonomy, ensure you put the tags for work into the order of your daily routine.

Note also that I did try using Editable Views but firstly, it did not work out of preview, and secondly, the preview showed a massive date edit screen that would not be user friendly.  So to record a project as finished, I follow the link and edit the Date and check the complete box.

To set up my ‘to do’ list

To review my pending list of items in the queue, I made another View, this time as a page. This time I use all four fields – Date, title, Elapsed Time, Days in Queue – in a table.

I can also filter by taxonomy.

Here I can pick my items, follow their link and change the start date to today or Monday.

To review what I have achieved

For those days when I have been buried in a task and feel that I have achieved nothing, I have an ordinary View of all four fields – Date, title, Elapsed Time, Days in Queue – in a table. This time, I have two exposed filters.  The first is headed, ‘Finish on or after’ and the second is headed, ‘Finished before’.

By setting my time range, I can immediately see what I have finished during the period in question.

Leisure

I can repeat the entire setup for leisure items.

Features to be developed

My next tasks will be to track my Elapsed Time and Days in Queue, particularly for work items.

To understand my own planning behaviour better, I will group all my Dates by week and count the number of items inserted and the number of items that are finished. Now I will have the basic information to understand my queue – how fast am I adding things and how fast am I finishing things.  Ideally, I’ll plot these numbers on a graph.

To understand the chunking of my tasks, I’ll group them again by week and calculate the minimum, average and maximum Elapsed Time.   Hopefully, both the spread of times and the average time will decrease below 5 days – meaning, I have designed tasks that can be finished within a week.

And I will calculate the minimum, average and maximum Elapsed Time and Days in Queue for a moving period of quarters, halves and years so that I can be aware of how long I take to complete something I have decided to do and how my behaviour changes in time.

Summary

There it is.  A simply backlog manager.  Add Dates to a Calendar.  Use Computed Fields to monitor both the Elapsed Time and the Days in Queue. Use a check box to show a task is complete because filtering by a blank end date does not work.  And add two taxonomies so that you can split your lists and display tasks in order.

How to make a Slideshow in Drupal 7

How to make a slideshow in Drupal

The concept behind a slideshow

A slideshow in Drupal is actually a View.   A View is a query that will search through your pile of nodes, pick out any that match the criteria you set, and display them in a format you set.  Slideshow simply extends Views to layout your content in a slideshow with our without a carousel.

This post will describe how to get the slideshow working without a carousel.

Before you start

Before you start, you will obviously need a working Drupal website with some content, such as a collection of images.  You can also use a slideshow to display ordinary posts as I do on the front page of Rooi.  We will use images here because that is the more common use.

Additionally, you need to have View downloaded and enabled and you will also have to enable its sub-module View_UI.

You also need to know, at least roughly what the following mean:

  • Page and block
  • Content-type, node and field

Modules & Plugin

To set up Slideshow, you will need the modules: Libraries, Views _Slideshow, Views_Slideshow_JCarousel and Libraries.  When you enable Views Slideshow, also enable Views_Slideshow_Cycle.

Additionally, you will need the jCycle plugin which you download from https://github.com/malsup/cycle (get the .zip file on the right).

Unpack the file into your Libraries folder. If you don’t have a Libraries folder, make one under /sites/all/.  Rename the folder that the .zip file creates as jquery.cycle.

Make a View Slideshow

You will recall that to make a View, you go to Structure/Views and make a new view.

Screen 1

  1. Add a name and a description
  2. Choose your content.   Notice that everything on the list is a content-type. If you have a separate content-type for images, choose it. Otherwise choose a content-type that has a field for images. The default content-type Article has a default field for images and I chose Article.
  3. Decide whether you want to display your slideshow on a page or a block.
  4. If you chose page, check the path.
  5. At format, choose slideshow.
  6. Set the number of images to show before pagination kicks in.
  7. Decide whether you want a direct link to show on a menu.
  8. Continue & edit but beware, your work has not been saved at this point.

Screen 2

  1. The second screen has a baffling array of controls.  Look over them carefully and ignore Advanced Options in column three for the moment.
  2. The middle column controls the path, the links to menus, the permissions, and pagination.
  3. Most of the controls that you want for a slideshow are in column one.
  4. Starting at the top, you see Display Name and Title. Display name is the name used to when Views are listed. Title is the name displayed as part of the view – that is, above the slide show.  So make sure the Display Name speaks to administrators and developers and Title speaks to users and visitors.
  5. The next four blocks cover FORMAT, FIELDS, FILTER CRITERIA and SORT CRITERIA.
  6. Starting from the bottom — as those are easiest to understand – Sort Criteria telsl you the order in which slides will be displayed.  If you want to change the order, this will be the block where you will find the controls.
  7. Filter Criteria is also fairly self-explanatory:  with the default settings, the slideshow will only display published content that is an Article.
  8. The FIELDS block, if you followed the instructions for Screen 1, will be blank.
  9. FORMAT refers in the first line to Slideshow|Settings and Content|Teaser.  We will begin with Content and you will see that varying the Content changes your Field options in the Fields block below.
  10. Click on Content and choose Fields.  Now you see Content:Title come up below.  You can also Add a field.
  11. Add a field and you will see many choices.  Think a little – you are looking for Content: Image.  Add that, and it will come up in the Fields block.

Inspect Preview

Scroll down to the bottom of your screen.  You should see a slideshow of all the images that you have uploaded into Articles with the title of the Article above the Image.

Save and go to the menu where you linked the slideshow or type in the url to see your work on your website.

Advanced Option

You might also note that you are also seeing the title to every Article, whether it contains an Image or not.

To add a another Filter to choose only the Articles that contain an image, you can look first at the list of Filters.  I don’t think we will find a suitable filter because we are displaying nodes of content-type Article and we want a logic that would go something like “contains an image” rather than “is an image”. But look anyway.

(Remember to edit a View, go to Structure/Views.)

I went instead to Advanced Options and chose the Relationships. On that list I could find Content:Image (field). I added it and checked required.

Now my slideshow only contains Articles which contain an image.  And it is cycling nicely.  Save if you wish.

Slideshow Settings

What if I want to speed up my slideshow or add previous and next buttons?

Go back to the View and go to Slideshow | Settings in column one.  (Btw, if you have not downloaded jcycle correctly, on the following screen you will get a big warning message in red. So if something is not running correctly and you want to eliminate jcycle as being the cause look here.)

To get some basic settings, scroll down to the bottom and check the options under Bottom of the page.  Be patient as when you check the options, more options are revealed.

Oddly, the controls aren’t working as I expected them to.  I checked all three and checked the option to stop when hovering.  Only the counter is showing at the bottom for me.

Summary

So far, we have downloaded the correct modules and plugin and set up the basic slideshow view.

You know how to reveal fields and to add fields.  You know how to filter on the content-type (column 1) and on the fields (under Relationships in column three).  And you know where to find the settings to control the slide show.

You can also decide where your slideshow will go on you site – onto a page or block and if it is page, attached to a menu or not.

The next post will describe how to get the carousel working.

 

 

 

 

 

How to install WYSIWYG and CKEditor on Drupal 7

To install WYSIWYG successfully, it is helpful to understand that works at three levels: text filters, WYSIWYG and Editor.

Text filters

Drupal 7 arrives with pre-installed text filters.  If you have a fresh install (and even if you don’t), got to the admin bar at the top of screen and select Configuration.  On the left hand side, close to the top, you will see Text Filters.  Have a look at these.  You will see Filtered HTML, Full HTML and Plain Text.

The filters give you control over three things:

1.  Who can use Full HTML, or Filtered HTML and who must use plain text.

When you are new to Drupal, leave everything on default.  You can see that with the default settings only administrators can use Full HTML.  Later on, you might want to limit anonymous users to plain text as Drupal attracts spam.

2. Which Filter is used by default

Also, note that Filtered HTML is at the top. That means that is acts as the default, even for administrators. If changing the filter manually becomes annoying when you need Full HTML, change the order.  You can change the order back again later, if you wish.

3.  The exact functions of the filter and the order in which they work

As a general rule, do not play with the settings. There are several of them and when you fiddle, you are fiddling with relationships to the underlying code and to the effect of combinations of settings.  When in doubt, don’t touch!

There are three settings that you will probably want to change though.

  1. When you add the Media module, you must check the box for “Convert Media tags to markup” (and Save).  The Media module will remind you if you forget. You must check this box in both Filtered and Full HTML.
  2. When you add the WYWIWYG module, you are recommended to uncheck “Convert line breaks into HTML (i.e. <br> and <p>)”.  Uncheck this box in both Filtered and Full HTML.
  3. Additionally, when you add the WYSIWYG module, go to “Limit allowed HTML tags” under Filter Settings near the bottom of the page, and add <p> and <br>.  You only need to add these tags in Filtered HTML.

Text Filters is the first level of setting up WYSIWYG.

WYSIWYG module

You can install and enable the WYSIWYG module in the usual ways.

  • Either, use drush (drush dl wysiwyg) and (drush en –y wysiwyg)
  • Or, go to the admin bar/modules and insert the url that you retrieved from the WYSIWYG page. When prompted, enable the module.

WSYIWYG should now show up on the Configuration page under Text Filters. If it does not, then clear your caches.

  • Either, use drush (drush cc, followed by 1 when prompted)
  • Or, go to the admin bar/configuration and performance where you can clear all caches.

Go to WYSIWYG at the Configuration page and you will see the three Text Filters you saw in the first stage above, with a drop-down box that says “No Editor”.

Your next task, is to go to the “third level” and install an editor. Then we will configure a combination of WYSYWYG and the editor you have installed.

CKEditor

Drupal will prompt you with a list of editors and highlight one in particular, CKEditor, in pink.  CKEditor is very well established but I must begin with two warnings.

  • Do not install the CKEditor for Drupal.  Install the normal CKEditor.
  • Do not install the most recent CK Editor, because Drupal/WYSIWYG will insist that it cannot see it.   You can install the latest development version of WYSIWYG (by downloading it manually into the WYSIWYG folder), but it does not play nicely with DRUPAL and destroys the Edit layout and does not render a tool bar.  Install an older version, say 3.5.
  • Do not fuss about all the instructions about where to put the CKEditor. Download the zip file and unzip it into /www/yourwesbite/sites/all/libraries. If this is the first library that you are installing, then you must create the library folder.  CKEditor will unpack itself neatly.

Once you have an (old) version of CKEditor, when you go to WYSIWYG on the configuration page, you should now see CKEditor in the drop-down box where you once saw No Editor. If it doesn’t show up, try cleaning your caches before you panic.

Now you can configure your WYSIWYG/CKEditor.  You only have one task to do but you must do it for Filtered HTML and Full HTML. And remember to save each time.

Click on Configure and go to Buttons and Plugins. Check all the buttons that you want on your tool bar. Be mean, rather than extravagant but remember to check “HTML Block Format” which give you a drop down list for headers and “Media Browser” if you are going to add the Media Module (near the bottom).  This may feel like a tedious chore, but enjoy – when you are done with this you will have working WYSIWYG.

Summary

WYSIWYG requires you to think at three levels.

  1. Set up your text filters and prepare for the addition of WYSIWYG and Media as I described in the first section above.
  2. Install WYSIWYG and go to the configuration page where you are prompted to get an editor.
  3. Get an old version of CKEditor and set up the buttons for your tool bar with the configure button.

 

 

 

Add a Save button to the top of a Drupal post

One of the annoying features of Drupal 7 is that its submit button is below the fold.

Inevitably when we are writing a long post, we become distracted at some point and posts are left unsaved.  Without an automatic save feature, it is equally inevitable that posts are lost.

To make life a little easier, it is cool to put a Save button at the top of the Add Content form. And it is easy to do.

  1. Install and enable the module Content Type Extras
  2. Go to the list of Modules and Configure Content Type Extras
  3. The Module allows for all manner of extra buttons that I don’t use. I will just forget what they all do.
  4. I go to Extras and check two boxes to add a Save button to the top of each Content Type.
  5. Save and buttons appear whenever you add  a new Article, Book page, etc.

Now you have saved yourself a needless task of scrolling down to find the Save button and given yourself a prompt to Save when you are distracted.

How to remove hundreds of spam comments from a Drupal site

Suffered a spam attack on your Drupal site?  You are in good company. Even with Mollom installed, your site can be overrun faster than a dog with fleas.

To get rid of the thousands and thousands of spam comments, you have two choices.

Either, delete the comments from your MySQL database

To delete spam directly at your MySQL database, you will have to log in to your hosting service.  Then use phpAdmin to find the right table.  And truncate the table to clear out all the comments.

I haven’t tried this but proceed logically and it should work.

Or, delete comments from your front end using a View

  1. Install two modules: Entity API and Views Bulk Operations
  2. Clear your cache
  3. Make a new View at Structure/Views/ and use Comments as your content
  4. Leave the format as Unformatted and set the number of comments as 500 — check the pager
  5. Continue & Edit
  6. Change Content to Fields
  7. Add a Field for Bulk Operations: Comment and set the value as Delete
  8. Remove the filters unless you want them
  9. Save
  10. Go to the View (e.g., http:/yourwebsite.name/spam-control or whatever you called your view)
  11. Start deleting

You need two clicks at the top and you must confirm the list.  It takes a little time and it is probably quicker to delete the table but this was more satisfying and can remain in the background to clean up smaller spam attacks in future.

How to migrate your Drupal site in 3 steps

Migrate your Drupal site in 3 steps

You have a Drupal site on your WAMP, on your computer or you have it on one hosting service, and you want to move it to another.

Will this be hard?

In this post, I will describe the concepts of moving your site.  I’ll also tell you how to connect to a remote hosting service so you are not driven made by your FTP disconnecting on you.

Understand what you are doing

A website is made up of three parts:

  • The content management system, such as WordPress or Drupal.
  • The underlying MySQL database
  • And some code pointing one to the other.

 

  1. You need to move across all the files of the content management system (CMS) (WordPress or Drupal) from your old service to your new service.
  2. You need to create a clean MySQL database on your new hosting service and transfer across the contents of your MySQL database from your old service.
  3. You must point the CMS to the database (Note WP users – I think you have to point your database to the CMS – so look out for that).

Get the software to manage the interhost transfers

You need software to move the CMS and MySQL around. You can use an FTP like Filezilla to transfer your CMS – but it will take forever.

Rather download Putty and it extra functions and use psftp to transfer the files.  I’ll come back to this later.

If your MySQL database is not too big, you can use PHPAdmin to download and upload at both ends.

Let the internet know what you are doing

You also must make sure that your DNS are pointing to the new site.  What this means is that you must know the DNS of the new hosting service and you must go to the place that manages your domain name and put in the DNS numbers.

It usually takes 4 hours to propagate and for re-direction to take place.

Step 1:  Move your content management system

If you are moving from WAMP or a local server on your own computer, go to www, find your website, and zip up everything – everything – in the folder.

Establish that your hosting service allows you to use ssh access and psftp. If they don’t allow you, move!  And, ask the next service whether they give your free ssh access before you join.

Once you have established ssh access, then you will need to do three things:

  • Get your host’s address which will take the form of servername.hostname.com.  Find out what it is and write it down.
  • Note your ssh username and password. These will be different to the ones that you use to log in to the commercial side of your host and to your website. They will also be different to the one’s you use for the MySQL database.
  • Get Putty and psftp onto your machine.  Put them in a folder such as c:/tools and run them from there. Make your life easier by moving the .zip file that you made above into the same folder.

To use psftp, simply click on it, give it your host’s address and supply your username and password when asked. The password gives no indication it is receiving your input. Don’t panic. Just be careful.

When you are “in”, use ls to list what is in your directory. If you are in the right place, upload your file by typing “put c:/tools/yourfilename.zip”.  Let psftp run. It takes time but at least you won’t be timed out as you will be in Filezilla.

When psftp is done, you will get the cursor back > and your unzip your file with a simple “unzip yourfilename.zip”.

Another hint: if your website is called mywebsite.com, call your zip file mywebsite.com.zip so that it opens neatly into a folder called mywebsite.com. Otherwise, remember to rename your folder with your domain name.

Your content management files are now ready and waiting but they won’t work yet because you have no database.

Step 2:  Move across your database

The first thing to do now is to go to your new hosting service and figure out how to set up a clean MySQL database.

Note carefully the name that it is given, the username, and the password.

Also, hunt around for Drupal installation instructions. Specifically, you want to know what you must call your host.  I have one hosting service that uses “local host” and one that requires something like “mysql.websitename.com”.  Find out and write it down.

Then go to your old hosting service and use PHPAdmin to export your database.  This is a three step task.  A) Find the database.  B) Export . C) Set the name and the compression type. D) Go.

But there are TWO complications. First, you are given a choice of format. And some hosting services accept some formats and some others.  The easiest way to find out is probably to make a mistake.  So export. And when you find you need another format when you are importing, then start again!

The second complication is that the export procedure may add a CREATE database command that will trip the import.  You can edit this command out of hand but there is a way to avoid the hassle.

When you export, there are two procedures.  If you select Databases from the horizontal menu, a box comes up which lists all the databases and you choose one.  This method puts in the unwanted CREATE command.

If you choose your database on the extreme left, all its contents are listed. Then choose Export and select all the tables. This procedure does NOT insert the unwanted CREATE command.

Now you have a MySQL file (in the right or wrong format – you will discover soon), got to your new hosting service, find the PHPAdmin, select your clean, new database and IMPORT the MySQL database. Wait a little while and you are done.

For clarity, you DO NOT NEED to reconcile the database names, and usernames on the two computers. That is coming next. For moving the database, you can call yourself Charlie on one and Mary on the other. That is no problem.

Step 3: Point you CMS at your database

As a last step, you need to edit your settings.php file which is under sites/all/default.

This is a read only file – so your first step is to give yourself access.

Then scroll down the file until you see the database name, username, MySQL password and host name that you used on your old system.  Change these to the database name, username, MySQL password and hostname for the new system.

Note these are not the names you use to log on to your website. They are the MySQL names that you set up in Step 1.

Hint: if you are working on your own computer, make the changes before you zip up the content management files and go back later to reset them for your local copy.

If you are moving from one remote service to another, you will have to change the settings.php file more laboriously. In Putty or Filezilla, change the permissions to 777. Edit the file. Save. Change the permissions back to 444.  This took me ages. So be prepared to be patient.

Test your site

With these three steps – transfer your CMS, transfer your database, fix your settings.php – your website should run on your new site.

If you have not pointed your domain name to the DNS, you need to do that now.  The order that you do this in is tricky as you can only see your site at the old server or the new one, not both, though you might get a temporary address from your new hosting service.

If you have been careful, the move should have gone uneventfully, so point the domain to the new hosting service and wait four hours to see the result.

The 2 reasons I have come to work extensively with Drupal

My quest

A few months ago, I was looking for a good way to help my customers keep track of some technical reports – you know those reports with long dry titles with multi-syllabic words.

Surely there was an easy way to present a customer with a few lists – you have seen this already, take a look at this, this is new and might interest you.

My journey

I started off looking at social media software and then I looked at some e-learning software.  And then . . . Drupal.

In all honesty, you don’t want to discover Drupal.  It is a time-sink of note. People politely refer to it as having a “steep learning curve”. Translate: the documentation sucks.

But, here we are with Drupal.

What does Drupal have that is so fascinating?

  • Firstly, Drupal is open source. It has a huge community of people who work on it and contribute modules.
  • Secondly, Drupal is modular.  You are limited only by your imagination (and of course the underlying code which – stomach turning to say – is poorly documented).

But these are both limitations really. They account for the time-sink.

What drew me to Drupal were two features:

  • First, its Search. I can Search through the inside of all my files as easily as using a Google search script.
  • Second, its Outlining.

Let me spell both features out a little more.

Search in Drupal

Think of working on a long project.  I open up a Word document and half-way through, I get called away. I save a draft.  When I come back to the project I look for the draft in Windows Explorer.

Oh, it sounds simple. The reality is different. I always seem to have half-finished drafts that I have half-forgotten about.

Now I try to find what I want. Yes, I can search by Folder and Date and File Type.  Yes, I can search by Title (slowly).  Yes, I could use tags and Google search.  But I’ve abandoned these over the years as not being particularly effective at keeping me organised.

Drupal files everything in one place

Filing and search in Drupal is so much easier.  Everything I write, no matter what it is about, goes into one folder, organised by Date.  Most content has tags similar to a blog post.

Drupal can search inside your files

When I am looking for material, I can still search by the date, the title, and the tags.  But Drupal will search inside my files too.  (Well actually, as long as they are more than three hours old as the cron job is set to run every three hours).

The advantages of Drupal is that I don’t have to move content into folders and when I want to find something, I have a powerful search function.

Outlining in Drupal

But, what if I want to group my files in a folder?

Well, you are not going to!  What you will do will be even better.

When you write a document that belongs in a collection, you simply add it to an Outline.  And, thereafter, whenever you want to add anything to that collection, you simply add it.

The file itself never moves.  All you are doing is adding a hyperlink.

If you want to add sub-folders, you simply add a Book Page and Child Pages to mark sub-folders.  If you want to move a Child Page to another sub-folder, you use  a drag ‘n drop.

Remember though the file itself never moves. So, you don’t have to rely on your memory to find it.  You only add hyperlinks to an Outline.   You also don’t have to type this Outline out. Or, refresh it with F9, or worry whether you added headings in the correct format.

Let’s use a practical example to show the sweetness of the outlining facility

My personal blog has thousands of posts.  To sort those out into the beginnings of a book (or two), I would copy them into Word and have thousands of files. I would have to open each post, decide where to put it, and then move it to a folder.

When I wanted to find that file, I would have to remember where I put it, and the search would begin again.

In Drupal, I leave all those posts in one running file in date order (the defining feature of a blog).  I still have to work through the posts one-by-one because I built  my blog in WordPress not Drupal, but if I have the material in Drupal now, then I can drop a hyper-link of my posts into a relevant “book” – say a book on Drupal, a book on poetry – and so on.

How do I see my whole collection?

When I have sorted everything out, then I can work on any section of any book. I simply go to the “top” of a section and use “Print friendly”. All the files in that section are collated. With CTRL-A and cut ‘n paste, I take the whole lot into Word and condense say five posts into one.

How do I bring a “chapter” back into Drupal?

When I am done condensing a series of posts into one, I simply cut ‘n paste back into Drupal and save the refinement of my work as a blog post or a Book Page.

Easy. Easy. Easy.

Drupal gives us capacity that Office does not.

How do we make Drupal work for us?

Of course, you build a Drupal website. If your work is not public, build a website on your local server.  We have built one for academics on a portable server so it moves around with us on a USB stick. We call it ScholarWriter.

Everything is put into the single Drupal website – a bibliography that is imported from Endnotes, notes, drafts, calendar and doodles.

All easily accessible.

All compatible with Endnote and Word. Portable.

And because the ‘whole bang shooting match’ resides in one folder, easy to back up with a .zip file and dead easy to restore.

Drupal is a time-sink but if the installation has been built already, it is a dream for writers. A dream.

So these are the 2 reasons why you want to look closely at Drupal: its Search and its Outlining. Search looks inside your files without opening them. Outlining allows you to build up an outline made up of hyperlinks. And when you need your material, collates all the relevant files without your having to open them. Pick a small section and you can edit by deleting, tighten up one paragraph. Finally, you simply copy that paragraph back into a page in ScholarWriter.

Drudgery goes down – dramatically.  Focus goes up – dramatically.  You can concentrate on writing not moving files around. And you get better work down faster – much faster.

What else have I written on Drupal?