insight recommandations

This commit is contained in:
Simon Vieille 2015-03-05 17:51:23 +01:00
parent cbdc3109e3
commit 925ded4b7f
46 changed files with 197 additions and 236 deletions

View file

@ -35,5 +35,4 @@ class ModelConfiguration
{ {
return $this->blocks; return $this->blocks;
} }
} }

View file

@ -34,5 +34,4 @@ class AddBlockFieldsSubscriber implements EventSubscriberInterface
} }
} }
} }
} }

View file

@ -8,8 +8,6 @@ use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\Finder;
use Trinity\Bundle\ContentManagerBundle\Model\PageQuery;
class BuildIndexCommand extends ContainerAwareCommand class BuildIndexCommand extends ContainerAwareCommand
{ {
protected function configure() protected function configure()
@ -46,18 +44,12 @@ EOF
return $namespace.'\\'.str_replace('.php', 'Query', $file->getFilename()); return $namespace.'\\'.str_replace('.php', 'Query', $file->getFilename());
} }
protected function execute(InputInterface $input, OutputInterface $output) protected function execute(InputInterface $input, OutputInterface $output)
{ {
$dialog = $this->getDialogHelper(); $dialog = $this->getDialogHelper();
if ($input->isInteractive()) { if ($input->isInteractive()) {
if (!$dialog->askConfirmation( if (!$dialog->askConfirmation($output, $dialog->getQuestion('Do you confirm generation', 'yes', '?'), true)) {
$output,
$dialog->getQuestion('Do you confirm generation', 'yes', '?'),
true
)
) {
$output->writeln( $output->writeln(
array( array(
'', '',
@ -163,7 +155,6 @@ EOF
$indexed_elements++; $indexed_elements++;
} }
$output->writeln( $output->writeln(
array( array(
'<info>'.$query.'</info> number of indexed elements : <comment>'.$indexed_elements.'</comment>', '<info>'.$query.'</info> number of indexed elements : <comment>'.$indexed_elements.'</comment>',

View file

@ -2,14 +2,9 @@
namespace Trinity\Bundle\SearchBundle\Controller; namespace Trinity\Bundle\SearchBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Trinity\Bundle\ContentManagerBundle\Controller\PageController; use Trinity\Bundle\ContentManagerBundle\Controller\PageController;
use Trinity\Bundle\ContentManagerBundle\Exception\NavigationNotFoundException;
use Trinity\Bundle\ContentManagerBundle\Exception\PageNotFoundException;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Trinity\Bundle\SearchBundle\Model\SearchObject; use Trinity\Bundle\SearchBundle\Model\SearchObject;
@ -17,10 +12,8 @@ use Trinity\Bundle\ContentManagerBundle\Model\PageQuery;
use Zend\Search\Lucene\Index\Term; use Zend\Search\Lucene\Index\Term;
use Zend\Search\Lucene\Search\Query\Boolean as ZendBooleanQuery; use Zend\Search\Lucene\Search\Query\Boolean as ZendBooleanQuery;
use Zend\Search\Lucene\Search\Query\Fuzzy as FuzzyQuery; use Zend\Search\Lucene\Search\Query\Fuzzy as FuzzyQuery;
use Zend\Search\Lucene\Search\Query\MultiTerm;
use Zend\Search\Lucene\Search\QueryParser; use Zend\Search\Lucene\Search\QueryParser;
class SearchController extends PageController class SearchController extends PageController
{ {

View file

@ -23,7 +23,6 @@ class Configuration implements ConfigurationInterface
// Here you should define the parameters that are allowed to // Here you should define the parameters that are allowed to
// configure your bundle. See the documentation linked above for // configure your bundle. See the documentation linked above for
// more information on that topic. // more information on that topic.
return $treeBuilder; return $treeBuilder;
} }
} }

View file

@ -1,10 +1,8 @@
<?php <?php
namespace Trinity\Bundle\SearchBundle\EventListener; namespace Trinity\Bundle\SearchBundle\EventListener;
use Ivory\LuceneSearchBundle\Model\Field;
use Symfony\Component\DependencyInjection\Container; use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Trinity\Bundle\ContentManagerBundle\Model\Page;
use Trinity\Bundle\SearchBundle\Event\LuceneEvent; use Trinity\Bundle\SearchBundle\Event\LuceneEvent;
use Trinity\Bundle\SearchBundle\TrinitySearchEvents; use Trinity\Bundle\SearchBundle\TrinitySearchEvents;
use ZendSearch\Lucene\Document; use ZendSearch\Lucene\Document;

View file

@ -2,7 +2,6 @@
namespace Trinity\Bundle\SearchBundle\Model; namespace Trinity\Bundle\SearchBundle\Model;
class SearchObject class SearchObject
{ {
protected $object; protected $object;

View file

@ -4,8 +4,6 @@ namespace Trinity\Bundle\SearchBundle\Page;
use Pagerfanta\Adapter\ArrayAdapter; use Pagerfanta\Adapter\ArrayAdapter;
use Pagerfanta\Exception\NotValidCurrentPageException; use Pagerfanta\Exception\NotValidCurrentPageException;
use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Trinity\Bundle\ContentManagerBundle\Model\Page; use Trinity\Bundle\ContentManagerBundle\Model\Page;
use Trinity\Bundle\ContentManagerBundle\Model\SeoPageInterface; use Trinity\Bundle\ContentManagerBundle\Model\SeoPageInterface;
use Trinity\Bundle\ContentManagerBundle\Model\PageableInterface; use Trinity\Bundle\ContentManagerBundle\Model\PageableInterface;
@ -27,7 +25,6 @@ class SearchPage extends Page implements SeoPageInterface, PageableInterface
->setDefaultControllerClass('Trinity\Bundle\SearchBundle\Controller\SearchController::indexAction'); ->setDefaultControllerClass('Trinity\Bundle\SearchBundle\Controller\SearchController::indexAction');
} }
public function __construct($template = null) public function __construct($template = null)
{ {
parent::__construct(null !== $template ? $template : 'TrinitySearchBundle:Search:index.html.twig'); parent::__construct(null !== $template ? $template : 'TrinitySearchBundle:Search:index.html.twig');

View file

@ -2,20 +2,23 @@
namespace Trinity\Bundle\SearchBundle\Twig\Extension; namespace Trinity\Bundle\SearchBundle\Twig\Extension;
class HighlightExtension extends \Twig_Extension { class HighlightExtension extends \Twig_Extension
{
public function getFilters() { public function getFilters()
{
return array( return array(
'highlight' => new \Twig_Filter_Method($this, 'highlight'), 'highlight' => new \Twig_Filter_Method($this, 'highlight'),
); );
} }
public function highlight($sentence, $expr) { public function highlight($sentence, $expr)
{
$expr = explode(' ', $expr); $expr = explode(' ', $expr);
foreach ($expr as $word) { foreach ($expr as $word) {
$sentence = preg_replace('/(' . $word . ')/i', $sentence = preg_replace('/(' . $word . ')/i',
'<span class="bold">\1</span>', $sentence); '<span class="bold">\1</span>', $sentence);
} }
return $sentence; return $sentence;
} }

View file

@ -23,7 +23,6 @@ class Configuration implements ConfigurationInterface
// Here you should define the parameters that are allowed to // Here you should define the parameters that are allowed to
// configure your bundle. See the documentation linked above for // configure your bundle. See the documentation linked above for
// more information on that topic. // more information on that topic.
return $treeBuilder; return $treeBuilder;
} }
} }

View file

@ -23,7 +23,6 @@ class Configuration implements ConfigurationInterface
// Here you should define the parameters that are allowed to // Here you should define the parameters that are allowed to
// configure your bundle. See the documentation linked above for // configure your bundle. See the documentation linked above for
// more information on that topic. // more information on that topic.
return $treeBuilder; return $treeBuilder;
} }
} }

View file

@ -3,9 +3,6 @@
namespace Trinity\Bundle\SlideshowBundle\Form\Extension\Type; namespace Trinity\Bundle\SlideshowBundle\Form\Extension\Type;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class FileImageType extends AbstractType class FileImageType extends AbstractType
{ {
@ -17,7 +14,6 @@ class FileImageType extends AbstractType
return 'file'; return 'file';
} }
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@ -26,4 +22,3 @@ class FileImageType extends AbstractType
return 'file_image'; return 'file_image';
} }
} }

View file

@ -3,8 +3,6 @@
namespace Trinity\Bundle\SlideshowBundle\Form\Extension\Type; namespace Trinity\Bundle\SlideshowBundle\Form\Extension\Type;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolverInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class PersoType extends AbstractType class PersoType extends AbstractType
@ -51,4 +49,3 @@ class PersoType extends AbstractType
return 'perso'; return 'perso';
} }
} }

