Changeset 2684

Show
Ignore:
Timestamp:
08/20/08 09:34:06 (5 months ago)
Author:
david
Message:

Some refactorings related to [2679], refs #605

Location:
branches/1.0/src/renderer
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • branches/1.0/src/renderer/AgaviEzctemplateRenderer.class.php

    r2679 r2684  
    159159    } 
    160160 
    161     foreach($moreAssigns as $key => &$value) { 
    162       if(isset($this->moreAssignNames[$key])) { 
    163         $key = $this->moreAssignNames[$key]; 
    164       } elseif(array_key_exists($key, $this->moreAssignNames)) { 
    165         // the name is null, which means this one should not be assigned 
    166         continue; 
    167       } 
     161    $finalMoreAssigns =& self::buildMoreAssigns($moreAssigns, $this->moreAssignNames); 
     162    foreach($finalMoreAssigns as $key => &$value) { 
    168163      $engine->send->{$key} = $value; 
    169164    } 
  • branches/1.0/src/renderer/AgaviPhpRenderer.class.php

    r2679 r2684  
    7979    $this->attributes =& $attributes; 
    8080    $this->slots =& $slots; 
    81     $this->moreAssigns = array(); 
    82     foreach($moreAssigns as $moreAssignName => &$moreAssign) { 
    83       if(isset($this->moreAssignNames[$moreAssignName])) { 
    84         $moreAssignName = $this->moreAssignNames[$moreAssignName]; 
    85       } elseif(array_key_exists($moreAssignName, $this->moreAssignNames)) { 
    86         // the name is null, which means this one should not be assigned 
    87         continue; 
    88       } 
    89       $this->moreAssigns[$moreAssignName] =& $moreAssign; 
    90     } 
     81    $this->moreAssigns =& self::buildMoreAssigns($moreAssigns, $this->moreAssignNames); 
    9182    unset($layer, $attributes, $slots, $moreAssigns); 
    9283     
     
    10495    unset($name, $getter); 
    10596     
    106     extract($this->moreAssigns, EXTR_REFS); 
     97    extract($this->moreAssigns, EXTR_REFS | EXTR_PREFIX_INVALID, '_'); 
    10798     
    10899    ob_start(); 
  • branches/1.0/src/renderer/AgaviPhptalRenderer.class.php

    r2679 r2684  
    127127    } 
    128128     
    129     foreach($moreAssigns as $key => $value) { 
    130       if(isset($this->moreAssignNames[$key])) { 
    131         $key = $this->moreAssignNames[$key]; 
    132       } elseif(array_key_exists($key, $this->moreAssignNames)) { 
    133         // the name is null, which means this one should not be assigned 
    134         continue; 
    135       } 
     129    $finalMoreAssigns =& self::buildMoreAssigns($moreAssigns, $this->moreAssignNames); 
     130    foreach($finalMoreAssigns as $key => &$value) { 
    136131      $engine->set($key, $value); 
    137132    } 
  • branches/1.0/src/renderer/AgaviRenderer.class.php

    r2679 r2684  
    163163   
    164164  /** 
     165   * Build an array of "more" assigns. 
     166   * 
     167   * @param      array The values to be assigned. 
     168   * @param      array Assigns name map. 
     169   * 
     170   * @return     array The data. 
     171   * 
     172   * @author     David Zülke <david.zuelke@bitextender.com> 
     173   * @since      1.0.0 
     174   */ 
     175  protected static function &buildMoreAssigns(&$moreAssigns, $moreAssignNames) 
     176  { 
     177    $retval = array(); 
     178     
     179    foreach($moreAssigns as $name => &$value) { 
     180      if(isset($moreAssignNames[$name])) { 
     181        $name = $moreAssignNames[$name]; 
     182      } elseif(array_key_exists($name, $moreAssignNames)) { 
     183        // the name is null, which means this one should not be assigned 
     184        continue; 
     185      } 
     186      $retval[$name] =& $value; 
     187    } 
     188     
     189    return $retval; 
     190  } 
     191   
     192  /** 
    165193   * Render the presentation and return the result. 
    166194   * 
  • branches/1.0/src/renderer/AgaviSmartyRenderer.class.php

    r2679 r2684  
    155155    } 
    156156     
    157     foreach($moreAssigns as $key => &$value) { 
    158       if(isset($this->moreAssignNames[$key])) { 
    159         $key = $this->moreAssignNames[$key]; 
    160       } elseif(array_key_exists($key, $this->moreAssignNames)) { 
    161         // the name is null, which means this one should not be assigned 
    162         continue; 
    163       } 
     157    $finalMoreAssigns =& self::buildMoreAssigns($moreAssigns, $this->moreAssignNames); 
     158    foreach($finalMoreAssigns as $key => &$value) { 
    164159      $engine->assign_by_ref($key, $value); 
    165160    }