Login +

Release Notes / 1.0.6

Introduction

SillySmart 1.0.6 introduces 26 new features & bug fixes.

To browse the full list, check the roadmap :

http://redmine.sillysmart.org/versions/42

Model

searchModels()

- searchModels() function can be used on a different table of the current object.

- searchModels() function now allow the use of the clause "IN" in the WHERE condition:

array(array("column" => "user_id",
            "value"  => array(1,4,6),
            "mode"   => "in"));

Custom functions

It's now possible to call a custom function of Model SQL without using the business object.

If you create the following function in Alias_Model.sql.php:

public function customFunction($toto, $titi, $tutu=null)
{
    $sql = "SELECT * FROM `user` ORDER BY `user_email` DESC";
    return $this->_db->select($sql);
}

You can call it in the action by this way:

$this->_generic->useModel('User');
$user = new Main_User();
$user->callSqlFunction('customFunction', 'sillysmart', array('open' => 'source'), new stdClass());

First parameter is the name of the function, then the following are real parameters of your custom SQL function.

If the function does not exist or it is called with an insufficient number of parameters, it raises an error.

If the function is called with too many parameters, it raises a warning.

InnoDB

Support for InnoDB and transactions.

Functions beginTransaction(), commitTransaction(), rollbackTransaction() make their appearances.

Back-Office

Foreign Keys

Foreign keys are now selectable in auto-completion.

This auto-complete follow the chosen pattern to describe the recordset of the linked table.

At moment of click in the input, the most recordsets associated with this table are proposed priority, at moment of typing corresponding recordsets are proposed.

Listing

The multiple recordsets selection on the listing is simplified. A simple click on the 1st then a 2nd click simultaneously with the shift key pressed and all recordsets between both recordsets will be selected.

SLS_Generic1

- Creating a function to test the existence of an action from its uniqid.

Prototype:

public bool actionIdExists($actionId)

Return:

bool true if existed, else false

- Creating a function to retrieve the couple Controller / Action from the uniqid of action and optionally a language (to force the translation).

Prototype:

public array translateActionId ($actionId, $lang="")

Return:

array couple Controller / Action described by $actionId

- Creating a function for retrieving the uniqid of the current Controller or a given Controller.

Prototype:

public string getControllerId($controller="")

Return:

string the uniqid of the wanted Controller (current or another one)

References

  1. SLS_Generic - Generic Class - Used eveywhere in the application