/** * (non-PHPdoc) * @see \Simplify\Form\Component::onInjectQueryParams() */ public function onInjectQueryParams(\Simplify\Form\Action $action, &$params) { parent::onInjectQueryParams($action, $params); $value = $this->getValue(); if (!empty($value)) { $name = $this->getFieldName(); $params[\Simplify\Db\QueryParameters::WHERE][] = \Simplify\Db\QueryObject::buildIn($name, $value); } }
/** * (non-PHPdoc) * * @see Action::onLoadData() */ protected function onLoadData() { $elements = $this->getElements(); $id = $this->form->getId(); $pk = $this->form->getPrimaryKey(); $params = array(); $params[QueryParameters::SELECT][] = $pk; $params[QueryParameters::WHERE][] = QueryObject::buildIn($pk, $id); $elements->rewind(); while ($elements->valid()) { $element = $elements->current(); $element->onInjectQueryParams($this, $params); $elements->next(); } foreach ($this->form->getFilters() as $filter) { $filter->onInjectQueryParams($this, $params); } $data = $this->repository()->findAll($params); $this->formData = array(); foreach ($data as $index => &$row) { $this->formData[$index] = array(); $this->formData[$index][Form::ID] = $row[$pk]; $this->formData[$index][$pk] = $row[$pk]; $elements->rewind(); while ($elements->valid()) { $element = $elements->current(); $element->onLoadData($this, $this->formData[$index], $row); $elements->next(); } } }
/** * (non-PHPdoc) * * @see \Simplify\Form\Action::onLoadData() */ protected function onLoadData() { $elements = $this->getElements(); $id = $this->form->getId(); $pk = $this->form->getPrimaryKey(); $label = $this->form->getLabel(); $params = array(); $params[\Simplify\Db\QueryParameters::SELECT][] = $pk; $params[\Simplify\Db\QueryParameters::SELECT][] = $label; $params[\Simplify\Db\QueryParameters::WHERE][] = \Simplify\Db\QueryObject::buildIn($pk, $id); while ($elements->valid()) { $element = $elements->current(); $element->onInjectQueryParams($this, $params); $elements->next(); } $data = $this->repository()->findAll($params); $this->formData = array(); foreach ($data as $index => $row) { $this->formData[$index] = array(); $this->formData[$index][\Simplify\Form::ID] = $row[$pk]; $this->formData[$index]['label'] = $label == $pk ? $row[$label] : $row[$label] . ' (' . $row[$pk] . ')'; $elements->rewind(); while ($elements->valid()) { $element = $elements->current(); $element->onLoadData($this, $this->formData[$index], $row); $elements->next(); } } }
/** * (non-PHPdoc) * @see \Simplify\Form\Element::onInjectQueryParams() */ public function onInjectQueryParams(\Simplify\Form\Action $action, &$params) { $params[\Simplify\Db\QueryParameters::SELECT][] = $this->getFieldName(); $params[\Simplify\Db\QueryParameters::WHERE][] = \Simplify\Db\QueryObject::buildIn($this->getFieldName(), $this->value); }
/** * (non-PHPdoc) * @see \Simplify\Form\Component::onAfterDelete() */ public function onAfterDelete(\Simplify\Form\Action $action, &$data) { if (empty($data[$this->getName()])) { return; } $pk = $this->getPrimaryKey(); $fk = $this->getForeignKeyColumn(); $id = $data[$this->getReferenceColumn()]; $elements = $this->getElements($action); if ($this->deletePolicy == self::CASCADE) { $params = array(); $params[\Simplify\Db\QueryParameters::WHERE][] = \Simplify\Db\QueryObject::buildIn($fk, $id); $this->repository()->deleteAll($params); foreach ($data[$this->getName()] as $index => $row) { while ($elements->valid()) { $elements->current()->onAfterDelete($action, $row); $elements->next(); } } } elseif ($this->deletePolicy == self::SETNULL) { foreach ($data[$this->getName()] as $index => $row) { $_row = array($pk => $row[\Simplify\Form::ID], $fk => null); $this->repository()->save($_row); } } }
/** * Delete data from repository */ protected function onDelete() { $elements = $this->getElements(); foreach ($this->formData as $row) { $elements->rewind(); while ($elements->valid()) { $element = $elements->current(); $element->onBeforeDelete($this, $row); $elements->next(); } } $id = $this->form->getId(); $pk = $this->form->getPrimaryKey(); $params = array(); $params[\Simplify\Db\QueryParameters::WHERE][] = \Simplify\Db\QueryObject::buildIn($pk, $id); $this->repository()->deleteAll($params); foreach ($this->formData as $row) { $elements->rewind(); while ($elements->valid()) { $element = $elements->current(); $element->onAfterDelete($this, $row); $elements->next(); } } }