diff options
Diffstat (limited to 'data/generator/sfPropelAdmin/mailadmin/template/actions')
| -rw-r--r-- | data/generator/sfPropelAdmin/mailadmin/template/actions/actions.class.php | 435 | 
1 files changed, 435 insertions, 0 deletions
diff --git a/data/generator/sfPropelAdmin/mailadmin/template/actions/actions.class.php b/data/generator/sfPropelAdmin/mailadmin/template/actions/actions.class.php new file mode 100644 index 0000000..70f94f0 --- /dev/null +++ b/data/generator/sfPropelAdmin/mailadmin/template/actions/actions.class.php @@ -0,0 +1,435 @@ +[?php + +/** + * <?php echo $this->getGeneratedModuleName() ?> actions. + * + * @package    ##PROJECT_NAME## + * @subpackage <?php echo $this->getGeneratedModuleName() ?> + + * @author     Fabien Potencier <fabien.potencier@symfony-project.com> + * @version    SVN: $Id: actions.class.php 3501 2007-02-18 10:28:17Z fabien $ + */ +class <?php echo $this->getGeneratedModuleName() ?>Actions extends sfActions +{ +  public function executeIndex() +  { +    return $this->forward('<?php echo $this->getModuleName() ?>', 'list'); +  } + +  public function executeList() +  { +    $this->processSort(); + +    $this->processFilters(); + +<?php if ($this->getParameterValue('list.filters')): ?> +    $this->filters = $this->getUser()->getAttributeHolder()->getAll('sf_admin/<?php echo $this->getSingularName() ?>/filters'); +<?php endif ?> + +    // pager +    $this->pager = new sfPropelPager('<?php echo $this->getClassName() ?>', <?php echo $this->getParameterValue('list.max_per_page', 20) ?>); +    $c = new Criteria(); +    $this->addSortCriteria($c); +    $this->addFiltersCriteria($c); +    $this->pager->setCriteria($c); +    $this->pager->setPage($this->getRequestParameter('page', 1)); +<?php if ($this->getParameterValue('list.peer_method')): ?> +    $this->pager->setPeerMethod('<?php echo $this->getParameterValue('list.peer_method') ?>'); +<?php endif ?> +<?php if ($this->getParameterValue('list.peer_count_method')): ?> +    $this->pager->setPeerCountMethod('<?php echo $this->getParameterValue('list.peer_count_method') ?>'); +<?php endif ?> +    $this->pager->init(); +  } + +  public function executeCreate() +  { +    return $this->forward('<?php echo $this->getModuleName() ?>', 'edit'); +  } + +  public function executeSave() +  { +    return $this->forward('<?php echo $this->getModuleName() ?>', 'edit'); +  } + +  public function executeEdit() +  { +    $this-><?php echo $this->getSingularName() ?> = $this->get<?php echo $this->getClassName() ?>OrCreate(); + +    if ($this->getRequest()->getMethod() == sfRequest::POST) +    { +      $this->update<?php echo $this->getClassName() ?>FromRequest(); + +      $this->save<?php echo $this->getClassName() ?>($this-><?php echo $this->getSingularName() ?>); + +      $this->setFlash('notice', 'Your modifications have been saved'); + +      if ($this->getRequestParameter('save_and_add')) +      { +        return $this->redirect('<?php echo $this->getModuleName() ?>/create'); +      } +      else if ($this->getRequestParameter('save_and_list')) +      { +        return $this->redirect('<?php echo $this->getModuleName() ?>/list'); +      } +      else +      { +        return $this->redirect('<?php echo $this->getModuleName() ?>/edit?<?php echo $this->getPrimaryKeyUrlParams('this->') ?>); +      } +    } +    else +    { +      $this->labels = $this->getLabels(); +    } +  } + +  public function executeDelete() +  { +    $this-><?php echo $this->getSingularName() ?> = <?php echo $this->getClassName() ?>Peer::retrieveByPk(<?php echo $this->getRetrieveByPkParamsForAction(40) ?>); +    $this->forward404Unless($this-><?php echo $this->getSingularName() ?>); + +    try +    { +      $this->delete<?php echo $this->getClassName() ?>($this-><?php echo $this->getSingularName() ?>); +    } +    catch (PropelException $e) +    { +      $this->getRequest()->setError('delete', 'Could not delete the selected <?php echo sfInflector::humanize($this->getSingularName()) ?>. Make sure it does not have any associated items.'); +      return $this->forward('<?php echo $this->getModuleName() ?>', 'list'); +    } + +<?php foreach ($this->getColumnCategories('edit.display') as $category): ?> +<?php foreach ($this->getColumns('edit.display', $category) as $name => $column): ?> +<?php $input_type = $this->getParameterValue('edit.fields.'.$column->getName().'.type') ?> +<?php if ($input_type == 'admin_input_file_tag'): ?> +<?php $upload_dir = $this->replaceConstants($this->getParameterValue('edit.fields.'.$column->getName().'.upload_dir')) ?> +      $currentFile = sfConfig::get('sf_upload_dir')."/<?php echo $upload_dir ?>/".$this-><?php echo $this->getSingularName() ?>->get<?php echo $column->getPhpName() ?>(); +      if (is_file($currentFile)) +      { +        unlink($currentFile); +      } + +<?php endif; ?> +<?php endforeach; ?> +<?php endforeach; ?> +    return $this->redirect('<?php echo $this->getModuleName() ?>/list'); +  } + +  public function handleErrorEdit() +  { +    $this->preExecute(); +    $this-><?php echo $this->getSingularName() ?> = $this->get<?php echo $this->getClassName() ?>OrCreate(); +    $this->update<?php echo $this->getClassName() ?>FromRequest(); + +    $this->labels = $this->getLabels(); + +    return sfView::SUCCESS; +  } + +  protected function save<?php echo $this->getClassName() ?>($<?php echo $this->getSingularName() ?>) +  { +    $<?php echo $this->getSingularName() ?>->save(); + +<?php foreach ($this->getColumnCategories('edit.display') as $category): ?> +<?php foreach ($this->getColumns('edit.display', $category) as $name => $column): $type = $column->getCreoleType(); ?> +<?php $name = $column->getName() ?> +<?php if ($column->isPrimaryKey()) continue ?> +<?php $credentials = $this->getParameterValue('edit.fields.'.$column->getName().'.credentials') ?> +<?php $input_type = $this->getParameterValue('edit.fields.'.$column->getName().'.type') ?> +<?php + +$user_params = $this->getParameterValue('edit.fields.'.$column->getName().'.params'); +$user_params = is_array($user_params) ? $user_params : sfToolkit::stringToArray($user_params); +$through_class = isset($user_params['through_class']) ? $user_params['through_class'] : ''; + +?> +<?php if ($through_class): ?> +<?php + +$class = $this->getClassName(); +$related_class = sfPropelManyToMany::getRelatedClass($class, $through_class); +$related_table = constant($related_class.'Peer::TABLE_NAME'); +$middle_table = constant($through_class.'Peer::TABLE_NAME'); +$this_table = constant($class.'Peer::TABLE_NAME'); + +$related_column = sfPropelManyToMany::getRelatedColumn($class, $through_class); +$column = sfPropelManyToMany::getColumn($class, $through_class); + +?> +<?php if ($input_type == 'admin_double_list' || $input_type == 'admin_check_list' || $input_type == 'admin_select_list'): ?> +<?php if ($credentials): $credentials = str_replace("\n", ' ', var_export($credentials, true)) ?> +    if ($this->getUser()->hasCredential(<?php echo $credentials ?>)) +    { +<?php endif; ?> +      // Update many-to-many for "<?php echo $name ?>" +      $c = new Criteria(); +      $c->add(<?php echo $through_class ?>Peer::<?php echo strtoupper($column->getColumnName()) ?>, $<?php echo $this->getSingularName() ?>->getPrimaryKey()); +      <?php echo $through_class ?>Peer::doDelete($c); + +      $ids = $this->getRequestParameter('associated_<?php echo $name ?>'); +      if (is_array($ids)) +      { +        foreach ($ids as $id) +        { +          $<?php echo ucfirst($through_class) ?> = new <?php echo $through_class ?>(); +          $<?php echo ucfirst($through_class) ?>->set<?php echo $column->getPhpName() ?>($<?php echo $this->getSingularName() ?>->getPrimaryKey()); +          $<?php echo ucfirst($through_class) ?>->set<?php echo $related_column->getPhpName() ?>($id); +          $<?php echo ucfirst($through_class) ?>->save(); +        } +      } + +<?php if ($credentials): ?> +    } +<?php endif; ?> +<?php endif; ?> +<?php endif; ?> +<?php endforeach; ?> +<?php endforeach; ?> +  } + +  protected function delete<?php echo $this->getClassName() ?>($<?php echo $this->getSingularName() ?>) +  { +    $<?php echo $this->getSingularName() ?>->delete(); +  } + +  protected function update<?php echo $this->getClassName() ?>FromRequest() +  { +    $<?php echo $this->getSingularName() ?> = $this->getRequestParameter('<?php echo $this->getSingularName() ?>'); + +<?php foreach ($this->getColumnCategories('edit.display') as $category): ?> +<?php foreach ($this->getColumns('edit.display', $category) as $name => $column): $type = $column->getCreoleType(); ?> +<?php $name = $column->getName() ?> +<?php if ($column->isPrimaryKey()) continue ?> +<?php $credentials = $this->getParameterValue('edit.fields.'.$column->getName().'.credentials') ?> +<?php $input_type = $this->getParameterValue('edit.fields.'.$column->getName().'.type') ?> +<?php if ($credentials): $credentials = str_replace("\n", ' ', var_export($credentials, true)) ?> +    if ($this->getUser()->hasCredential(<?php echo $credentials ?>)) +    { +<?php endif; ?> +<?php if ($input_type == 'admin_input_file_tag'): ?> +<?php $upload_dir = $this->replaceConstants($this->getParameterValue('edit.fields.'.$column->getName().'.upload_dir')) ?> +    $currentFile = sfConfig::get('sf_upload_dir')."/<?php echo $upload_dir ?>/".$this-><?php echo $this->getSingularName() ?>->get<?php echo $column->getPhpName() ?>(); +    if (!$this->getRequest()->hasErrors() && isset($<?php echo $this->getSingularName() ?>['<?php echo $name ?>_remove'])) +    { +      $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>(''); +      if (is_file($currentFile)) +      { +        unlink($currentFile); +      } +    } + +    if (!$this->getRequest()->hasErrors() && $this->getRequest()->getFileSize('<?php echo $this->getSingularName() ?>[<?php echo $name ?>]')) +    { +<?php elseif ($type != CreoleTypes::BOOLEAN): ?> +    if (isset($<?php echo $this->getSingularName() ?>['<?php echo $name ?>'])) +    { +<?php endif; ?> +<?php if ($input_type == 'admin_input_file_tag'): ?> +<?php if ($this->getParameterValue('edit.fields.'.$column->getName().'.filename')): ?> +      $fileName = "<?php echo str_replace('"', '\\"', $this->replaceConstants($this->getParameterValue('edit.fields.'.$column->getName().'.filename'))) ?>"; +<?php else: ?> +      $fileName = md5($this->getRequest()->getFileName('<?php echo $this->getSingularName() ?>[<?php echo $name ?>]').time().rand(0, 99999)); +<?php endif ?> +      $ext = $this->getRequest()->getFileExtension('<?php echo $this->getSingularName() ?>[<?php echo $name ?>]'); +      if (is_file($currentFile)) +      { +        unlink($currentFile); +      } +      $this->getRequest()->moveFile('<?php echo $this->getSingularName() ?>[<?php echo $name ?>]', sfConfig::get('sf_upload_dir')."/<?php echo $upload_dir ?>/".$fileName.$ext); +      $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>($fileName.$ext); +<?php elseif ($type == CreoleTypes::DATE || $type == CreoleTypes::TIMESTAMP): ?> +      if ($<?php echo $this->getSingularName() ?>['<?php echo $name ?>']) +      { +        try +        { +          $dateFormat = new sfDateFormat($this->getUser()->getCulture()); +          <?php $inputPattern  = $type == CreoleTypes::DATE ? 'd' : 'g'; ?> +          <?php $outputPattern = $type == CreoleTypes::DATE ? 'i' : 'I'; ?> +          if (!is_array($<?php echo $this->getSingularName() ?>['<?php echo $name ?>'])) +          { +            $value = $dateFormat->format($<?php echo $this->getSingularName() ?>['<?php echo $name ?>'], '<?php echo $outputPattern ?>', $dateFormat->getInputPattern('<?php echo $inputPattern ?>')); +          } +          else +          { +            $value_array = $<?php echo $this->getSingularName() ?>['<?php echo $name ?>']; +            $value = $value_array['year'].'-'.$value_array['month'].'-'.$value_array['day'].(isset($value_array['hour']) ? ' '.$value_array['hour'].':'.$value_array['minute'].(isset($value_array['second']) ? ':'.$value_array['second'] : '') : ''); +          } +          $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>($value); +        } +        catch (sfException $e) +        { +          // not a date +        } +      } +      else +      { +        $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>(null); +      } +<?php elseif ($type == CreoleTypes::BOOLEAN): ?> +    $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>(isset($<?php echo $this->getSingularName() ?>['<?php echo $name ?>']) ? $<?php echo $this->getSingularName() ?>['<?php echo $name ?>'] : 0); +<?php elseif ($column->isForeignKey()): ?> +    $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>($<?php echo $this->getSingularName() ?>['<?php echo $name ?>'] ? $<?php echo $this->getSingularName() ?>['<?php echo $name ?>'] : null); +<?php else: ?> +      $this-><?php echo $this->getSingularName() ?>->set<?php echo $column->getPhpName() ?>($<?php echo $this->getSingularName() ?>['<?php echo $name ?>']); +<?php endif; ?> +<?php if ($type != CreoleTypes::BOOLEAN): ?> +    } +<?php endif; ?> +<?php if ($credentials): ?> +      } +<?php endif; ?> +<?php endforeach; ?> +<?php endforeach; ?> +  } + +  protected function get<?php echo $this->getClassName() ?>OrCreate(<?php echo $this->getMethodParamsForGetOrCreate() ?>) +  { +    if (<?php echo $this->getTestPksForGetOrCreate() ?>) +    { +      $<?php echo $this->getSingularName() ?> = new <?php echo $this->getClassName() ?>(); +    } +    else +    { +      $<?php echo $this->getSingularName() ?> = <?php echo $this->getClassName() ?>Peer::retrieveByPk(<?php echo $this->getRetrieveByPkParamsForGetOrCreate() ?>); + +      $this->forward404Unless($<?php echo $this->getSingularName() ?>); +    } + +    return $<?php echo $this->getSingularName() ?>; +  } + +  protected function processFilters() +  { +<?php if ($this->getParameterValue('list.filters')): ?> +    if ($this->getRequest()->hasParameter('filter')) +    { +      $filters = $this->getRequestParameter('filters'); +<?php foreach ($this->getColumns('list.filters') as $column): $type = $column->getCreoleType() ?> +<?php if ($type == CreoleTypes::DATE || $type == CreoleTypes::TIMESTAMP): ?> +      if (isset($filters['<?php echo $column->getName() ?>']['from']) && $filters['<?php echo $column->getName() ?>']['from'] !== '') +      { +        $filters['<?php echo $column->getName() ?>']['from'] = sfI18N::getTimestampForCulture($filters['<?php echo $column->getName() ?>']['from'], $this->getUser()->getCulture()); +      } +      if (isset($filters['<?php echo $column->getName() ?>']['to']) && $filters['<?php echo $column->getName() ?>']['to'] !== '') +      { +        $filters['<?php echo $column->getName() ?>']['to'] = sfI18N::getTimestampForCulture($filters['<?php echo $column->getName() ?>']['to'], $this->getUser()->getCulture()); +      } +<?php endif; ?> +<?php endforeach; ?> + +      $this->getUser()->getAttributeHolder()->removeNamespace('sf_admin/<?php echo $this->getSingularName() ?>/filters'); +      $this->getUser()->getAttributeHolder()->add($filters, 'sf_admin/<?php echo $this->getSingularName() ?>/filters'); +    } +<?php endif; ?> +  } + +  protected function processSort() +  { +    if ($this->getRequestParameter('sort')) +    { +      $this->getUser()->setAttribute('sort', $this->getRequestParameter('sort'), 'sf_admin/<?php echo $this->getSingularName() ?>/sort'); +      $this->getUser()->setAttribute('type', $this->getRequestParameter('type', 'asc'), 'sf_admin/<?php echo $this->getSingularName() ?>/sort'); +    } + +    if (!$this->getUser()->getAttribute('sort', null, 'sf_admin/<?php echo $this->getSingularName() ?>/sort')) +    { +<?php if ($sort = $this->getParameterValue('list.sort')): ?> +<?php if (is_array($sort)): ?> +      $this->getUser()->setAttribute('sort', '<?php echo $sort[0] ?>', 'sf_admin/<?php echo $this->getSingularName() ?>/sort'); +      $this->getUser()->setAttribute('type', '<?php echo $sort[1] ?>', 'sf_admin/<?php echo $this->getSingularName() ?>/sort'); +<?php else: ?> +      $this->getUser()->setAttribute('sort', '<?php echo $sort ?>', 'sf_admin/<?php echo $this->getSingularName() ?>/sort'); +      $this->getUser()->setAttribute('type', 'asc', 'sf_admin/<?php echo $this->getSingularName() ?>/sort'); +<?php endif; ?> +<?php endif; ?> +    } +  } + +  protected function addFiltersCriteria($c) +  { +<?php if ($this->getParameterValue('list.filters')): ?> +<?php foreach ($this->getColumns('list.filters') as $column): $type = $column->getCreoleType() ?> +<?php if (($column->isPartial() || $column->isComponent()) && $this->getParameterValue('list.fields.'.$column->getName().'.filter_criteria_disabled')) continue ?> +    if (isset($this->filters['<?php echo $column->getName() ?>_is_empty'])) +    { +      $criterion = $c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, ''); +      $criterion->addOr($c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, null, Criteria::ISNULL)); +      $c->add($criterion); +    } +<?php if ($type == CreoleTypes::DATE || $type == CreoleTypes::TIMESTAMP): ?> +    else if (isset($this->filters['<?php echo $column->getName() ?>'])) +    { +      if (isset($this->filters['<?php echo $column->getName() ?>']['from']) && $this->filters['<?php echo $column->getName() ?>']['from'] !== '') +      { +<?php if ($type == CreoleTypes::DATE): ?> +        $criterion = $c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, date('Y-m-d', $this->filters['<?php echo $column->getName() ?>']['from']), Criteria::GREATER_EQUAL); +<?php else: ?> +        $criterion = $c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, $this->filters['<?php echo $column->getName() ?>']['from'], Criteria::GREATER_EQUAL); +<?php endif; ?> +      } +      if (isset($this->filters['<?php echo $column->getName() ?>']['to']) && $this->filters['<?php echo $column->getName() ?>']['to'] !== '') +      { +        if (isset($criterion)) +        { +<?php if ($type == CreoleTypes::DATE): ?> +          $criterion->addAnd($c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, date('Y-m-d', $this->filters['<?php echo $column->getName() ?>']['to']), Criteria::LESS_EQUAL)); +<?php else: ?> +          $criterion->addAnd($c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, $this->filters['<?php echo $column->getName() ?>']['to'], Criteria::LESS_EQUAL)); +<?php endif; ?> +        } +        else +        { +<?php if ($type == CreoleTypes::DATE): ?> +          $criterion = $c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, date('Y-m-d', $this->filters['<?php echo $column->getName() ?>']['to']), Criteria::LESS_EQUAL); +<?php else: ?> +          $criterion = $c->getNewCriterion(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, $this->filters['<?php echo $column->getName() ?>']['to'], Criteria::LESS_EQUAL); +<?php endif; ?> +        } +      } + +      if (isset($criterion)) +      { +        $c->add($criterion); +      } +    } +<?php else: ?> +    else if (isset($this->filters['<?php echo $column->getName() ?>']) && $this->filters['<?php echo $column->getName() ?>'] !== '') +    { +<?php if ($type == CreoleTypes::CHAR || $type == CreoleTypes::VARCHAR || $type == CreoleTypes::LONGVARCHAR): ?> +      $c->add(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, strtr($this->filters['<?php echo $column->getName() ?>'], '*', '%'), Criteria::LIKE); +<?php else: ?> +      $c->add(<?php echo $this->getPeerClassName() ?>::<?php echo strtoupper($column->getName()) ?>, $this->filters['<?php echo $column->getName() ?>']); +<?php endif; ?> +    } +<?php endif; ?> +<?php endforeach; ?> +<?php endif; ?> +  } + +  protected function addSortCriteria($c) +  { +    if ($sort_column = $this->getUser()->getAttribute('sort', null, 'sf_admin/<?php echo $this->getSingularName() ?>/sort')) +    { +      $sort_column = <?php echo $this->getClassName() ?>Peer::translateFieldName($sort_column, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_COLNAME); +      if ($this->getUser()->getAttribute('type', null, 'sf_admin/<?php echo $this->getSingularName() ?>/sort') == 'asc') +      { +        $c->addAscendingOrderByColumn($sort_column); +      } +      else +      { +        $c->addDescendingOrderByColumn($sort_column); +      } +    } +  } + +  protected function getLabels() +  { +    return array( +<?php foreach ($this->getColumnCategories('edit.display') as $category): ?> +<?php foreach ($this->getColumns('edit.display', $category) as $name => $column): ?> +      '<?php echo $this->getSingularName() ?>{<?php echo $column->getName() ?>}' => '<?php $label_name = str_replace("'", "\\'", $this->getParameterValue('edit.fields.'.$column->getName().'.name')); echo $label_name ?><?php if ($label_name): ?>:<?php endif ?>', +<?php endforeach; ?> +<?php endforeach; ?> +    ); +  } +}  | 
