Category

Out of the box, Drupal comes with 3 workflow states for node types: Published, Sticky, and Promote to Front Page. ‘Published’ is useful enough to control if content is visible to non-administrative users, but what if you want to mark content as Archived, Featured, or other custom statuses? You could add a Field on the content type, but that comes with some overhead to manage across multiple content types. Plus, you have to remember to remove it from the display, and set user permissions on the Field. That’s a lot of work for busy content creators!

Custom Publishing Options extends the published status functionality of node content in Drupal to allow site administrators to define their own publish states. Each state is added to the database node schema and extends the node entity info to mark it as a property. This enables you to integrate custom states quickly into existing workflows, or develop new ones for content creators. This flexibility allows, for example, creating a View of nodes that are marked 'Archive' or any custom status, without needing to un-publish them to filter them from other Views. You could also have a 'Featured' status, to flag content for a slider rotation View, as well, it's really up to you.

We picked up and developed this module for Drupal 7 while working on a project for a local popular classifieds service in 2011. After just a year, it has gone from 350 to over 1100 installations, which is very exciting. Not quite Views numbers by any means, but still fun to see consistent growth.

We plan on adding support for NoSQL databases and ApacheSolr support in the near future, so keep an eye out!

Team Member
Subheader #1
Inclind develops Custom Drupal Module to assist with Publish Statuses for Content Managers
Published on
Article Photo
Author
Bryan Cordrey
Article Type
News Article (unrelated to clients)
{
    "jsonapi": {
        "version": "1.0",
        "meta": {
            "links": {
                "self": {
                    "href": "http:\/\/jsonapi.org\/format\/1.0\/"
                }
            }
        }
    },
    "data": {
        "type": "node--article",
        "id": "5f33ec3b-b813-4972-aa1e-a348836402ea",
        "links": {
            "self": {
                "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea?resourceVersion=id%3A319"
            }
        },
        "attributes": {
            "internalId": 319,
            "isPublished": true,
            "title": "Custom Publishing Options Module for Drupal 7 Hits 1000 Download Milestone",
            "created": "2022-07-17T19:09:32+00:00",
            "changed": "2024-05-09T18:23:14+00:00",
            "promote": false,
            "sticky": false,
            "metatag": [
                {
                    "tag": "meta",
                    "attributes": {
                        "name": "title",
                        "content": "Custom Publishing Options Module for Drupal 7 Hits 1000"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "name": "description",
                        "content": "Out of the box, Drupal comes with 3 workflow states for node types: Published, Sticky, and Promote to Front Page. \u2018Published\u2019 is useful enough to control if"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "name": "abstract",
                        "content": "Delaware Drupal web development company specializing in custom Drupal development, real estate and rental brokerage websites, internet marketing and ecommerce"
                    }
                },
                {
                    "tag": "link",
                    "attributes": {
                        "rel": "canonical",
                        "href": "https:\/\/www.inclind.com\/news\/custom-publishing-options-module-drupal-7-hits-1000-download-milestone"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "name": "robots",
                        "content": "index, follow"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:site_name",
                        "content": "Inclind"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:url",
                        "content": "https:\/\/www.inclind.com\/news\/custom-publishing-options-module-drupal-7-hits-1000-download-milestone"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:title",
                        "content": "Custom Publishing Options Module for Drupal 7 Hits 1000 Download Milestone"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:description",
                        "content": "Delaware Drupal web development company specializing in custom Drupal development, real estate and rental brokerage websites, internet marketing and ecommerce"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "place:location:latitude",
                        "content": "38.77513"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "place:location:longitude",
                        "content": "-75.13974"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:street_address",
                        "content": "119 W. Third St., Suite 6"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:locality",
                        "content": "Lewes"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:region",
                        "content": "Delaware"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:postal_code",
                        "content": "19958"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:country_name",
                        "content": "United States"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:email",
                        "content": "hello@inclind.com"
                    }
                },
                {
                    "tag": "meta",
                    "attributes": {
                        "property": "og:phone_number",
                        "content": "(800) 604-8139"
                    }
                }
            ],
            "path": {
                "alias": "\/news\/custom-publishing-options-module-drupal-7-hits-1000-download-milestone",
                "pid": 557,
                "langcode": "en"
            },
            "body": {
                "value": "\u003Cp\u003E\u003Cspan\u003EOut of the box, Drupal comes with 3 workflow states for node types: Published, Sticky, and Promote to Front Page. \u2018Published\u2019 is useful enough to control if content is visible to non-administrative users, but what if you want to mark content as Archived, Featured, or other custom statuses? You could add a Field on the content type, but that comes with some overhead to manage across multiple content types. Plus, you have to remember to remove it from the display, and set user permissions on the Field. That\u2019s a lot of work for busy content creators!\u003C\/span\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cspan\u003ECustom Publishing Options extends the published status functionality of node content in Drupal to allow site administrators to define their own publish states. Each state is added to the database node schema and extends the node entity info to mark it as a property. This enables you to integrate custom states quickly into existing workflows, or develop new ones for content creators. This flexibility allows, for example, creating a View of nodes that are marked \u0027Archive\u0027 or any custom status, without needing to un-publish them to filter them from other Views. You could also have a \u0027Featured\u0027 status, to flag content for a slider rotation View, as well, it\u0027s really up to you.\u003C\/span\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cspan\u003EWe picked up and developed this module for Drupal 7 while working on a project for a local popular classifieds service in 2011. After just a year, it has gone from 350 to over 1100 installations, which is very exciting. Not quite Views numbers by any means, but still fun to see consistent growth.\u003C\/span\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cspan\u003EWe plan on adding support for NoSQL databases and ApacheSolr support in the near future, so keep an eye out!\u003C\/span\u003E\u003C\/p\u003E",
                "format": "basic_html",
                "processed": "\u003Cp\u003E\u003Cspan\u003EOut of the box, Drupal comes with 3 workflow states for node types: Published, Sticky, and Promote to Front Page. \u2018Published\u2019 is useful enough to control if content is visible to non-administrative users, but what if you want to mark content as Archived, Featured, or other custom statuses? You could add a Field on the content type, but that comes with some overhead to manage across multiple content types. Plus, you have to remember to remove it from the display, and set user permissions on the Field. That\u2019s a lot of work for busy content creators!\u003C\/span\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cspan\u003ECustom Publishing Options extends the published status functionality of node content in Drupal to allow site administrators to define their own publish states. Each state is added to the database node schema and extends the node entity info to mark it as a property. This enables you to integrate custom states quickly into existing workflows, or develop new ones for content creators. This flexibility allows, for example, creating a View of nodes that are marked \u0027Archive\u0027 or any custom status, without needing to un-publish them to filter them from other Views. You could also have a \u0027Featured\u0027 status, to flag content for a slider rotation View, as well, it\u0027s really up to you.\u003C\/span\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cspan\u003EWe picked up and developed this module for Drupal 7 while working on a project for a local popular classifieds service in 2011. After just a year, it has gone from 350 to over 1100 installations, which is very exciting. Not quite Views numbers by any means, but still fun to see consistent growth.\u003C\/span\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cspan\u003EWe plan on adding support for NoSQL databases and ApacheSolr support in the near future, so keep an eye out!\u003C\/span\u003E\u003C\/p\u003E",
                "summary": ""
            },
            "articleType": "news",
            "author": "Bryan Cordrey",
            "authorTitle": null,
            "challenge": null,
            "introText": null,
            "location": null,
            "f_metatag": null,
            "publishDate": "2013-01-29",
            "result": null,
            "solution": null,
            "subheader1": "Inclind develops Custom Drupal Module to assist with Publish Statuses for Content Managers",
            "subheader2": null
        },
        "relationships": {
            "contentType": {
                "data": null,
                "links": {
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/contentType?resourceVersion=id%3A319"
                    }
                }
            },
            "category": {
                "data": {
                    "type": "catTerm",
                    "id": "af3b26b1-3429-4623-964e-186d25f890eb",
                    "meta": {
                        "drupal_internal__target_id": 53
                    }
                },
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/category?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/category?resourceVersion=id%3A319"
                    }
                }
            },
            "companyRef": {
                "data": null,
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/companyRef?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/companyRef?resourceVersion=id%3A319"
                    }
                }
            },
            "image": {
                "data": {
                    "type": "images",
                    "id": "29ef6e14-fc64-4ded-9e1d-c73a698a57ab",
                    "meta": {
                        "drupal_internal__target_id": 165
                    }
                },
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/image?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/image?resourceVersion=id%3A319"
                    }
                }
            },
            "slides": {
                "data": [],
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/slides?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/slides?resourceVersion=id%3A319"
                    }
                }
            },
            "teamMember": {
                "data": [
                    {
                        "type": "node--person",
                        "id": "5e8f6ed8-e4d3-4b2a-8bfa-a3f635004b89",
                        "meta": {
                            "drupal_internal__target_id": 119
                        }
                    }
                ],
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/teamMember?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/teamMember?resourceVersion=id%3A319"
                    }
                }
            },
            "tags": {
                "data": [],
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/tags?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/tags?resourceVersion=id%3A319"
                    }
                }
            },
            "topic": {
                "data": [
                    {
                        "type": "topicTerm",
                        "id": "1a993f8f-ee53-4048-ba7a-94e301547386",
                        "meta": {
                            "drupal_internal__target_id": 2
                        }
                    },
                    {
                        "type": "topicTerm",
                        "id": "dc2c8a07-38a3-46e7-a5a9-93dc46b3b799",
                        "meta": {
                            "drupal_internal__target_id": 16
                        }
                    },
                    {
                        "type": "topicTerm",
                        "id": "3f416e9c-e6a3-46a4-9fe4-8fb7e2131b24",
                        "meta": {
                            "drupal_internal__target_id": 51
                        }
                    }
                ],
                "links": {
                    "related": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/topic?resourceVersion=id%3A319"
                    },
                    "self": {
                        "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea\/relationships\/topic?resourceVersion=id%3A319"
                    }
                }
            }
        }
    },
    "links": {
        "self": {
            "href": "https:\/\/backend.inclind.com\/jsonapi\/articles\/5f33ec3b-b813-4972-aa1e-a348836402ea?resourceVersion=id%3A319"
        }
    }
}