From 1e9c9f8b8c62de04cc0debe7d4aefd44df9e102a Mon Sep 17 00:00:00 2001 From: Diego Esclapez Date: Tue, 4 Sep 2012 13:13:40 +0200 Subject: [PATCH 1/2] Adding support to keyframes --- lib/Sabberworm/CSS/CSSList/KeyFrame.php | 40 +++++++++++++++++++++++++ lib/Sabberworm/CSS/Parser.php | 12 +++++++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 lib/Sabberworm/CSS/CSSList/KeyFrame.php diff --git a/lib/Sabberworm/CSS/CSSList/KeyFrame.php b/lib/Sabberworm/CSS/CSSList/KeyFrame.php new file mode 100644 index 00000000..8936e4b7 --- /dev/null +++ b/lib/Sabberworm/CSS/CSSList/KeyFrame.php @@ -0,0 +1,40 @@ +vendorKeyFrame = null; + $this->animationName = null; + } + + public function setVendorKeyFrame($vendorKeyFrame) { + $this->vendorKeyFrame = $vendorKeyFrame; + } + + public function getVendorKeyFrame() { + return $this->vendorKeyFrame; + } + + public function setAnimationName($animationName) { + $this->animationName = $animationName; + } + + public function getAnimationName() { + return $this->animationName; + } + + public function __toString() { + $sResult = "@{$this->vendorKeyFrame} {$this->animationName} {"; + $sResult .= parent::__toString(); + $sResult .= '}'; + return $sResult; + } + +} diff --git a/lib/Sabberworm/CSS/Parser.php b/lib/Sabberworm/CSS/Parser.php index e32eb808..7cb3cdc1 100644 --- a/lib/Sabberworm/CSS/Parser.php +++ b/lib/Sabberworm/CSS/Parser.php @@ -5,6 +5,7 @@ use Sabberworm\CSS\CSSList\CSSList; use Sabberworm\CSS\CSSList\Document; use Sabberworm\CSS\CSSList\MediaQuery; +use Sabberworm\CSS\CSSList\Keyframe; use Sabberworm\CSS\Property\Import; use Sabberworm\CSS\Property\Charset; use Sabberworm\CSS\RuleSet\AtRule; @@ -88,7 +89,16 @@ private function parseAtRule() { $this->consume('@'); $sIdentifier = $this->parseIdentifier(); $this->consumeWhiteSpace(); - if ($sIdentifier === 'media') { + if($sIdentifier == 'keyframes' || $sIdentifier == '-webkit-keyframes' || $sIdentifier == '-moz-keyframes' || $sIdentifier == '-o-keyframes') { + $oResult = new KeyFrame(); + $oResult->setVendorKeyFrame($sIdentifier); + $oResult->setAnimationName(trim($this->consumeUntil('{'))); + $this->consume('{'); + $this->consumeWhiteSpace(); + $this->parseList($oResult); + return $oResult; + + } else if ($sIdentifier === 'media') { $oResult = new MediaQuery(); $oResult->setQuery(trim($this->consumeUntil('{'))); $this->consume('{'); From 5037bc97314ab8289647b6dd5347f3cc97c7b371 Mon Sep 17 00:00:00 2001 From: diegoembarcadero Date: Mon, 15 Oct 2012 17:44:59 +0300 Subject: [PATCH 2/2] Update lib/Sabberworm/CSS/Parser.php --- lib/Sabberworm/CSS/Parser.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Sabberworm/CSS/Parser.php b/lib/Sabberworm/CSS/Parser.php index 7cb3cdc1..09890402 100644 --- a/lib/Sabberworm/CSS/Parser.php +++ b/lib/Sabberworm/CSS/Parser.php @@ -89,7 +89,7 @@ private function parseAtRule() { $this->consume('@'); $sIdentifier = $this->parseIdentifier(); $this->consumeWhiteSpace(); - if($sIdentifier == 'keyframes' || $sIdentifier == '-webkit-keyframes' || $sIdentifier == '-moz-keyframes' || $sIdentifier == '-o-keyframes') { + if($sIdentifier == '-webkit-keyframes' || $sIdentifier == '-moz-keyframes' || $sIdentifier == '-ms-keyframes' || $sIdentifier == '-o-keyframes' || $sIdentifier == 'keyframes') { $oResult = new KeyFrame(); $oResult->setVendorKeyFrame($sIdentifier); $oResult->setAnimationName(trim($this->consumeUntil('{')));