View file

@ -6,7 +6,6 @@ use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormView; use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;
use Trinity\Bundle\SlideshowBundle\Block\SlideshowItemsContainerBlock; use Trinity\Bundle\SlideshowBundle\Block\SlideshowItemsContainerBlock;
use Trinity\Bundle\SlideshowBundle\Model\SlideshowItemQuery;
use Trinity\Bundle\ContentManagerBundle\Form\Type\BlockType; use Trinity\Bundle\ContentManagerBundle\Form\Type\BlockType;
class SlideshowItemsContainerBlockType extends BlockType class SlideshowItemsContainerBlockType extends BlockType
@ -48,7 +47,6 @@ class SlideshowItemsContainerBlockType extends BlockType
)); ));
} }
public function getName() public function getName()
{ {
return 'slideshow_items_container_block'; return 'slideshow_items_container_block';

View file

@ -34,14 +34,14 @@ class GroupCrudConfiguration extends \Trinity\Bundle\AdminBundle\Configuration\C
->setEditTitle('Edition of "%name%"') ->setEditTitle('Edition of "%name%"')
->setMaxPerPage(20) ->setMaxPerPage(20)
->setFieldTemplate('roles', 'TrinityUserBundle:GroupAdmin:roles.html.twig') ->setFieldTemplate('roles', 'TrinityUserBundle:GroupAdmin:roles.html.twig')
->setDisplayFields(array( ->setDisplayFields(array(
'id', 'id',
'code', 'code',
'name', 'name',
'roles' 'roles'
)) ))
; ;
} }
} }

