Home / Przykłady

Przykłady

Przykłady



Źródła

<?php

/**
 * example actions.
 *
 * @package    portfolio
 * @subpackage example
 * @author     Piotr Śliwa
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class exampleActions extends psActions
{
  public function 
executeIndex(sfWebRequest $request)
  {
    if(
$request->getParameter('source') == 'controller')
    {
      
$this->source highlight_file(__FILE__true);
    }
    elseif(
$request->getParameter('source') == 'form')
    {
      
$this->source highlight_file(dirname(__FILE__).'/../lib/PageableForm.class.php'true);
    }
  }

  public function 
executePageableForm(sfWebRequest $request)
  {
    
$strategyName $request->getParameter('strategy');

    
$form $this->createForm();
    
    
$strategy $this->createStrategy($strategyName);
    
$form->setPersistanceStrategy($strategy);

    
$this->process($form$request);
    
    
$this->strategyName $strategyName;
    
$this->form $form;
  }

  public function 
executePageableFormConditionalWay(sfWebRequest $request)
  {
    
$strategy $this->createStrategy('session');
    
$form = new PageableForm();
    
$form->setPersistanceStrategy($strategy);

    
$this->process($form$request);

    
$this->form $form;
  }

  private function 
createForm()
  {
    
$form = new psPageableForm();
    
$form->setNameFormat('form[%s]');
    
$form->setUseGlobalNamespace(false);

    
$form1 = new Form1(array(), array(), false);
    
$form->addForm($form1);

    
$form2 = new Form2(array(), array(), false);
    
$form->addForm($form2);
    
    
$form3 = new Form5();
    
$form->addForm($form3);

    return 
$form;
  }

  private function 
createStrategy($strategyName)
  {
    switch(
$strategyName)
    {
      case 
'session':
        
$strategy = new psPageableFormSessionPersistanceStrategy($this->getUser());
        break;
      case 
'database':
        
$strategy = new psPageableFormDatabasePersistanceStrategy($this->getUser());
        break;
      default:
        
$strategy = new psPageableFormPostPersistanceStrategy();
        break;
    }

    return 
$strategy;
  }

  private function 
process(psPageableForm $formsfWebRequest $request)
  {
    
$process = new psPageableFormProcess($form$request, array($this'processValidForm'), array('formParameterName' => 'form'));

    try
    {
      
$process->process();
    }
    catch(
Exception $e)
    {
      
$this->forward404();
    }

    if(
$form->getPersistanceStrategy() instanceof psPageableFormPostPersistanceStrategy)
    {
      
$form->persist();
      
$this->extraFields $form->getPersistanceStrategy()->renderHiddenInputs();
    }
  }

  public function 
processValidForm(psPageableForm $form)
  {
    
//save and redirect
  
}
}

O mnie

Mam na imię Piotr, jestem programistą aplikacji internetowych.

Więcej informacji znajdziesz tutaj oraz na goldenline.pl

Najnowsze wpisy

Odnośniki

php
MySql
symfony framework
Zend Framework
Doctrine ORM
Propel ORM