Introduction

This tutorial plays on the 'hello world' phrase and lists information about planets in the solar system, starting with Earth. To keep it simple, we'll assume that the basic site profile is installed, as that's what comes with ProcessWire (so there's no need to uninstall anything). But we won't start using any of it's files at this stage. Instead, we'll start out by creating our own files.

After completing this tutorial you will have learned how to create and work with templates, fields, pages, and how to output dynamic data via your templates.

Step 1 – Create a template file

Create a new file called: /site/templates/planet.php, and copy+paste the following HTML into that file:

<html>
  <head>
    <title>Earth</title>
  </head>
  <body>
    <h1>Earth</h1>
    <h2>Type: Happy planet, Age: Millions of years</h2>
    <p>Earth (or the Earth) is the third planet from the Sun,
    and the densest and fifth-largest of the eight planets
    in the Solar System. It is also the largest of the Solar
    System's four terrestrial planets. It is sometimes
    referred to as the World, the Blue Planet, or by its
    Latin name, Terra.</p>
  </body>
</html>

The above is just a plain HTML file with nothing specific to ProcessWire. We will use this as the starting point for our template, and we'll go back and modify it later.

Next: Create a Template and a Page »


  1. Introduction and First Steps
  2. Create a Template and a Page
  3. Setting up Custom Fields
  4. The Template File
  5. More Pages
  6. Conclusion

Comments

  • Max

    Max 3 years ago 43

    Great stuff Ryan.

    How about adding this as the next step: now that folks have learned how to build the template that will show individual pages for the earth, jupiter, etc it would be nice to show them how to output all the planet outputs on a single page as a list?

    Thanks!

    • Patrick t.

      Patrick t. 3 years ago 65

      Hi Max, i think you need to create some template specific for pages. I can assume from this tutorial, that template file created here is similar to a template for planet details. To get all planets, you need to create a planets.php template file, create a page that act as parent of single planet, and in this page template use a foreach loop with the $page->children array, to list subpages.

  • marc

    marc 3 years ago 33

    Thanks ryan for this easy and simple to understand tutorial.

    +1 for additional tutorial in displaying all the planets on a single page as a list

  • Sito

    Sito 3 years ago 33

    Hello, just new to this CMS, and after following the tuts here I get a 'Earth' page but the with the Title & Content above the navigation menu...
    And also a double title, can't figure this out...any advice please?

    • Dionys

      Dionys 2 years ago 11

      @SITO

      I had the same Problem like you.
      Im not shur if i understand and solve the problem correct, but it works at the end.

      If you use $content .= "".$page->title.""; and this for every planet Variable. It works. Look at _main.php there is the output of this $content var. Im not shure but at the install process i take not the beginner template. At readme.txt i read something about two posibilities to give the page out. The first is direct, i think this was used at this tutorial. The second way is complexer but mor scaleable. I think this is the reason and solution.

      Maybe somebody can correct me.

  • Christophe

    Christophe 3 years ago 62

    Nice tutorial and awesome CMS/CMF ;)
    Great work!!!

  • Marco

    Marco 3 years ago 33

    If we leave the _init and the _main template-references in place (see tab Files when editing template "planet"), wouldn't it be more in line with the Processwire way of thinking to work with the following content of the template file?

  • Ed Preston

    Ed Preston 2 years ago 13

    "Create a new file"?
    How?
    Where?
    I can do cut-and-paste real good, that's not a problem.
    But since this is a beginner level tutorial it would help *a lot* if you could be a little more specific. This "tutorial" assumes we beginners already know the how and the where, but if we did, we wouldn't be beginners

    • Ed Preston

      Ed Preston 2 years ago 00

      OK, commenting to my own reply: I gave up looking for a way to create the new file *in* ProcessWire, and just created it outside of ProcessWire through cPanel, since my site is hosted, and not on my own server.

  • Vik

    Vik 4 months ago 00

    Thank you Ryan!
    Perfect tutorial, very clean and simple
    :)

Post a Comment

Your e-mail is kept confidential and not included with your comment. Website is optional.