Non-Developer Question: Drupal
August 22, 2014 1:09 PM   Subscribe

Do we need another database in addition to the CMS to accomplish this? Can you help a non-developer understand. Can you help me explain it properly?

  • On the yet-to-be-developed website there will be a place where we will list all of the articles written by our team members.
  • Each team member will also have their own personal page that will list all the articles they have written personally.
  • We don’t want to enter this information manually on the different pages. We want the content to update in both places automatically.
I am not a developer and my understanding is that a CMS can’t do this. That this would take database functionality in addition to a CMS. Is that right? What is the best way to explain this to (non-technical) people? The CMS will likely be Drupal.

And finally, if another database is required -- would it be a complex thing to develop?
posted by Lescha to Computers & Internet (10 answers total) 1 user marked this as a favorite
Views (a drupal module) should be able to pull this information out of Drupal for you.

You'll want to create a view that pulls stories created by the related user ID.
posted by Setec Astronomy at 1:11 PM on August 22, 2014 [1 favorite]

I'm not sure why Drupal would not be able to do this. Setting up functionality would be part of the design phase. How I would do it (I have not really put out a Drupal site in a few years back in 6.5) is to set up content to show up on the front page, and use tags or other background flags or the view module to set up a page for each author.

This page would, when opening, call the articles authored by that person / tagged appropriately, and display them as that author's content.

You might need to do it by setting up content types, but probably not, but if so, it should be trivial for a basic Drupal site putter upper person.
posted by tilde at 1:13 PM on August 22, 2014

A CMS is just a database with a programming framework included for displaying the data on a website. You can make it do basically anything you want.
posted by empath at 1:14 PM on August 22, 2014 [1 favorite]

The Drupal Blog module does this out of the box:

The Blog module adds a blogs navigation link to the main navigation menu (the link must be enabled), which takes a visitor to a page that displays the most recent blog entries from all the users on the site... The blog module also creates a recent blog posts block that can be enabled.

Note that you can call it Articles in the navigation if you prefer, and that each blog post will include a link to that author's individual blog page. You can remove dates, etc, from display if you prefer it to look less blog-like.
posted by DarlingBri at 1:44 PM on August 22, 2014

Your premise is flawed. Pretty much every CMS in existence will store who wrote an article. This data is the only data you need to store. Not only is there not another database needed, you shouldn't even need to modify the structure of the database you'll use.

Now that you have the data in the database you need to get it out and displayed properly. Most CMS's out there will allow you to create the views you're looking for either built in or via a plugin or even some small custom programming work. With a plugin or module its probably a few hours work. Developing it from scratch would probably be less than a week (I'd think a day or two) with an expert in your CMS of choice.
posted by bitdamaged at 1:47 PM on August 22, 2014 [1 favorite]

BTW, most databases are just a structure for storing data, think of it as a folder of data you can stick whatever you want in it. You'd pretty much never need another database just to add different data, you'd generally just change the database you have to accept your custom changes.
posted by bitdamaged at 1:51 PM on August 22, 2014

Drupal can definitely do this, as can any major CMS. Our old Drupal 6 site, from about ten years ago, does this.
posted by ssg at 1:56 PM on August 22, 2014

This is exactly what a CMS does best. It manages your content so you only have to enter information in one place and use it on various pages on your site.
posted by dawkins_7 at 2:18 PM on August 22, 2014

N'thing the Views module, included in core Drupal. This is exactly what it's for. You are overthinking a simple problem.
posted by spitbull at 4:04 PM on August 22, 2014

If we were chatting in person, this is the point where I would ask you what you understand a CMS to be for. It's not entirely clear in this question. Can you post an update clarifying that? A CMS like Drupal is a bit of a Swiss army knife. It sounds like maybe you knew about the nail file and the scissors but not the knives. Hooray, it has knives too!

The point of a Content Management System is not just to input the content or enable a WYSIWYG editor or schedule publishing or have some beautiful displays. It does all of that and will also to enable you to use and manage that content in dynamic ways. It means that a piece of content doesn't live in a fixed place, it lives in a database and it gets called onto a page by a query. Or it gets called onto 15 pages by different queries because sometimes the question is "do we have any articles about onions?" and sometimes it's "what did we publish in March?" and the same article can be the right answer for both those questions. A CMS lets you recycle things.

If you went with a bog-standard Drupal installation, here's what would happen. Your team would each get a user account. Each user account could have:
  • a username (wkinew)
  • a password
  • a display name (Wab Kinew)
  • an author photo
  • a bio
  • etc
Then they would start writing Articles. I'm capitalizing that because each type of content has different properties, so you want to name each "Content Type". Articles could have:
  • author (linking this article to a user account)
  • date of posting
  • title
  • body text
  • a key photo
  • a blog category (or many tags)
  • etc
An Event (another Content Type) might have all of that except the blog category, and add a Start Date and End Date and Registration Link.

As mentioned above, one of the core modules in Drupal is the Blog module. This is a little program that creates a bunch of interfaces that show you the same content with different displays and filters. It will create a main blog page that shows the most recent Articles in reverse chronological order. It will create Author pages showing their info and their recent Articles. It will create category pages showing Articles in those categories. It does each of these by querying the database.

Oh, the database. Drupal always includes a database. Think of Drupal as a big ol' brain where the database is its memory. The Blog module is asking, "Hey Drupal, what has Wab Kinew written lately?" and it goes off into its database and spits that list out.

Not only that, it can say "this is a list of Wab's articles and it should just be a short list, so I'll just spit out the titles and the first 10 words of the body text" and another time it can say "oh they clicked that article's link, so now I'll display the title and the whole body text and put a picture of Wab and his bio at the bottom because I can link those two pieces of information together with my Drupal Brain and Database Memory".

This is nice for you because you can input Wab's bio once and it gets spit out on his author page and at the bottom of his articles with no extra work!

Views is another Drupal module which gets used a lot because it lets developers fiddle around and ask Drupal very specific questions rather than sticking with the default Blog module displays.

Feel free to MeMail me if this is still too much Drupal jargon. :)
posted by heatherann at 5:19 PM on August 22, 2014 [2 favorites]

« Older Sit-Stand Desk   |   How to build a career & income as a single... Newer »
This thread is closed to new comments.