Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Changing page templates with PHP

From: Drupal 6 Essential Training

Video: Changing page templates with PHP

If you want complete control over how your theme behaves and in particular how it handles custom created content types, you need to hack at the PHP that's contained within the sites page templates or use a module called Content Templates or Contemplate. We will show you both methods but we are not going to go deeply into how to actually code the changes, that could be an entire course in itself. Instead we will get you started by explaining the template systems logic, where to find the files and the basics of how to play with them. The first we are going to do is we are going to look at the files that make up the theme; we go to the folder where we first installed Drupal. For us we click on the Finder, go to Finder, Hide Others and that exposes the folder where we installed Drupal. Since we are using a theme that came with Drupal, we are going to find it in the themes folder. If you are using a theme that didn't come with Drupal you will probably find it inside the sites folder, either in the all or the default folders. Our theme is Bluemarine, so we open up themes and Bluemarine. We sort by Kind or Type and we see all of the templates together, they are the ones that end in .tpl.php. The one we are concerned with is page.tpl.php; before we do anything else I want to back this up. So I will highlight it, hit Command C or Control C on the Windows machine and then paste, which is Command V or Control V on a Windows machine; that creates a copy.

Changing page templates with PHP

If you want complete control over how your theme behaves and in particular how it handles custom created content types, you need to hack at the PHP that's contained within the sites page templates or use a module called Content Templates or Contemplate. We will show you both methods but we are not going to go deeply into how to actually code the changes, that could be an entire course in itself. Instead we will get you started by explaining the template systems logic, where to find the files and the basics of how to play with them. The first we are going to do is we are going to look at the files that make up the theme; we go to the folder where we first installed Drupal. For us we click on the Finder, go to Finder, Hide Others and that exposes the folder where we installed Drupal. Since we are using a theme that came with Drupal, we are going to find it in the themes folder. If you are using a theme that didn't come with Drupal you will probably find it inside the sites folder, either in the all or the default folders. Our theme is Bluemarine, so we open up themes and Bluemarine. We sort by Kind or Type and we see all of the templates together, they are the ones that end in .tpl.php. The one we are concerned with is page.tpl.php; before we do anything else I want to back this up. So I will highlight it, hit Command C or Control C on the Windows machine and then paste, which is Command V or Control V on a Windows machine; that creates a copy.

I am just going to label that, tpl.php- BACKUP. Now let's go in and play with this code by opening it up in the Text Editor. As you can see the page template is a mixture of PHP code and plain old HTML. We are going to change this so the left column in our site disappears entirely, that is if we go back to our site, we will see none of the stuff over here. Don't worry we will change it back by reverting to our backup; this is only an example of what you can do with your page template. Of course to do more complex things you will need to know PHP; if you are a lynda.com premium subscriber or you are watching this series on a disk you can open up the Exercises File 15_01. Here we have opened up that exercise file which explains what exactly we are changing.

Again don't worry if you don't understand this, I am just showing that you can change things not how to change them. So we are going to search for this text in here, php if left etcetera, etcetera. To find that I am going to search for that $left, so I do Command F or Control F in your PC and there it is, php if left etcetera, etcetera. Let's compare, to make sure it looks the same, yep very good and we will replace the entire bit between this and this. Now we go and take the text that we want to change it to, copy it with Command+C or Control+C if you are using a Windows machine and paste it in and save it. We will close that file and go back to our site, now we reload the page by clicking on reload; there it is we have removed that left column.

Let's change it back though because of course we don't want to leave it this way but you can see how much you can change a page with just a little bit of code. To change it back, we go back to our Finder, first we will get rid of that page.tpl.php file that we just changed; by dragging it to the Trash if you are using a Mac, or by Right-clicking and selecting Delete if you are using a PC. Then we will rename our backup, back to its original name and if we go back to our site and reload we see everything is back to normal. But what if we want to change the layout of a specific content type, that is, have the blog look different from the way it is now. Let's take a look at what the Blogs do look like, we have a title and we have this submitted information and then we have additional stuff down here.

Let's say we want to get rid of this additional submitted information. To do that we go back to the folder that contains those templates and again I go to the Finder and hide everything else on the Mac and we take the node file, node.tpl.php, copy it and paste it to make a backup, call that one BACKUP. Then we are going to copy it and paste it one more time, that second copy we will call node-blog.tpl.php and there we go. Drupal looks for a file that has this particular sort of name and it uses the machine-readable name for the content type. Let's go back and see how we can see those machine-readable names; in your administrative interface you would go to Administer, Content types and it's this, this blog, or book or forum.

So if you wanted to change the way that forum topics look we would change it to node-forum.tpl.php. Let's open that in the Text Editor, as you can see the Content types are actually quite simply defined, there is not a lot of code in here. As it happens, I know that the part that I want to comment out from doing some research is this right here, span class = "submitted" etcetera, etcetera, everything between the open span and closed span tags. I am going to use an HTML comment to do so and again if you don't know HTML don't worry about it too much because the point is not to learn how to do this but that you can do it and if you want to learn more about how HTML works, you can watch the Essential Training video from lynda.com. We will close out that comment tag and save it.

Now lets go back to our site, go to the Blog and you notice we no longer have that submitted information. We have effectively changed the way that, that Content type appears on the site. If we click on it, it still doesn't appear. I am going to return our blog to the way that it was by replacing it once again with just the simple node template. To do so we go back to our Finder and hide everything and then we just throw away this file we created, node-blog. We can also throw away our backup since we didn't end up using it. Now if we go back to our site and reload the page, there we have our submitted information again.