View file

@ -23,7 +23,7 @@ class UserLogCrudConfiguration extends \Trinity\Bundle\AdminBundle\Configuration
->setEditTitle('Edition of "%message%"') ->setEditTitle('Edition of "%message%"')
->setMaxPerPage(20) ->setMaxPerPage(20)
->setSort('orderById', \Criteria::DESC) ->setSort('orderById', \Criteria::DESC)
->removeIndexAction('new') ->removeIndexAction('new')

View file

@ -9,84 +9,84 @@ use \FOS\UserBundle\Controller\SecurityController as BaseSecurityController;
class SecurityAdminController extends BaseSecurityController class SecurityAdminController extends BaseSecurityController
{ {
public function loginAction(Request $request) public function loginAction(Request $request)
{ {
/** @var $session \Symfony\Component\HttpFoundation\Session\Session */ /** @var $session \Symfony\Component\HttpFoundation\Session\Session */
$session = $request->getSession(); $session = $request->getSession();
// get the error if any (works with forward and redirect -- see below) // get the error if any (works with forward and redirect -- see below)
if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR); $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
} elseif (null !== $session && $session->has(SecurityContext::AUTHENTICATION_ERROR)) { } elseif (null !== $session && $session->has(SecurityContext::AUTHENTICATION_ERROR)) {
$error = $session->get(SecurityContext::AUTHENTICATION_ERROR); $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
$session->remove(SecurityContext::AUTHENTICATION_ERROR); $session->remove(SecurityContext::AUTHENTICATION_ERROR);
} else { } else {
$error = ''; $error = '';
} }
if ($error) { if ($error) {
// TODO: this is a potential security risk (see http://trac.symfony-project.org/ticket/9523) // TODO: this is a potential security risk (see http://trac.symfony-project.org/ticket/9523)
$error = $error->getMessage(); $error = $error->getMessage();
} }
// last username entered by the user // last username entered by the user
$lastUsername = (null === $session) ? '' : $session->get(SecurityContext::LAST_USERNAME); $lastUsername = (null === $session) ? '' : $session->get(SecurityContext::LAST_USERNAME);
$csrfToken = $this->container->has('form.csrf_provider') $csrfToken = $this->container->has('form.csrf_provider')
? $this->container->get('form.csrf_provider')->generateCsrfToken('authenticate') ? $this->container->get('form.csrf_provider')->generateCsrfToken('authenticate')
: null; : null;
if ($request->isXmlHttpRequest()) { if ($request->isXmlHttpRequest()) {
return $this->renderXhrLogin(array( return $this->renderXhrLogin(array(
'last_username' => $lastUsername, 'last_username' => $lastUsername,
'error' => $error, 'error' => $error,
'csrf_token' => $csrfToken, 'csrf_token' => $csrfToken,
)); ));
} else { } else {
return $this->renderLogin(array( return $this->renderLogin(array(
'last_username' => $lastUsername, 'last_username' => $lastUsername,
'error' => $error, 'error' => $error,
'csrf_token' => $csrfToken, 'csrf_token' => $csrfToken,
'logo' => '/bundles/trinityadminmenu/img/logo_signin.png' 'logo' => '/bundles/trinityadminmenu/img/logo_signin.png'
)); ));
} }
} }
protected function renderLogin(array $data) protected function renderLogin(array $data)
{ {
$template = sprintf('TrinityUserBundle:Security\Admin:login.html.%s', $this->container->getParameter('fos_user.template.engine')); $template = sprintf('TrinityUserBundle:Security\Admin:login.html.%s', $this->container->getParameter('fos_user.template.engine'));
return $this->container->get('templating')->renderResponse($template, $data); return $this->container->get('templating')->renderResponse($template, $data);
} }
protected function renderXhrLogin(array $data) protected function renderXhrLogin(array $data)
{ {
$template = sprintf('TrinityUserBundle:Security\Admin:loginXHR.html.%s', $this->container->getParameter('fos_user.template.engine')); $template = sprintf('TrinityUserBundle:Security\Admin:loginXHR.html.%s', $this->container->getParameter('fos_user.template.engine'));
return $this->container->get('templating')->renderResponse($template, $data); return $this->container->get('templating')->renderResponse($template, $data);
} }
public function checkAction() public function checkAction()
{ {
throw new \RuntimeException('You must configure the check path to be handled by the firewall using form_login in your security firewall configuration.'); throw new \RuntimeException('You must configure the check path to be handled by the firewall using form_login in your security firewall configuration.');
} }
public function xhrcheckAction(Request $request) public function xhrcheckAction(Request $request)
{ {
if (false === $this->container->get('request')->isXmlHttpRequest()) { if (false === $this->container->get('request')->isXmlHttpRequest()) {
throw new \RuntimeException('This action is allowed in XHR context only.'); throw new \RuntimeException('This action is allowed in XHR context only.');
} }
$result = array('success' => true); $result = array('success' => true);
if (false === $this->container->get('security.context')->isGranted($this->container->getParameter('trinity_user.bo_auth_role'))) { if (false === $this->container->get('security.context')->isGranted($this->container->getParameter('trinity_user.bo_auth_role'))) {
$result = array('success' => false); $result = array('success' => false);
} }
$response = new Response(json_encode($result)); $response = new Response(json_encode($result));
$response->headers->set('Content-Type', 'application/json'); $response->headers->set('Content-Type', 'application/json');
return $response; return $response;
} }
} }

