/** * Class Constructor * @param $name widget's name * @param $database database name * @param $model model class name * @param $key table field to be used as key in the combo * @param $value table field to be listed in the combo * @param $ordercolumn column to order the fields (optional) * @param array $filter TFilter (optional) By Alexandre * @param array $expresione TExpression (opcional) by Alexandre */ public function __construct($name, $database, $model, $key, $value, $ordercolumn = NULL, $filter = NULL, $expression = NULL) { new TSession(); // executes the parent class constructor parent::__construct($name); // carrega objetos do banco de dados TTransaction::open($database); // instancia um repositório de Estado $repository = new TRepository($model); $criteria = new TCriteria(); $criteria->setProperty('order', isset($ordercolumn) ? $ordercolumn : $key); if ($filter) { foreach ($filter as $fil) { if ($expression) { foreach ($expression as $ex) { $criteria->add($fil, $ex); } } else { $criteria->add($fil); } } } // carrega todos objetos $collection = $repository->load($criteria); // adiciona objetos na combo if ($collection) { $items = array(); foreach ($collection as $object) { $items[$object->{$key}] = $object->{$value}; } parent::addItems($items); } TTransaction::close(); }
/** * Class Constructor * @param $name widget's name * @param $database database name * @param $model model class name * @param $key table field to be used as key in the combo * @param $value table field to be listed in the combo * @param $ordercolumn column to order the fields (optional) * @param $criteria criteria (TCriteria object) to filter the model (optional) */ public function __construct($name, $database, $model, $key, $value, $ordercolumn = NULL, TCriteria $criteria = NULL) { // executes the parent class constructor parent::__construct($name); if (empty($database)) { throw new Exception(AdiantiCoreTranslator::translate('The parameter (^1) of ^2 is required', 'database', __CLASS__)); } if (empty($model)) { throw new Exception(AdiantiCoreTranslator::translate('The parameter (^1) of ^2 is required', 'model', __CLASS__)); } if (empty($key)) { throw new Exception(AdiantiCoreTranslator::translate('The parameter (^1) of ^2 is required', 'key', __CLASS__)); } if (empty($value)) { throw new Exception(AdiantiCoreTranslator::translate('The parameter (^1) of ^2 is required', 'value', __CLASS__)); } // carrega objetos do banco de dados TTransaction::open($database); // instancia um repositório de Estado $repository = new TRepository($model); if (is_null($criteria)) { $criteria = new TCriteria(); } $criteria->setProperty('order', isset($ordercolumn) ? $ordercolumn : $key); // carrega todos objetos $collection = $repository->load($criteria, FALSE); // adiciona objetos na combo if ($collection) { $items = array(); foreach ($collection as $object) { if (is_array($value)) { foreach ($value as $k => $v) { if ($k == 0) { $items[$object->{$key}] = str_pad($object->{$v}, 3, 0, STR_PAD_LEFT); } else { $items[$object->{$key}] .= ' - ' . $object->{$v}; } } } else { $items[$object->{$key}] = $object->{$value}; } } parent::addItems($items); } TTransaction::close(); }
/** * Class Constructor * @param $name widget's name * @param $database database name * @param $model model class name * @param $key table field to be used as key in the combo * @param $value table field to be listed in the combo */ public function __construct($name, $database, $model, $key, $value) { // executes the parent class constructor parent::__construct($name); // carrega objetos do banco de dados TTransaction::open($database); // instancia um repositório de Estado $repository = new TRepository($model); $criteria = new TCriteria(); $criteria->setProperty('order', $key); // carrega todos objetos $collection = $repository->load($criteria); // adiciona objetos na combo if ($collection) { $items = array(); foreach ($collection as $object) { $items[$object->{$key}] = $object->{$value}; } parent::addItems($items); } TTransaction::close(); }