If you want to learn more about how you can affect Content types in this way, there is page on the drupal.org site, drupal.org/node/44699 and there you have it. But let's go back to our site; there is one other way you can make such changes without having to muck around in the PHP file, that's where the module called Contemplate or Content Templates. We have already downloaded it, so now we are going to turn it on by going to Administer and Modules. Contemplate works with CCK type, so you also have to have the CCK module installed. It's a little bit tricky to find on this page however because it's inside the CCK group and here it is as Content Templates, go to the bottom and Save configuration. Now we go to Administer and we have a new choice, Content Templates, if we go to a Blog Entry and Create Template. We will see that we have a lot of options of what we can do to change the Teaser, the Body and even the RSS feed if we are feeding this out to outside sites.

We are not going to go into all of the ways you can change it because it's quite complicated and in fact is its own programming language. But believe me it's much easier than programming the PHP by hand. But for right now we are just going to go back to our home page. As you can see these are all tools that should be used with a very light hand and I can't stress how important backups are. While preparing this video, I commented out one too many lines from a PHP file, literally just a few characters, and my entire site disappeared. If you can get done what you want with Contemplate, stick with that but for really profound changes don't be afraid to backup and reach straight into Drupal's template files.

Show transcript

This video is part of

Image for Drupal 6 Essential Training
Drupal 6 Essential Training

66 video lessons · 31428 viewers

Tom Geller
Author

 
Expand all | Collapse all
  1. 4m 38s
    1. Welcome
      50s
    2. Using the example files
      3m 48s
  2. 28m 55s
    1. Drupal is a CMS
      7m 43s
    2. Choosing Drupal
      5m 32s
    3. Checking Drupal's requirements
      4m 26s
    4. Understanding the inner workings of Drupal
      4m 35s
    5. Meeting the Drupal community
      6m 39s
  3. 11m 28s
    1. Learning key terms in Drupal
      5m 20s
    2. Touring Drupal's interface
      6m 8s
  4. 34m 35s
    1. Installing WAMP and Drupal on Windows
      9m 41s
    2. Installing MAMP
      4m 34s
    3. Setting up the database on a Mac
      2m 2s
    4. Downloading and installing Drupal on a Mac
      6m 37s
    5. Troubleshooting installation problems
      3m 49s
    6. Automating updates with cron
      7m 52s
  5. 25m 37s
    1. Setting up clean URLs
      5m 52s
    2. Backing up your Drupal site
      3m 31s
    3. Restoring your Drupal site from backup
      4m 19s
    4. Wiping your Drupal installation clean
      2m 7s
    5. Updating Drupal
      9m 48s
  6. 15m 37s
    1. Using the Administration menu
      6m 21s
    2. Setting site information
      4m 50s
    3. Setting the theme
      4m 26s
  7. 35m 8s
    1. Understanding security and permissions
      7m 2s
    2. Controlling site access with user management
      3m 39s
    3. Creating users
      7m 58s
    4. Setting user profiles
      9m 40s
    5. Creating contact forms
      6m 49s
  8. 19m 19s
    1. Creating your site's basic info pages
      7m 13s
    2. Understanding page layout
      5m 40s
    3. Creating a flexible layout with blocks
      6m 26s
  9. 15m 35s
    1. Monitoring performance
      4m 52s
    2. Recovering from disasters
      7m 37s
    3. Improving administration skills
      3m 6s
  10. 41m 3s
    1. Understanding nodes
      6m 50s
    2. Creating basic content: Stories and pages
      7m 9s
    3. Enabling other content types
      9m 22s
    4. Adding blogs
      3m 49s
    5. Adding forums
      6m 56s
    6. Adding polls
      6m 57s
  11. 34m 50s
    1. Exploring content categories
      7m 45s
    2. Exchanging content via RSS
      9m 47s
    3. Using input filters
      7m 41s
    4. Managing comments
      9m 37s
  12. 38m 5s
    1. Configuring your theme
      11m 27s
    2. Changing your theme's graphics
      4m 59s
    3. Finding and installing a new theme
      8m 56s
    4. Understanding Cascading Style Sheets (CSS)
      5m 56s
    5. Deciphering CSS files
      6m 47s
  13. 22m 41s
    1. Finding modules
      6m 53s
    2. Unpacking and installing modules
      6m 30s
    3. Configuring modules
      3m 50s
    4. Implementing complex modules
      5m 28s
  14. 32m 12s
    1. Ensuring automated updates with poormanscron
      3m 11s
    2. Defining custom content types with CCK
      12m 54s
    3. Stopping spam using a CAPTCHA
      10m 43s
    4. Using a WYSIWYG text editor
      5m 24s
  15. 22m 18s
    1. Getting around with multilevel menus
      7m 26s
    2. Building custom menus
      5m 42s
    3. Creating easy-to-navigate books
      9m 10s
  16. 20m 19s
    1. Changing page templates with PHP
      8m 15s
    2. Using PHP in content
      5m 20s
    3. Implementing PHP snippets
      6m 44s
  17. 10m 15s
    1. Launching your site
      5m 52s
    2. Joining the Drupal community
      4m 23s
  18. 14s
    1. Goodbye
      14s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Drupal 6 Essential Training.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member ?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferences from the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.