View file

@ -2,9 +2,6 @@
namespace Trinity\Bundle\UserBundle\Controller; namespace Trinity\Bundle\UserBundle\Controller;
use \Symfony\Component\HttpFoundation\Request;
use \Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\SecurityContext;
use \FOS\UserBundle\Controller\SecurityController as BaseSecurityController; use \FOS\UserBundle\Controller\SecurityController as BaseSecurityController;
class SecurityController extends BaseSecurityController class SecurityController extends BaseSecurityController

View file

@ -15,7 +15,6 @@ use Symfony\Component\HttpFoundation\Request;
use Trinity\Bundle\UserBundle\Configuration\UserLogCrudConfiguration as CrudConfiguration; use Trinity\Bundle\UserBundle\Configuration\UserLogCrudConfiguration as CrudConfiguration;
use Trinity\Bundle\UserBundle\Form\Type\UserLogBatchType as BatchType; use Trinity\Bundle\UserBundle\Form\Type\UserLogBatchType as BatchType;
/** /**
* @Route("/admin/userlog") * @Route("/admin/userlog")
*/ */

View file

@ -4,17 +4,17 @@ namespace Trinity\Bundle\UserBundle\Flash;
abstract class Flash abstract class Flash
{ {
protected $message = null; protected $message = null;
public function __construct($message) public function __construct($message)
{ {
$this->message = $message; $this->message = $message;
} }
public function getMessage() public function getMessage()
{ {
return $this->message; return $this->message;
} }
abstract public function getTemplate(); abstract public function getTemplate();
} }

View file

@ -4,22 +4,22 @@ namespace Trinity\Bundle\UserBundle\Flash;
class FlashContainer class FlashContainer
{ {
protected $flash; protected $flash;
protected $persist; protected $persist;
public function __construct(Flash $flash, $persist) public function __construct(Flash $flash, $persist)
{ {
$this->flash = $flash; $this->flash = $flash;
$this->persist = $persist; $this->persist = $persist;
} }
public function getFlash() public function getFlash()
{ {
return $this->flash; return $this->flash;
} }
public function getPersist() public function getPersist()
{ {
return $this->persist; return $this->persist;
} }
} }

View file

