示例#1
0
 /**
  * Retrieve a specific version
  * @param version   version of text to retrieve
  */
 public function version($version)
 {
     Kohana::$log->add(Kohana::DEBUG, 'Executing Versioned_Sprig::version');
     if ($version < 1) {
         $version = 1;
     } elseif ($version == 'head' or $version > $this->_original['version']) {
         $version = $this->_original['version'];
     }
     foreach ($this->_fields as $field => $object) {
         if ($object instanceof Sprig_Field_Versioned) {
             $revisions = $this->revisions;
             $revision = $revisions->current();
             $text = $this->_original[$field];
             while ($revision->version > $version) {
                 $diff = $revision->diff;
                 $text = Versioned::patch($text, $diff, TRUE);
                 $revision = $revisions->next()->current();
             }
             $this->{$field} = $text;
             $this->version = $version;
         }
     }
 }