I'm looking for the best way to deal with long lists of items. In this case a subsite is a council library area which must publish a list of new books each month. In a perfect world I would suck this from the library catalogue directly, but that isn't going to happen just yet, so I need a medium term workaround. I also have other similar data lists to manage so need to have some solutions up my sleeve.

So I would have 50-100 list items manually added each month. Each item would consist of Book Title, Author, Some sort of ID number used in a link, and keys to the month (not necessarily published month) and type (e.g. non-fiction, fiction etc).

I can think of half a dozen ways to do this, but of course am seeking one that is efficient both from a data entry point of view, but also from a system and performance point of view. Ways of doing it might include (just from a brainstorming point of view):

  • Use a channel with each book being an entry (with fields for month and type)
  • Use a channel with each month being an entry and a matrix field for each book
  • Upload the monthly book list as an asset (XML or JSON) and display from there

The last one is the most appealing if I can work out how to get a non technical website content manager creating files in the right format (Excel should work for this). It also seems a short step from there to using a library catalogue system generated file.

I'm not quite up to writing my own plugin just yet, but perhaps it's time for me to learn.


1 Answer 1


I'd probably prefer to create the data using Craft's control panel UI for tags (→ book type) and dates than typing it all into Excel. So if it was me, I would probably vote for option a or b.

There shouldn't be that much of a speed differences between creating matrix rows or adding new entries for the data entry (there's this nice shortcut for "Save entry and create new one"), so my advice is to keep it simple and use a channel. Besides good performance (no relationship queries etc.), other advantages over matrix rows is to view and sort the books nicely in the CPs index view (customizable since Craft 2.3) or use the default disable switch (with traffic lights on the index view).

This gives your client a nice and flexible UI today and you can start developing a custom plugin that gets their system data into Craft. Even with that future solution it could make sense to have the entries available in Craft, to add website only data or make relations to other entries for example, and your plugin will be more of a custom import solution than a simple view to the external API data.

  • Thanks for that. Yes, I can see the value of having each book as an entry; I suppose I was worried about the numbers but it is unlikely to extend to more than a thousand per year. Since I read your answer I found a couple of existing plugins that import data into entries that might work for me. Mar 9, 2015 at 0:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.