- 1
[Opened] JForms and dynamic data through a class
Posted by aeiaco on 11/12/2009 19:11
Another newbie question: I tried to follow the documentation in implementing JForm and a custom class for dynamic filling a control.
test.form.xml contains:
<?xml version="1.0" encoding="utf-8"?>
<form xmlns="http://jelix.org/ns/forms/1.1">
<listbox ref="icona">
<label>Prova</label>
<datasource class="admin~jfd_test" />
</listbox>
</form>
And jfd_test.class.php contains:
class jfd_test implements jIFormsDatasource
{
protected $formId = 0;
protected $datas = array();
function __construct($id)
{
$this->formId = $id;
$this->datas = array (
0 => 'test',
1 => 'test 2',
2 => 'Id = '. $id);
}
public function getData($form)
{
return ($this->datas);
}
public function getLabel($key)
{
if(isset($this->datas[$key]))
return $this->datas[$key];
else
return null;
}
}
I use a main template:
<h2>Test JForm</h2>
{form $form, 'admin~acl:save'}
<h3>{ctrl_label 'icona'}::</h3>
<h4>{ctrl_control 'icona'}</h4>
<div> {formsubmit} </div>
{/form}
Finally, the controller:
class aclCtrl extends jController
{
function index()
{
$rep = $this->getResponse('html');
$form = jForms::create("admin~test", $this->param('id'));
$rep->body->assign( "form", $form );
return $rep;
}
}
Result: it shows the form, correctly filled but stops with the following error:
Fatal error: Call to a member function isReadOnly() on a non-object in /var/www/jelix-1.1.2-dev/lib/jelix/plugins/jforms/html/html.jformsbuilder.php on line 204
Suggestions ?
[Opened] Re: JForms and dynamic data through a class
Posted by laurentj on 11/14/2009 11:44
Hello,
You use an old version of jelix. Try with 1.1.3 version, by replacing the lib/ directory, and don't forget to remove all your files in the temp/yourapp/ directory.
Tell us if the issue is still there.
Note that I'm going to release the 1.1.4 version today or tomorrow.
Edit: 1.1.4 is released ! update ;-)
- 1