@ -4,8 +4,8 @@ namespace Trinity\Bundle\UserBundle\Flash;
class FlashError extends Flash class FlashError extends Flash
{ {
public function getTemplate() public function getTemplate()
{ {
return 'TrinityAdminBundle:BaseAdmin:flashError.html.twig'; return 'TrinityAdminBundle:BaseAdmin:flashError.html.twig';
} }
} }

View file

@ -4,8 +4,8 @@ namespace Trinity\Bundle\UserBundle\Flash;
class FlashNotice extends Flash class FlashNotice extends Flash
{ {
public function getTemplate() public function getTemplate()
{ {
return 'TrinityAdminBundle:BaseAdmin:flashNotice.html.twig'; return 'TrinityAdminBundle:BaseAdmin:flashNotice.html.twig';
} }
} }

View file

@ -4,8 +4,8 @@ namespace Trinity\Bundle\UserBundle\Flash;
class FlashSuccess extends Flash class FlashSuccess extends Flash
{ {
public function getTemplate() public function getTemplate()
{ {
return 'TrinityAdminBundle:BaseAdmin:flashSuccess.html.twig'; return 'TrinityAdminBundle:BaseAdmin:flashSuccess.html.twig';
} }
} }

View file

@ -4,8 +4,8 @@ namespace Trinity\Bundle\UserBundle\Flash;
class FlashWarning extends Flash class FlashWarning extends Flash
{ {
public function getTemplate() public function getTemplate()
{ {
return 'TrinityAdminBundle:BaseAdmin:flashWarning.html.twig'; return 'TrinityAdminBundle:BaseAdmin:flashWarning.html.twig';
} }
} }

View file

@ -32,5 +32,4 @@ class AddCodeFieldSubscriber implements EventSubscriberInterface
); );
} }
} }
} }

View file

@ -4,7 +4,6 @@ namespace Trinity\Bundle\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use FOS\UserBundle\Form\Type\ProfileFormType as BaseType; use FOS\UserBundle\Form\Type\ProfileFormType as BaseType;
use Trinity\Bundle\UserBundle\Form\Type\ProfileType;
class MyProfileType extends BaseType class MyProfileType extends BaseType
{ {
@ -29,4 +28,3 @@ class MyProfileType extends BaseType
return 'trinity_user_profile'; return 'trinity_user_profile';
} }
} }

View file

@ -10,26 +10,26 @@ class UserLogBatchType extends BaseBatchType
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->add( $builder->add(
'objects', 'objects',
'choice', 'choice',
array( array(
'required' => true, 'required' => true,
'multiple' => true, 'multiple' => true,
'expanded' => true, 'expanded' => true,
) )
); );
$builder->add( $builder->add(
'action', 'action',
'choice', 'choice',
array( array(
'required' => true, 'required' => true,
'choices' => array( 'choices' => array(
self::BATCH_REMOVE => 'Remove', self::BATCH_REMOVE => 'Remove',
), ),
'multiple' => false, 'multiple' => false,
) )
); );
} }
} }

View file

