Some netbeans model/controller templates

Post modules, themes or any other code you want to share with the community.

Moderator: Developers

richarddodd
Posts: 66
Joined: Fri Jun 21, 2013 2:55 pm

Some netbeans model/controller templates

Postby richarddodd » Thu May 01, 2014 5:27 pm

I made some templates in netbeans for a groupoffice model and/or controller. You just need to set the `module` variable first before you use them

The model:

Code: Select all

<?php
<#assign licenseFirst = "/* ">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "${project.licensePath}">

/**
 * The ${name} model
 *
 * @author ${user}
 */
class GO_${module?capitalize}_Model_${name} extends GO_Base_Db_ActiveRecord {

    /**
    * Returns a static model of itself
    * 
    * @param String $className
    * @return GO_${module?capitalize}_Model_${name}
    */
    public static function model($className = __CLASS__)
    {
        return parent::model($className);
    }

    /**
     * @return array An array of attributes for the model
     */
    public function init() {
        // TODO set column properties e.g. $this->columns['date_start']['required']=true;
        
        parent
::init();
    }

    /**
     * @return the localized name of the model
     */
    public function getLocalizedName() {
        return GO::t('${name?lower_case}', '${module?lower_case}');
    }

    /**
     * @return string The name of the table in the db
     */
    public function tableName() {
        return "${module?lower_case}_${name?lower_case}s";
    }

    /**
     * @return array The relations to this model
     */
    public function relations() {
        $rels = array(); // Insert relations here
        
        return array_merge
(parent::relations(), $rels);
    }

    /**
     * @return array The defaults for this model
     */
    public function defaultAtributes() {
        $attrs = array(); // Insert default attributes here

        return array_merge(parent::defaultAttributes(), $attrs);
    }

    /**
     * Get the cache attributes (identifiers for the models also
     * used for logging)
     * 
     * @return array The name and description of the model
     */
    public function getCacheAttributes() {
        return array(
            "name" => $this->id // TODO You will probably want to rewrite this
        );
    }
    
    
/**
     * Override this function to mutate attribute values before save
     * 
     * @return bool 'true' to proceed with db insert/update, false to bail out
     */
    public function beforeSave() {
        return true;
    }

    // public functions
    // ================

    //TODO put any extra public functions of the model data here

    // private utility functions
    // =========================

    //TODO put any private functions used elsewhere in the model here

}

 


and the controller:

Code: Select all

<?php
<#assign name=name?substring(0, name?length-10)>
<#assign licenseFirst = "/* ">
<#assign licensePrefix = " * ">
<#assign licenseLast = " */">
<#include "${project.licensePath}">

/**
 * The ${name} controller
 *
 * @author ${user}
 */
class GO_${module?capitalize}_Controller_${name} extends GO_Base_Controller_AbstractModelController {
    
    
/**
     * The name of the model this controller works with
     */
    protected $model = "GO_${module?capitalize}_Model_${name}";

    /**
     * @return array The names of actions guests are allowed to access
     */
    protected function allowGuests() {
        $guestActions = array(); // Add actions for guest access here
        
        return array_merge
(parent::allowGuests(), $guestActions);
    }

    /**
     * Set column formatting for actionStore
     * 
     * @return GO_Base_Data_ColumnModel The column model with the column formatting
     * rules applied
     */
    protected function formatColumns(GO_Base_Data_ColumnModel $columnModel) {
        // format your columns with e.g. $columnModel->formatColumn('name', '$model->othermodel->name', array(), $othermodel_name_id);
        // see GO_Base_Data_ColumnModel
        return parent::formatColumns($columnModel);
    }

    /**
     * This function returns a list of fields in the db, and names to go with them.
     * With this list, the combo field doesn't need to load it's store to populate
     * the currently selected combo choice. If this isn't set, the combo box will
     * show the value of the box (usually a foreign key id)
     * 
     * @return array An array of $key => $value where $key is the db field name
     * and $value is what should be displayed in the combobox before the store is
     * loaded
     */
    protected function remoteComboFields() {
        $fields = array(); // Put remote combo fields here e.g. 'contact_id' => '$model->contact->name'
        
        return array_merge
(parent::remoteComboFields(), $fields);
    }

    // actions
    // =======

    //TODO put any custom actions here

    // public functions
    // ================

    //TODO put any extra public functions of the model data here

    // private utility functions
    // =========================

    //TODO put any private functions used elsewhere in the model here

}
 

Return to “Contributed development”

Who is online

Users browsing this forum: No registered users and 2 guests

cron