Example #1
0
 /**
  * (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);
     }
 }
Example #2
0
 /**
  * (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();
         }
     }
 }
Example #3
0
 /**
  * (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();
         }
     }
 }
Example #4
0
 /**
  * (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);
 }
Example #5
0
 /**
  * (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);
         }
     }
 }
Example #6
0
 /**
  * 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();
         }
     }
 }