I am ultimately looking for a way to create a report in Views showing what nodes were active on the site at what times but thus far have been unable to accomplish this. I've done a fair bit of research and experimentation but it seems the main obstacle is that node revisions in Drupal don't capture whether the node was published or not at the time of the revision. Can anyone offer some guidance on how to do such a thing in Drupal 7?

As an example for clarification - though not my exact situation - imagine a classifieds site where the managers need to know how many listings (i.e nodes) were currently published (not published on a particular date, but "live" on the site) for the month of January. Or, perhaps to see what listings were active the week of January 1st-7th, who posted them, and what the headlines were.

Any pointers in the right direction? Or is this something reasonably achievable with custom development (I am just a site builder not a developer!).

  • Are you looking to track the status of the node with each revision, iow if the node was published in Jan but revised and unpublished in Feb, then published again in March, it would count for Jan & Mar but wouldn't count for Feb? – longboardnode Oct 24 '17 at 3:51

Try this hope it helps.

First create a Views page enter image description here

Second add the fields you want to display based on your node. Add relationship 'author' so that you can add a user:name which is related to the author of the node. enter image description here

Third change your use pager to 'page by date'. Next add a contextual filter Date: date(node). After adding do this. enter image description here enter image description here enter image description here enter image description here

And your output should be like this. enter image description here

Additional, you can add exposed filter date so that you can filter on what month you want to check.

Hope this helps you in your problem.

A possible approach to address your challenge, is to create your own custom logging to:

(a) capture relevant events, and

(b) store relevant data about them.

And this by using a combination of these (commonly used) modules:

Long story short:

  1. Use the Message module to create a "Message Type" that you'll use for creating some type of custom logging (for the events you're asking about, i.e. when a node gets published, or when it gets unpublished). Up to you to decide if you want to use:

    • a single Message Type (+ extra field to indicate published or unpublished),
    • or rather 1 Message Type for published and another of unpublished.
  2. Use the Rules module to capture these events, with Rules Actions to create appropriate messages (= records in your custom log).

  3. Use the Views module to browse the messages that got created.

For a variation of your question, where a similar technique can be used, refer to my answer to "Is there a way to send emails when someone logs in?" (which includes examples of the relevant Message Types, Rules and Views.

BTW, no need for custom coding.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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