getAnimations() public method

Get collection of animations
public getAnimations ( ) : Animation[]
return PhpOffice\PhpPresentation\Slide\Animation[]
Example #1
0
 public function testAnimations()
 {
     $oStub = $this->getMockForAbstractClass('PhpOffice\\PhpPresentation\\Slide\\Animation');
     $object = new Slide();
     $this->assertInternalType('array', $object->getAnimations());
     $this->assertCount(0, $object->getAnimations());
     $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide', $object->addAnimation($oStub));
     $this->assertInternalType('array', $object->getAnimations());
     $this->assertCount(1, $object->getAnimations());
     $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide', $object->setAnimations());
     $this->assertInternalType('array', $object->getAnimations());
     $this->assertCount(0, $object->getAnimations());
     $this->assertInstanceOf('PhpOffice\\PhpPresentation\\Slide', $object->setAnimations(array($oStub)));
     $this->assertInternalType('array', $object->getAnimations());
     $this->assertCount(1, $object->getAnimations());
 }
Example #2
0
 /**
  * @param XMLWriter $objWriter
  * @param Slide $oSlide
  */
 protected function writeSlideAnimations(XMLWriter $objWriter, Slide $oSlide)
 {
     $arrayAnimations = $oSlide->getAnimations();
     if (empty($arrayAnimations)) {
         return;
     }
     // Variables
     $shapeId = 1;
     $idCount = 1;
     $hashToIdMap = array();
     $arrayAnimationIds = array();
     foreach ($oSlide->getShapeCollection() as $shape) {
         $hashToIdMap[$shape->getHashCode()] = ++$shapeId;
     }
     foreach ($arrayAnimations as $oAnimation) {
         foreach ($oAnimation->getShapeCollection() as $oShape) {
             $arrayAnimationIds[] = $hashToIdMap[$oShape->getHashCode()];
         }
     }
     // p:timing
     $objWriter->startElement('p:timing');
     // p:timing/p:tnLst
     $objWriter->startElement('p:tnLst');
     // p:timing/p:tnLst/p:par
     $objWriter->startElement('p:par');
     // p:timing/p:tnLst/p:par/p:cTn
     $objWriter->startElement('p:cTn');
     $objWriter->writeAttribute('id', $idCount++);
     $objWriter->writeAttribute('dur', 'indefinite');
     $objWriter->writeAttribute('restart', 'never');
     $objWriter->writeAttribute('nodeType', 'tmRoot');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst
     $objWriter->startElement('p:childTnLst');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq
     $objWriter->startElement('p:seq');
     $objWriter->writeAttribute('concurrent', '1');
     $objWriter->writeAttribute('nextAc', 'seek');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn
     $objWriter->startElement('p:cTn');
     $objWriter->writeAttribute('id', $idCount++);
     $objWriter->writeAttribute('dur', 'indefinite');
     $objWriter->writeAttribute('nodeType', 'mainSeq');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst
     $objWriter->startElement('p:childTnLst');
     // Each animation has multiple shapes
     foreach ($arrayAnimations as $oAnimation) {
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par
         $objWriter->startElement('p:par');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn
         $objWriter->startElement('p:cTn');
         $objWriter->writeAttribute('id', $idCount++);
         $objWriter->writeAttribute('fill', 'hold');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:stCondLst
         $objWriter->startElement('p:stCondLst');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:stCondLst/p:cond
         $objWriter->startElement('p:cond');
         $objWriter->writeAttribute('delay', 'indefinite');
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn\##p:stCondLst
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst
         $objWriter->startElement('p:childTnLst');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par
         $objWriter->startElement('p:par');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn
         $objWriter->startElement('p:cTn');
         $objWriter->writeAttribute('id', $idCount++);
         $objWriter->writeAttribute('fill', 'hold');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:stCondLst
         $objWriter->startElement('p:stCondLst');
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:stCondLst/p:cond
         $objWriter->startElement('p:cond');
         $objWriter->writeAttribute('delay', '0');
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn\##p:stCondLst
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst
         $objWriter->startElement('p:childTnLst');
         $firstAnimation = true;
         foreach ($oAnimation->getShapeCollection() as $oShape) {
             $nodeType = $firstAnimation ? 'clickEffect' : 'withEffect';
             $shapeId = $hashToIdMap[$oShape->getHashCode()];
             // p:par
             $objWriter->startElement('p:par');
             // p:par/p:cTn
             $objWriter->startElement('p:cTn');
             $objWriter->writeAttribute('id', $idCount++);
             $objWriter->writeAttribute('presetID', '1');
             $objWriter->writeAttribute('presetClass', 'entr');
             $objWriter->writeAttribute('fill', 'hold');
             $objWriter->writeAttribute('presetSubtype', '0');
             $objWriter->writeAttribute('grpId', '0');
             $objWriter->writeAttribute('nodeType', $nodeType);
             // p:par/p:cTn/p:stCondLst
             $objWriter->startElement('p:stCondLst');
             // p:par/p:cTn/p:stCondLst/p:cond
             $objWriter->startElement('p:cond');
             $objWriter->writeAttribute('delay', '0');
             $objWriter->endElement();
             // p:par/p:cTn\##p:stCondLst
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst
             $objWriter->startElement('p:childTnLst');
             // p:par/p:cTn/p:childTnLst/p:set
             $objWriter->startElement('p:set');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr
             $objWriter->startElement('p:cBhvr');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:cTn
             $objWriter->startElement('p:cTn');
             $objWriter->writeAttribute('id', $idCount++);
             $objWriter->writeAttribute('dur', '1');
             $objWriter->writeAttribute('fill', 'hold');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:cTn/p:stCondLst
             $objWriter->startElement('p:stCondLst');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:cTn/p:stCondLst/p:cond
             $objWriter->startElement('p:cond');
             $objWriter->writeAttribute('delay', '0');
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:cTn\##p:stCondLst
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr\##p:cTn
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl
             $objWriter->startElement('p:tgtEl');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:tgtEl/p:spTgt
             $objWriter->startElement('p:spTgt');
             $objWriter->writeAttribute('spid', $shapeId);
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr\##p:tgtEl
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:attrNameLst
             $objWriter->startElement('p:attrNameLst');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr/p:attrNameLst/p:attrName
             $objWriter->writeElement('p:attrName', 'style.visibility');
             // p:par/p:cTn/p:childTnLst/p:set/p:cBhvr\##p:attrNameLst
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set\##p:cBhvr
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set/p:to
             $objWriter->startElement('p:to');
             // p:par/p:cTn/p:childTnLst/p:set/p:to/p:strVal
             $objWriter->startElement('p:strVal');
             $objWriter->writeAttribute('val', 'visible');
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst/p:set\##p:to
             $objWriter->endElement();
             // p:par/p:cTn/p:childTnLst\##p:set
             $objWriter->endElement();
             // p:par/p:cTn\##p:childTnLst
             $objWriter->endElement();
             // p:par\##p:cTn
             $objWriter->endElement();
             // ##p:par
             $objWriter->endElement();
             $firstAnimation = false;
         }
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par/p:cTn\##p:childTnLst
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst/p:par\##p:cTn
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn/p:childTnLst\##p:par
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par/p:cTn\##p:childTnLst
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst/p:par\##p:cTn
         $objWriter->endElement();
         // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn/p:childTnLst\##p:par
         $objWriter->endElement();
     }
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:cTn\##p:childTnLst
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq\##p:cTn
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:prevCondLst
     $objWriter->startElement('p:prevCondLst');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:prevCondLst/p:cond
     $objWriter->startElement('p:cond');
     $objWriter->writeAttribute('evt', 'onPrev');
     $objWriter->writeAttribute('delay', '0');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:prevCondLst/p:cond/p:tgtEl
     $objWriter->startElement('p:tgtEl');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:prevCondLst/p:cond/p:tgtEl/p:sldTgt
     $objWriter->writeElement('p:sldTgt', null);
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:prevCondLst/p:cond\##p:tgtEl
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:prevCondLst\##p:cond
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq\##p:prevCondLst
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:nextCondLst
     $objWriter->startElement('p:nextCondLst');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:nextCondLst/p:cond
     $objWriter->startElement('p:cond');
     $objWriter->writeAttribute('evt', 'onNext');
     $objWriter->writeAttribute('delay', '0');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:nextCondLst/p:cond/p:tgtEl
     $objWriter->startElement('p:tgtEl');
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:nextCondLst/p:cond/p:tgtEl/p:sldTgt
     $objWriter->writeElement('p:sldTgt', null);
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:nextCondLst/p:cond\##p:tgtEl
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq/p:nextCondLst\##p:cond
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst/p:seq\##p:nextCondLst
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn/p:childTnLst\##p:seq
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par/p:cTn\##p:childTnLst
     $objWriter->endElement();
     // p:timing/p:tnLst/p:par\##p:cTn
     $objWriter->endElement();
     // p:timing/p:tnLst\##p:par
     $objWriter->endElement();
     // p:timing\##p:tnLst
     $objWriter->endElement();
     // p:timing/p:bldLst
     $objWriter->startElement('p:bldLst');
     // Add in ids of all shapes in this slides animations
     foreach ($arrayAnimationIds as $id) {
         // p:timing/p:bldLst/p:bldP
         $objWriter->startElement('p:bldP');
         $objWriter->writeAttribute('spid', $id);
         $objWriter->writeAttribute('grpId', 0);
         $objWriter->endELement();
     }
     // p:timing\##p:bldLst
     $objWriter->endElement();
     // ##p:timing
     $objWriter->endElement();
 }