More Pages

Step 9 – Creating more pages, reusing your template

For this last step, we'll create another page (for Jupiter) using the same template just to demonstrate how a template may be reused.

  • In ProcessWire Admin, click Pages and then click the new link to the right of the home page.
  • Enter "Jupiter" as the Title and select "planet" for the Template. Click Save.
  • Now that you are editing the Jupiter page, enter "Gas giant" for Type, enter "4.5 billion" for Age in Years, and copy+paste the following for Planet Summary:
Jupiter is the fifth planet from the Sun and the largest planet within the Solar System.[13] It is a gas giant with mass one-thousandth that of the Sun but is two and a half times the mass of all the other planets in our Solar System combined. Jupiter is classified as a gas giant along with Saturn, Uranus and Neptune. Together, these four planets are sometimes referred to as the Jovian or outer planets.
  • Click the Publish button and then View the page. You should now see your planet template being used to output the information for Jupiter rather than Earth.

Next: Conclusion »


  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 4 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 4 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 4 years ago 43

    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 3 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 4 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 3 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 3 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 1 year 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.