0

Using Drupal I need to recreated node that only display title and body.

Why ? I want to used my theme as e-mail template without re-creating a website manually. So I have to remove any menu, block, header, footer that is display it. Every time a new article is done they can export the page using their drupal theme but only showing the title and body to be send in an e-mail.

Any idea how to do this ?

3 Answers 3

5

Use the Print module that has an "email the content" functionality where you can control the look of that email including displaying only the page title and a body.

6
  • This looks like a reasonable solution but do you know if sending e-mail would contain the theme ? Because I have used the Print module to print and it looks different from theme. Feb 13, 2015 at 17:18
  • The Print module allows to use print.css file in the theme to tweak the look of the print or email output or use the theme look. It does allow to include the site logo/header in the email. It also allows to modify the email template (drupal.org/node/306886) to ensure the content of the email looks as expected.
    – Kasia W
    Feb 13, 2015 at 18:00
  • And just to understand better the requirements - the website content and look is suppose to stay intact but selected pages need to be emailed with their Title and Body only (without additional fields) looking different than the website theme (basically being themed by different theme?)
    – Kasia W
    Feb 13, 2015 at 18:07
  • It should used the same theme as the website. However, the menu, footer, and any additional block should not appear. I'm going to try the print module now and see what happen. Feb 13, 2015 at 19:52
  • I combine all the CSS into one and set that CSS as the default css and it look bad. I believe is due to that is excepted some classes that it what makes it responsive that is added into the theme (PHP). Feb 13, 2015 at 20:47
0

Path of least resistance: use a menu callback that accepts the node id as an argument.

Then you can just node_load() and format it exactly as required for email.

2
  • In other words, created my custom module that every time some post on that content type generated a new page URL with a the same node but different page (similar to the print module) and using the node_load() to display all the content. Right ? Feb 13, 2015 at 17:21
  • correct. though you won't have to generate a new page url, because if you're using a menucallback like this: www.website.com/email/123 it's always going to be there, for any node.
    – user5482
    Feb 13, 2015 at 17:35
0

You can use a different page template depending on the path.

If you had the following path:

/node/99/edit

PHPtemplate looks for the following templates, in descending order:

page-node-edit.tpl.php
page-node-99.tpl.php
page-node.tpl.php
page.tpl.php

UPDATE: Regarding comment about original content type.

To theme individual content types in different ways you would use the following convention:

page-node--page.tpl.php
page-node--forum.tpl.php
page-node--book.tpl.php
3
  • I think is going to affect the original node content type ? No ? In addition, I'm using GlobalRedirect which I dont think I would never be able to see /node/99/ unless I disable this module. Feb 13, 2015 at 16:46
  • See update regarding affecting original content type.
    – Alex Gill
    Feb 13, 2015 at 17:09
  • I can't have separate content types they have to be the same content type. I can't theme the entire content type because that content type is been display on the website. And re-typing the entire article into another content type can't be a solution. Feb 13, 2015 at 17:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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