mirror of
https://github.com/Mibew/mibew.git
synced 2025-04-25 15:56:07 +03:00
Create a base class for jsAssets and cssAssets helpers
This commit is contained in:
parent
5b09b3e52c
commit
00bba6c05a
@ -0,0 +1,123 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* This file is a part of Mibew Messenger.
|
||||||
|
*
|
||||||
|
* Copyright 2005-2014 the original author or authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Mibew\Handlebars\Helper;
|
||||||
|
|
||||||
|
use Handlebars\Context;
|
||||||
|
use Handlebars\Helper as HelperInterface;
|
||||||
|
use Handlebars\SafeString;
|
||||||
|
use Handlebars\Template;
|
||||||
|
use Mibew\Asset\AssetManagerAwareInterface;
|
||||||
|
use Mibew\Asset\AssetManagerInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contains for basic functionality for all helpers which renders assets lists.
|
||||||
|
*/
|
||||||
|
abstract class AbstractAssetsHelper implements HelperInterface, AssetManagerAwareInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var AssetManagerInterface|null
|
||||||
|
*/
|
||||||
|
protected $manager = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor.
|
||||||
|
*
|
||||||
|
* @param AssetUrlGeneratorInterface $manager An instance of Asset Manager.
|
||||||
|
*/
|
||||||
|
public function __construct(AssetManagerInterface $manager)
|
||||||
|
{
|
||||||
|
$this->manager = $manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getAssetManager()
|
||||||
|
{
|
||||||
|
return $this->manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function setAssetManager(AssetManagerInterface $manager)
|
||||||
|
{
|
||||||
|
$this->manager = $manager;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function execute(Template $template, Context $context, $args, $source)
|
||||||
|
{
|
||||||
|
$generator = $this->getAssetManager()->getUrlGenerator();
|
||||||
|
$buffer = array();
|
||||||
|
|
||||||
|
foreach ($this->getAssetsList() as $asset) {
|
||||||
|
switch ($asset['type']) {
|
||||||
|
case AssetManagerInterface::ABSOLUTE_URL:
|
||||||
|
$buffer[] = $this->renderUrl($asset['content']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AssetManagerInterface::RELATIVE_URL:
|
||||||
|
$buffer[] = $this->renderUrl($generator->generate($asset['content']));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AssetManagerInterface::INLINE:
|
||||||
|
$buffer[] = $this->renderContent($asset['content']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new \RuntimeException(sprintf(
|
||||||
|
'Unknown asset type "%s"',
|
||||||
|
$asset['type']
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new SafeString(implode("\n", $buffer));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders URL of an asset.
|
||||||
|
*
|
||||||
|
* @param string $url URL of an asset.
|
||||||
|
* @return string HTML markup.
|
||||||
|
*/
|
||||||
|
abstract protected function renderUrl($url);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renders content of an asset.
|
||||||
|
*
|
||||||
|
* @param string $content Content of an asset.
|
||||||
|
* @return string HTML markup.
|
||||||
|
*/
|
||||||
|
abstract protected function renderContent($content);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves list of assets which should be rendered by the helper.
|
||||||
|
*
|
||||||
|
* @return array List of assets. See
|
||||||
|
* {@link \Mibew\Asset\AssetManagerInterface::getJsAssets()} and
|
||||||
|
* {@link \Mibew\Asset\AssetManagerInterface::getCssAssets()} for details
|
||||||
|
* about array's structure.
|
||||||
|
*/
|
||||||
|
abstract protected function getAssetsList();
|
||||||
|
}
|
@ -19,13 +19,6 @@
|
|||||||
|
|
||||||
namespace Mibew\Handlebars\Helper;
|
namespace Mibew\Handlebars\Helper;
|
||||||
|
|
||||||
use Handlebars\Context;
|
|
||||||
use Handlebars\Helper as HelperInterface;
|
|
||||||
use Handlebars\SafeString;
|
|
||||||
use Handlebars\Template;
|
|
||||||
use Mibew\Asset\AssetManagerAwareInterface;
|
|
||||||
use Mibew\Asset\AssetManagerInterface;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A helper that generates additional CSS list from assets attached to
|
* A helper that generates additional CSS list from assets attached to
|
||||||
* Asset Manager.
|
* Asset Manager.
|
||||||
@ -35,78 +28,19 @@ use Mibew\Asset\AssetManagerInterface;
|
|||||||
* {{cssAssets}}
|
* {{cssAssets}}
|
||||||
* </code>
|
* </code>
|
||||||
*/
|
*/
|
||||||
class CssAssetsHelper implements HelperInterface, AssetManagerAwareInterface
|
class CssAssetsHelper extends AbstractAssetsHelper
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var AssetManagerInterface|null
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected $manager = null;
|
protected function getAssetsList()
|
||||||
|
|
||||||
/**
|
|
||||||
* Class constructor.
|
|
||||||
*
|
|
||||||
* @param AssetUrlGeneratorInterface $manager An instance of Asset Manager.
|
|
||||||
*/
|
|
||||||
public function __construct(AssetManagerInterface $manager)
|
|
||||||
{
|
{
|
||||||
$this->manager = $manager;
|
return $this->getAssetManager()->getCssAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getAssetManager()
|
|
||||||
{
|
|
||||||
return $this->manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setAssetManager(AssetManagerInterface $manager)
|
|
||||||
{
|
|
||||||
$this->manager = $manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function execute(Template $template, Context $context, $args, $source)
|
|
||||||
{
|
|
||||||
$generator = $this->getAssetManager()->getUrlGenerator();
|
|
||||||
$buffer = array();
|
|
||||||
|
|
||||||
foreach ($this->getAssetManager()->getCssAssets() as $asset) {
|
|
||||||
switch ($asset['type']) {
|
|
||||||
case AssetManagerInterface::ABSOLUTE_URL:
|
|
||||||
$buffer[] = $this->renderUrl($asset['content']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AssetManagerInterface::RELATIVE_URL:
|
|
||||||
$buffer[] = $this->renderUrl($generator->generate($asset['content']));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AssetManagerInterface::INLINE:
|
|
||||||
$buffer[] = $this->renderContent($asset['content']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
throw new \RuntimeException(sprintf(
|
|
||||||
'Unknown asset type "%s"',
|
|
||||||
$asset['type']
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SafeString(implode("\n", $buffer));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renders URL of an asset.
|
|
||||||
*
|
|
||||||
* @param string $url URL of an asset.
|
|
||||||
* @return string HTML markup.
|
|
||||||
*/
|
|
||||||
protected function renderUrl($url)
|
protected function renderUrl($url)
|
||||||
{
|
{
|
||||||
return sprintf(
|
return sprintf(
|
||||||
@ -116,10 +50,7 @@ class CssAssetsHelper implements HelperInterface, AssetManagerAwareInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders content of an asset.
|
* {@inheritdoc}
|
||||||
*
|
|
||||||
* @param string $content Content of an asset.
|
|
||||||
* @return string HTML markup.
|
|
||||||
*/
|
*/
|
||||||
protected function renderContent($content)
|
protected function renderContent($content)
|
||||||
{
|
{
|
||||||
|
@ -19,13 +19,6 @@
|
|||||||
|
|
||||||
namespace Mibew\Handlebars\Helper;
|
namespace Mibew\Handlebars\Helper;
|
||||||
|
|
||||||
use Handlebars\Context;
|
|
||||||
use Handlebars\Helper as HelperInterface;
|
|
||||||
use Handlebars\SafeString;
|
|
||||||
use Handlebars\Template;
|
|
||||||
use Mibew\Asset\AssetManagerAwareInterface;
|
|
||||||
use Mibew\Asset\AssetManagerInterface;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A helper that generates additional JavaSctipts list from assets attached to
|
* A helper that generates additional JavaSctipts list from assets attached to
|
||||||
* Asset Manager.
|
* Asset Manager.
|
||||||
@ -35,78 +28,19 @@ use Mibew\Asset\AssetManagerInterface;
|
|||||||
* {{jsAssets}}
|
* {{jsAssets}}
|
||||||
* </code>
|
* </code>
|
||||||
*/
|
*/
|
||||||
class JsAssetsHelper implements HelperInterface, AssetManagerAwareInterface
|
class JsAssetsHelper extends AbstractAssetsHelper
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var AssetManagerInterface|null
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
protected $manager = null;
|
protected function getAssetsList()
|
||||||
|
|
||||||
/**
|
|
||||||
* Class constructor.
|
|
||||||
*
|
|
||||||
* @param AssetUrlGeneratorInterface $manager An instance of Asset Manager.
|
|
||||||
*/
|
|
||||||
public function __construct(AssetManagerInterface $manager)
|
|
||||||
{
|
{
|
||||||
$this->manager = $manager;
|
return $this->getAssetManager()->getJsAssets();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
*/
|
*/
|
||||||
public function getAssetManager()
|
|
||||||
{
|
|
||||||
return $this->manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function setAssetManager(AssetManagerInterface $manager)
|
|
||||||
{
|
|
||||||
$this->manager = $manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritdoc}
|
|
||||||
*/
|
|
||||||
public function execute(Template $template, Context $context, $args, $source)
|
|
||||||
{
|
|
||||||
$generator = $this->getAssetManager()->getUrlGenerator();
|
|
||||||
$buffer = array();
|
|
||||||
|
|
||||||
foreach ($this->getAssetManager()->getJsAssets() as $asset) {
|
|
||||||
switch ($asset['type']) {
|
|
||||||
case AssetManagerInterface::ABSOLUTE_URL:
|
|
||||||
$buffer[] = $this->renderUrl($asset['content']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AssetManagerInterface::RELATIVE_URL:
|
|
||||||
$buffer[] = $this->renderUrl($generator->generate($asset['content']));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AssetManagerInterface::INLINE:
|
|
||||||
$buffer[] = $this->renderContent($asset['content']);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
throw new \RuntimeException(sprintf(
|
|
||||||
'Unknown asset type "%s"',
|
|
||||||
$asset['type']
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SafeString(implode("\n", $buffer));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Renders URL of an asset.
|
|
||||||
*
|
|
||||||
* @param string $url URL of an asset.
|
|
||||||
* @return string HTML markup.
|
|
||||||
*/
|
|
||||||
protected function renderUrl($url)
|
protected function renderUrl($url)
|
||||||
{
|
{
|
||||||
return sprintf(
|
return sprintf(
|
||||||
@ -116,10 +50,7 @@ class JsAssetsHelper implements HelperInterface, AssetManagerAwareInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders content of an asset.
|
* {@inheritdoc}
|
||||||
*
|
|
||||||
* @param string $content Content of an asset.
|
|
||||||
* @return string HTML markup.
|
|
||||||
*/
|
*/
|
||||||
protected function renderContent($content)
|
protected function renderContent($content)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user