Skip to content

Commit

Permalink
[Model] Move all view logic to an helper
Browse files Browse the repository at this point in the history
  • Loading branch information
GeLoLabs committed Jan 30, 2014
1 parent 26d6a75 commit db93af5
Show file tree
Hide file tree
Showing 23 changed files with 902 additions and 948 deletions.
2 changes: 1 addition & 1 deletion DependencyInjection/IvoryCKEditorExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public function load(array $configs, ContainerBuilder $container)
protected function register(array $config, ContainerBuilder $container)
{
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
foreach (array('helper', 'form') as $service) {
foreach (array('helper', 'form', 'twig') as $service) {
$loader->load($service.'.xml');
}

Expand Down
177 changes: 35 additions & 142 deletions Form/Type/CKEditorType.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@

namespace Ivory\CKEditorBundle\Form\Type;

use Ivory\CKEditorBundle\Helper\AssetsVersionTrimerHelper;
use Ivory\CKEditorBundle\Model\ConfigManagerInterface;
use Ivory\CKEditorBundle\Model\PluginManagerInterface;
use Ivory\CKEditorBundle\Model\StylesSetManagerInterface;
Expand All @@ -21,7 +20,6 @@
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Templating\Helper\CoreAssetsHelper;

/**
* CKEditor type.
Expand Down Expand Up @@ -51,25 +49,16 @@ class CKEditorType extends AbstractType
/** @var \Ivory\CKEditorBundle\Model\TemplateManager*/
protected $templateManager;

/** @var \Symfony\Component\Templating\Helper\CoreAssetsHelper */
protected $assetsHelper;

/** @var \Ivory\CKEditorBundle\Helper\AssetsVersionTrimerHelper */
protected $assetsVersionTrimerHelper;

/**
* Creates a CKEditor type.
*
* @param boolean $enable TRUE => ckeditor,
* FALSE => textarea.
* @param string $basePath The CKEditor base path.
* @param string $jsPath The CKEditor JS path.
* @param \Ivory\CKEditorBundle\Model\ConfigManagerInterface $configManager The config manager.
* @param \Ivory\CKEditorBundle\Model\PluginManagerInterface $pluginManager The plugin manager.
* @param \Ivory\CKEditorBundle\Model\StylesSetManagerInterface $stylesSetManager The styles set manager.
* @param \Ivory\CKEditorBundle\Model\TemplateManagerInterface $templateManager The template manager.
* @param \Symfony\Component\Templating\Helper\CoreAssetsHelper $assetsHelper The assets helper.
* @param \Ivory\CKEditorBundle\Helper\AssetsVersionTrimerHelper $assetsVersionTrimerHelper The version trimer.
* @param boolean $enable The enable flag.
* @param string $basePath The CKEditor base path.
* @param string $jsPath The CKEditor JS path.
* @param \Ivory\CKEditorBundle\Model\ConfigManagerInterface $configManager The config manager.
* @param \Ivory\CKEditorBundle\Model\PluginManagerInterface $pluginManager The plugin manager.
* @param \Ivory\CKEditorBundle\Model\StylesSetManagerInterface $stylesSetManager The styles set manager.
* @param \Ivory\CKEditorBundle\Model\TemplateManagerInterface $templateManager The template manager.
*/
public function __construct(
$enable,
Expand All @@ -78,9 +67,7 @@ public function __construct(
ConfigManagerInterface $configManager,
PluginManagerInterface $pluginManager,
StylesSetManagerInterface $stylesSetManager,
TemplateManagerInterface $templateManager,
CoreAssetsHelper $assetsHelper,
AssetsVersionTrimerHelper $assetsVersionTrimerHelper
TemplateManagerInterface $templateManager
) {
$this->isEnable($enable);
$this->setBasePath($basePath);
Expand All @@ -89,8 +76,6 @@ public function __construct(
$this->setPluginManager($pluginManager);
$this->setStylesSetManager($stylesSetManager);
$this->setTemplateManager($templateManager);
$this->setAssetsHelper($assetsHelper);
$this->setAssetsVersionTrimerHelper($assetsVersionTrimerHelper);
}

/**
Expand Down Expand Up @@ -229,46 +214,6 @@ public function setTemplateManager(TemplateManagerInterface $templateManager)
$this->templateManager = $templateManager;
}

/**
* Gets the assets helper.
*
* @return \Symfony\Component\Templating\Helper\CoreAssetsHelper The assets helper.
*/
public function getAssetsHelper()
{
return $this->assetsHelper;
}

/**
* Sets the assets helper.
*
* @param \Symfony\Component\Templating\Helper\CoreAssetsHelper $assetsHelper The assets helper.
*/
public function setAssetsHelper(CoreAssetsHelper $assetsHelper)
{
$this->assetsHelper = $assetsHelper;
}

/**
* Gets the assets version trimer helper.
*
* @return \Ivory\CKEditorBundle\Helper\AssetsVersionTrimerHelper The assets version trimer helper.
*/
public function getAssetsVersionTrimerHelper()
{
return $this->assetsVersionTrimerHelper;
}

/**
* Sets the assets version trimer helper.
*
* @param \Ivory\CKEditorBundle\Helper\AssetsVersionTrimerHelper $assetsVersionTrimerHelper The version trimer.
*/
public function setAssetsVersionTrimerHelper(AssetsVersionTrimerHelper $assetsVersionTrimerHelper)
{
$this->assetsVersionTrimerHelper = $assetsVersionTrimerHelper;
}

/**
* {@inheritdoc}
*/
Expand Down Expand Up @@ -309,16 +254,12 @@ public function buildView(FormView $view, FormInterface $form, array $options)
$view->vars['enable'] = $form->getConfig()->getAttribute('enable');

if ($form->getConfig()->getAttribute('enable')) {
$view->vars['base_path'] = $this->assetsVersionTrimerHelper->trim(
$this->assetsHelper->getUrl($form->getConfig()->getAttribute('base_path'))
);

$view->vars['js_path'] = $this->assetsHelper->getUrl($form->getConfig()->getAttribute('js_path'));

$this->buildConfig($view, $form);
$this->buildPlugins($view, $form);
$this->buildStylesSet($view, $form);
$this->buildTemplates($view, $form);
$view->vars['base_path'] = $form->getConfig()->getAttribute('base_path');
$view->vars['js_path'] = $form->getConfig()->getAttribute('js_path');
$view->vars['config'] = $form->getConfig()->getAttribute('config');
$view->vars['plugins'] = $form->getConfig()->getAttribute('plugins');
$view->vars['styles'] = $form->getConfig()->getAttribute('styles');
$view->vars['templates'] = $form->getConfig()->getAttribute('templates');
}
}

Expand All @@ -327,27 +268,27 @@ public function buildView(FormView $view, FormInterface $form, array $options)
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'enable' => $this->enable,
'base_path' => $this->basePath,
'js_path' => $this->jsPath,
'config_name' => $this->configManager->getDefaultConfig(),
'config' => array(),
'plugins' => array(),
'styles' => array(),
'templates' => array(),
));

$resolver->addAllowedTypes(array(
'enable' => 'bool',
'config_name' => array('string', 'null'),
'base_path' => array('string'),
'js_path' => array('string'),
'config' => 'array',
'plugins' => 'array',
'styles' => 'array',
'templates' => 'array',
));
$resolver
->setDefaults(array(
'enable' => $this->enable,
'base_path' => $this->basePath,
'js_path' => $this->jsPath,
'config_name' => $this->configManager->getDefaultConfig(),
'config' => array(),
'plugins' => array(),
'styles' => array(),
'templates' => array(),
))
->addAllowedTypes(array(
'enable' => 'bool',
'config_name' => array('string', 'null'),
'base_path' => array('string'),
'js_path' => array('string'),
'config' => 'array',
'plugins' => 'array',
'styles' => 'array',
'templates' => 'array',
));
}