@ -10,7 +10,7 @@ class UserLogFilterType extends BaseAbstractType
protected $options = array( protected $options = array(
'data_class' => 'FOS\UserBundle\Propel\UserLog', 'data_class' => 'FOS\UserBundle\Propel\UserLog',
'name' => 'userlog', 'name' => 'userlog',
'csrf_protection' => false, 'csrf_protection' => false,
); );
/** /**

View file

@ -6,8 +6,6 @@ use Propel\PropelBundle\Form\BaseAbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface; use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use \Trinity\Bundle\UserBundle\Form\Type\ProfileType;
class UserType extends BaseAbstractType class UserType extends BaseAbstractType
{ {
/** /**
@ -110,5 +108,3 @@ class UserType extends BaseAbstractType
return array_keys(self::getRoles()); return array_keys(self::getRoles());
} }
} }

View file

@ -115,13 +115,13 @@ class VarsAdminController extends Controller
$type = isset($var['type']) ? $var['type'] : 'text'; $type = isset($var['type']) ? $var['type'] : 'text';
$help = isset($var['help']) ? array('data-help' => $this->get('translator')->trans($var['help'])) : array(); $help = isset($var['help']) ? array('data-help' => $this->get('translator')->trans($var['help'])) : array();
$name = $key.'_'.$var['key']; $name = $key.'_'.$var['key'];
$label = isset($var['label']) ? $var['label'] : $name; $label = isset($var['label']) ? $var['label'] : $name;
$form->add( $form->add(
$name, $name,
$type, $type,
array( array(
'label' => $label, 'label' => $label,
'data' => $value, 'data' => $value,
'attr' => array_merge($options, $help) 'attr' => array_merge($options, $help)
) )
@ -158,13 +158,13 @@ class VarsAdminController extends Controller
$type = isset($var['type']) ? $var['type'] : 'text'; $type = isset($var['type']) ? $var['type'] : 'text';
$help = isset($var['help']) ? array('data-help' => $this->get('translator')->trans($var['help'])) : array(); $help = isset($var['help']) ? array('data-help' => $this->get('translator')->trans($var['help'])) : array();
$name = $var['key']; $name = $var['key'];
$label = isset($var['label']) ? $var['label'] : $name; $label = isset($var['label']) ? $var['label'] : $name;
$form->add( $form->add(
$name, $name,
$type, $type,
array( array(
'label' => $label, 'label' => $label,
'data' => $value, 'data' => $value,
'attr' => array_merge($options, $help) 'attr' => array_merge($options, $help)
) )

View file

@ -25,6 +25,6 @@ class TrinityVarsEditorExtension extends Extension
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.xml'); $loader->load('services.xml');
$container->setParameter('trinity_vars_editor.file', $config['file']); $container->setParameter('trinity_vars_editor.file', $config['file']);
} }
} }

View file

@ -23,7 +23,6 @@ class Configuration implements ConfigurationInterface
// Here you should define the parameters that are allowed to // Here you should define the parameters that are allowed to
// configure your bundle. See the documentation linked above for // configure your bundle. See the documentation linked above for
// more information on that topic. // more information on that topic.
return $treeBuilder; return $treeBuilder;
} }
} }

View file

@ -8,6 +8,6 @@ interface FileUploadInterface
public function getUploadFields(); public function getUploadFields();
public function getUploadDir($field); public function getUploadDir($field);
public function uploadRollback($field, $locale = null); public function uploadRollback($field, $locale = null);
public function deleteFile($v); public function deleteFile($v);
public function isUploadRollbackField($field, $locale = null); public function isUploadRollbackField($field, $locale = null);
} }

View file

@ -117,6 +117,7 @@ if (\$this->isColumnModified($const) && \$this->{$this->getColumnGetter()}()) {
\$this->{$this->getColumnSetter()}(\$this->createSlug()); \$this->{$this->getColumnSetter()}(\$this->createSlug());
}"; }";
} }
return $script; return $script;
} }
@ -247,7 +248,7 @@ protected static function cleanupSlugPart(\$slug, \$replacement = '" . $this->ge
// replace non letter or digits with separator // replace non letter or digits with separator
\$slug = preg_replace_callback( \$slug = preg_replace_callback(
'" . $this->getParameter('replace_pattern') . "', '" . $this->getParameter('replace_pattern') . "',
function(\$m) use (\$replacement) { function (\$m) use (\$replacement) {
return \$replacement; return \$replacement;
}, },
utf8_encode(\$slug) utf8_encode(\$slug)
@ -255,7 +256,7 @@ protected static function cleanupSlugPart(\$slug, \$replacement = '" . $this->ge
\$slug = preg_replace_callback( \$slug = preg_replace_callback(
'#'.preg_quote(\$replacement).'{2,}#', '#'.preg_quote(\$replacement).'{2,}#',
function(\$m) use (\$replacement) { function (\$m) use (\$replacement) {
return \$replacement; return \$replacement;
}, },
utf8_encode(\$slug) utf8_encode(\$slug)

View file

@ -5,7 +5,6 @@ use I18nBehavior;
use ReflectionObject; use ReflectionObject;
use SluggableBehavior; use SluggableBehavior;
class I18nSluggableBehavior extends I18nBehavior class I18nSluggableBehavior extends I18nBehavior
{ {

View file

@ -7,10 +7,10 @@ use Trinity\Component\Utils\Propel as PropelUtils;
class UploadableBehavior extends \Behavior class UploadableBehavior extends \Behavior
{ {
protected $fields = array(); protected $fields = array();
protected $dirs = array(); protected $dirs = array();
protected $i18n_upload_fields = array(); protected $i18n_upload_fields = array();
protected $i18n_upload_paths = array(); protected $i18n_upload_paths = array();
protected $tableModificationOrder = 90; protected $tableModificationOrder = 90;
@ -19,6 +19,7 @@ class UploadableBehavior extends \Behavior
if ($this->getTable()->getColumn($columnName)) { if ($this->getTable()->getColumn($columnName)) {
return 'get'.$this->getTable()->getColumn($columnName)->getPhpName(); return 'get'.$this->getTable()->getColumn($columnName)->getPhpName();
} }
return PropelUtils::getGetter($columnName); return PropelUtils::getGetter($columnName);
} }
@ -27,6 +28,7 @@ class UploadableBehavior extends \Behavior
if ($this->getTable()->getColumn($columnName)) { if ($this->getTable()->getColumn($columnName)) {
return 'set'.$this->getTable()->getColumn($columnName)->getPhpName(); return 'set'.$this->getTable()->getColumn($columnName)->getPhpName();
} }
return PropelUtils::getSetter($columnName); return PropelUtils::getSetter($columnName);
} }
@ -35,7 +37,7 @@ class UploadableBehavior extends \Behavior
$this->fields = array_map('trim', explode(',', $this->getParameter('fields'))); $this->fields = array_map('trim', explode(',', $this->getParameter('fields')));
$path = array_map('trim', explode(',', $this->getParameter('paths'))); $path = array_map('trim', explode(',', $this->getParameter('paths')));
if(count($this->fields) != count($path)) { if (count($this->fields) != count($path)) {
throw new InvalidArgumentException(sprintf( throw new InvalidArgumentException(sprintf(
'You must give a path for each field specified in \'fields\' parameter. %s field for %s path', 'You must give a path for each field specified in \'fields\' parameter. %s field for %s path',
count($this->fields), count($this->fields),
@ -43,7 +45,7 @@ class UploadableBehavior extends \Behavior
)); ));
} }
foreach($this->fields as $k => $v) { foreach ($this->fields as $k => $v) {
$this->dirs[$v] = $path[$k]; $this->dirs[$v] = $path[$k];
} }
} }
@ -133,43 +135,47 @@ class UploadableBehavior extends \Behavior
$this->addI18nWebPathMethod($script); $this->addI18nWebPathMethod($script);
$this->addHasUploadedFieldMethod($script); $this->addHasUploadedFieldMethod($script);
$this->addGetterAsFile($script); $this->addGetterAsFile($script);
return $script; return $script;
} }
public function preSave() public function preSave()
{ {
$script = ''; $script = '';
foreach($this->fields as $k => $field) { foreach ($this->fields as $k => $field) {
$camel_field = PropelUtils::camelCase($field); $camel_field = PropelUtils::camelCase($field);
$script .= sprintf('$this->upload%s();%s', $camel_field, PHP_EOL); $script .= sprintf('$this->upload%s();%s', $camel_field, PHP_EOL);
} }
return $script; return $script;
} }
public function postInsert() public function postInsert()
{ {
$script = ''; $script = '';
foreach($this->fields as $k => $field) { foreach ($this->fields as $k => $field) {
$camel_field = PropelUtils::camelCase($field); $camel_field = PropelUtils::camelCase($field);
$script .= sprintf('$this->save%sFile();%s', $camel_field, PHP_EOL); $script .= sprintf('$this->save%sFile();%s', $camel_field, PHP_EOL);
} }
return $script; return $script;
} }
public function postUpdate() public function postUpdate()
{ {
$script = ''; $script = '';
foreach($this->fields as $k => $field) { foreach ($this->fields as $k => $field) {
$camel_field = PropelUtils::camelCase($field); $camel_field = PropelUtils::camelCase($field);
$script .= sprintf('$this->save%sFile();%s', $camel_field, PHP_EOL); $script .= sprintf('$this->save%sFile();%s', $camel_field, PHP_EOL);
} }
return $script; return $script;
} }
public function postSave() public function postSave()
{ {
$script = ''; $script = '';
foreach($this->fields as $k => $field) { foreach ($this->fields as $k => $field) {
$camel_field = PropelUtils::camelCase($field); $camel_field = PropelUtils::camelCase($field);
$script .= <<<EOL $script .= <<<EOL
@ -179,24 +185,24 @@ if (\$this->delete_$field) {
EOL; EOL;
} }
return $script; return $script;
} }
public function postDelete() public function postDelete()
{ {
$script = ''; $script = '';
foreach($this->fields as $k => $field) { foreach ($this->fields as $k => $field) {
$camel_field = PropelUtils::camelCase($field); $camel_field = PropelUtils::camelCase($field);
$script .= sprintf('$this->set%s(null);%s', $camel_field, PHP_EOL); $script .= sprintf('$this->set%s(null);%s', $camel_field, PHP_EOL);
$script .= sprintf('$this->setDelete%s(true);%s', $camel_field, PHP_EOL); $script .= sprintf('$this->setDelete%s(true);%s', $camel_field, PHP_EOL);
$script .= sprintf('$this->remove%s();%s', $camel_field, PHP_EOL); $script .= sprintf('$this->remove%s();%s', $camel_field, PHP_EOL);
$script .= ' '.PHP_EOL; $script .= ' '.PHP_EOL;
} }
return $script; return $script;
} }
protected function addAttributes(&$script) protected function addAttributes(&$script)
{ {
$dirs = var_export($this->dirs, true); $dirs = var_export($this->dirs, true);
@ -218,22 +224,22 @@ EOL;
$upload $upload
EOS; EOS;
} }
if($rollbacks != '') { if ($rollbacks != '') {
$script .= <<<EOS $script .= <<<EOS
$rollbacks $rollbacks
EOS; EOS;
} }
if($delete != '') { if ($delete != '') {
$script .= <<<EOS $script .= <<<EOS
$delete $delete
EOS; EOS;
} }
if($files != '') { if ($files != '') {
$script .= <<<EOS $script .= <<<EOS
$files $files
EOS; EOS;
} }
if($has_uploaded_file != '') { if ($has_uploaded_file != '') {
$script .= <<<EOS $script .= <<<EOS
$has_uploaded_file $has_uploaded_file
EOS; EOS;
@ -283,7 +289,7 @@ public function getUploadDir(\$field)
\$transform_dir = preg_replace_callback( \$transform_dir = preg_replace_callback(
'`\{(.*)\}`sU', '`\{(.*)\}`sU',
function(\$matches) { function (\$matches) {
return method_exists(\$this, \$matches[1]) ? (string) call_user_func(array(\$this, \$matches[1])) : ''; return method_exists(\$this, \$matches[1]) ? (string) call_user_func(array(\$this, \$matches[1])) : '';
}, \$dir }, \$dir
); );
@ -312,6 +318,7 @@ EOS;
{ {
if (null === \$this->$field && !\$this->delete_$field && null !== \$this->rollback_$field) { if (null === \$this->$field && !\$this->delete_$field && null !== \$this->rollback_$field) {
\$this->$field = \$this->rollback_$field; // keep the file \$this->$field = \$this->rollback_$field; // keep the file
return true; return true;
} }
@ -356,7 +363,7 @@ EOS;
*/ */
public function save{$camel_field}File() public function save{$camel_field}File()
{ {
if(\$this->hasUploaded{$camel_field}()){ if (\$this->hasUploaded{$camel_field}()) {
\$this->{$field}_file->move(\$this->getUploadDir('$field')$i18n, \$this->{$field}); \$this->{$field}_file->move(\$this->getUploadDir('$field')$i18n, \$this->{$field});
} }
} }
@ -492,8 +499,8 @@ EOS;
protected function addI18nWebPathMethod(&$script) protected function addI18nWebPathMethod(&$script)
{ {
if($this->getTable()->hasBehavior('i18n')) { if ($this->getTable()->hasBehavior('i18n')) {
foreach($this->i18n_upload_fields as $field) { foreach ($this->i18n_upload_fields as $field) {
$camel_field = PropelUtils::camelCase($field); $camel_field = PropelUtils::camelCase($field);
@ -547,6 +554,7 @@ EOS;
$upload $upload
EOS; EOS;
} }
return $script; return $script;
} }
@ -572,6 +580,7 @@ public static function getUploadDir(\$field)
} }
EOS; EOS;
return $script; return $script;
} }

View file

@ -37,4 +37,3 @@ class TestCase extends \PHPUnit_Framework_TestCase
return self::getApplication()->run(new \Symfony\Component\Console\Input\StringInput($command)); return self::getApplication()->run(new \Symfony\Component\Console\Input\StringInput($command));
} }
} }

View file

@ -34,4 +34,3 @@ class WebTestCase extends BaseWebTestCase
return self::getApplication()->run(new \Symfony\Component\Console\Input\StringInput($command)); return self::getApplication()->run(new \Symfony\Component\Console\Input\StringInput($command));
} }
} }

View file

@ -18,10 +18,10 @@ class Propel
{ {
return ucfirst(preg_replace_callback( return ucfirst(preg_replace_callback(
'/_[a-z0-9]{1}/iU', '/_[a-z0-9]{1}/iU',
function($matches) { function ($matches) {
return str_replace('_', '', strtoupper($matches[0])); return str_replace('_', '', strtoupper($matches[0]));
}, },
$string $string
)); ));
} }
} }