1

I am creating a node type that I don't want to have a separate node page for. I am going to use a page view to pull them into a list. And they will link to a URL that is stored in a field for the content type.

These are simple content types and there is no need for them to have a node page. I know I can avoid having a page for them just by having no way to get there, but is there anything else to think about.

Maybe they should be something else besides a content type? Or is there a better way to not have node pages for a content type?

Edit:

I'm not really trying to prevent people from viewing these nodes. If they want to get to the node with the URL then that's fine. The nodes are just very simple(title, short blurb, link) and the node page would be pretty useless. I am just wondering if I shouldn't use some other Drupal construct for something like this.

1

My choice would be using them as nodes as you are doing right now. Reason being

  1. Building a custom solutions would be again writing codes to interact with database,a custom form so to keep it dynamic.
  2. This is already been handled by drupal in very efficient way.
  3. Also using node entities you have various options open for scaling later,you can add fields to it, enjoy no-custom code interaction with views.
  4. According to me,we as a developer or content editor,site admin have better hold on entities rather than any custom solution.
|improve this answer|||||
2

You are looking for Internal Nodes

Some content/nodes should never be viewed directly; only visible be through something else such as Views or Panels. This module denies access to node/[nid] URLs while allowing the content to stay published and otherwise viewable. Try the demo!

|improve this answer|||||
1

Try to redirect when trying to see a node view

/**
 * Implement hook_entity_view().
 */
function custom_entity_view($entity, $type, $view_mode, $langcode) {

  list($id, $rev, $bundle) = entity_extract_ids($type, $entity);
  switch ($bundle) {

    case 'your_content_type':
      drupal_goto('another_url'); //or access_denied
      break;

  }
}

And check with the permissions to denied edit and delete access for these kind of nodes

|improve this answer|||||

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.