Developers

Code Walkthrough

This section provides a walkthrough of some of the code. In this example we're looking at the checklist which appears when first visiting the admin area after installing the application.

Controller

/backend/controller/main/checklist.php

<?php
namespace Commentics; // this ensures the class name won't conflict
 
class MainChecklistController extends Controller // extends the parent class in /system/engine/
{
    public function index()
    {
        $this->loadLanguage('main/checklist'); // loads the corresponding language
 
        $this->loadModel('main/checklist'); // loads the corresponding model
 
        if ($this->request->server['REQUEST_METHOD'] == 'POST') { // if the form is posted
            if ($this->validate()) { // calls a private method we've ommited for simplification
                $this->model_main_checklist->update(); // calls the model method to update a setting
 
                $this->response->redirect('main/dashboard'); // redirects the user to the dashboard
            }
        }
 
        $this->components = array('common/header', 'common/footer'); // loads the header and footer
 
        $this->loadView('main/checklist'); // loads the corresponding view
    }
} // we end the file with an empty line below
 
Model

/backend/model/main/checklist.php

<?php
namespace Commentics; // this ensures the class name won't conflict
 
class MainChecklistModel extends Model // extends the parent class in /system/engine/
{
    public function update() // the method called by the controller above
    {
        // update the database setting to set that the checklist is complete
        $this->db->query("UPDATE `" . CMTX_DB_PREFIX . "settings` SET `value` = '1' WHERE `title` = 'checklist_complete'");
    }
} // we end the file with an empty line below
 
View

/backend/view/default/template/main/checklist.tpl

<?php echo $header; ?>
 
<div class="main_checklist_page">
 
    <div class='page_help_block'><?php echo $page_help_link; ?></div>
 
    <h1><?php echo $lang_heading; ?></h1>
 
    <hr>
 
    <?php if ($success) { ?>
        <div class="success"><?php echo $success; ?></div>
    <?php } ?>
 
    <?php if ($info) { ?>
        <div class="info"><?php echo $info; ?></div>
    <?php } ?>
 
    <?php if ($error) { ?>
        <div class="error"><?php echo $error; ?></div>
    <?php } ?>
 
    <?php if ($warning) { ?>
        <div class="warning"><?php echo $warning; ?></div>
    <?php } ?>
 
    <p><?php echo $lang_text_welcome; ?></p>
 
    <ul>
        <li><?php echo $lang_text_permissions; ?></li>
        <li><?php echo $lang_text_email; ?></li>
        <li><?php echo $lang_text_fields; ?></li>
        <li><?php echo $lang_text_approval; ?></li>
    </ul>
 
    <p><?php echo $lang_text_integrate; ?></p>
 
    <p><?php echo $lang_text_return; ?></p>
 
    <form action="index.php?route=main/checklist" class="controls" method="post">
         <input type="hidden" name="csrf_key" value="<?php echo $csrf_key; ?>">
 
         <p><input type="submit" class="button" value="<?php echo $lang_button_completed; ?>" title="<?php echo $lang_button_completed; ?>"></p>
    </form>
 
</div>
 
<?php echo $footer; ?>