/**
Expand All @@ -365,52 +306,4 @@ public function getName()
{
return 'ckeditor';
}

/**
* Builds the CKEditor configuration.
*
* @param \Symfony\Component\Form\FormView $view The form view.
* @param \Symfony\Component\Form\FormInterface $form The form.
*/
protected function buildConfig(FormView $view, FormInterface $form)
{
$view->vars['config'] = preg_replace(
'/"(CKEDITOR\.[A-Z_]+)"/',
'$1',
json_encode($form->getConfig()->getAttribute('config'))
);
}

/**
* Builds the CKEditor plugins.
*
* @param \Symfony\Component\Form\FormView $view The form view.
* @param \Symfony\Component\Form\FormInterface $form The form.
*/
protected function buildPlugins(FormView $view, FormInterface $form)
{
$view->vars['plugins'] = $form->getConfig()->getAttribute('plugins');
}

/**
* Builds the CKEditor styles set.
*
* @param \Symfony\Component\Form\FormView $view The form view.
* @param \Symfony\Component\Form\FormInterface $form The form.
*/
protected function buildStylesSet(FormView $view, FormInterface $form)
{
$view->vars['styles'] = $form->getConfig()->getAttribute('styles');
}

/**
* Builds the CKEditor templates.
*
* @param \Symfony\Component\Form\FormView $view The form view.
* @param \Symfony\Component\Form\FormInterface $form The form.
*/
protected function buildTemplates(FormView $view, FormInterface $form)
{
$view->vars['templates'] = $form->getConfig()->getAttribute('templates');
}
}
Loading

0 comments on commit db93af5

Please sign in to comment.