trinity updates, template updates

This commit is contained in:
Simon Vieille 2015-05-04 19:34:46 +02:00
parent 74b8347c87
commit 62d0565ace
38 changed files with 836 additions and 878 deletions

View file

@ -34,3 +34,12 @@
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block main_menu_bind %}
{% if page.pager.hasPreviousPage %}
<li class="bind"><a href="{{ cms_path('category', {id: page.object.id, category: page.object.slug, page: page.pager.getPreviousPage}) }}"><span class="glyphicon glyphicon-backward"></span></a></li>
{% endif %}
{% if page.pager.hasNextPage %}
<li class="bind"><a href="{{ cms_path('category', {id: page.object.id, category: page.object.slug, page: page.pager.getNextPage}) }}"><span class="glyphicon glyphicon-forward"></span></a></li>
{% endif %}
{% endblock %}

View file

@ -36,4 +36,4 @@
{% if page.pager.hasNextPage %} {% if page.pager.hasNextPage %}
<li class="bind"><a href="{{ cms_path('homepage', {page: page.pager.getNextPage}) }}"><span class="glyphicon glyphicon-forward"></span></a></li> <li class="bind"><a href="{{ cms_path('homepage', {page: page.pager.getNextPage}) }}"><span class="glyphicon glyphicon-forward"></span></a></li>
{% endif %} {% endif %}
{% endblock %} {% endblock %}

Binary file not shown.

View file

@ -327,7 +327,7 @@ class BaseAdminController extends Controller
protected function processForm(&$form, &$object, Request $request) protected function processForm(&$form, &$object, Request $request)
{ {
$form->bind($request); $form->submit($request);
if ($form->isValid()) { if ($form->isValid()) {
if ($object instanceof \FOS\UserBundle\Propel\User) { if ($object instanceof \FOS\UserBundle\Propel\User) {

View file

@ -1228,6 +1228,11 @@ li.item p {
background: url('/bundles/trinityadmin/img/flags/de.png') center center no-repeat; background: url('/bundles/trinityadmin/img/flags/de.png') center center no-repeat;
} }
.nav-tab-zh a,
.nav-tab-zh_CN a {
background: url('/bundles/trinityadmin/img/flags/ch.png') center center no-repeat;
}
.file-preview-img { .file-preview-img {
max-width: 100px; max-width: 100px;
display: block; display: block;

View file

@ -1144,6 +1144,44 @@ $(document).ready(function() {
$('.form-icon-helper').css('margin-left', '3px').tooltip(); $('.form-icon-helper').css('margin-left', '3px').tooltip();
$('#crud form > ul.error_list').addClass('alert').addClass('alert-danger'); $('#crud form > ul.error_list').addClass('alert').addClass('alert-danger');
if ($('#page_dataModel').length && $('#page_dataModelId').length) {
var $pageDataModel = $('#page_dataModel');
var $pageDataModelId = $('#page_dataModelId');
var checkDatModelSelect = function() {
if (!$pageDataModel.val()) {
$pageDataModelId.find('option:selected').removeAttr('selected');
$pageDataModelId.attr('disabled', 'disabled');
return;
}
$pageDataModelId.removeAttr('disabled');
var dataModelName = $.trim($pageDataModel.children('option:selected').html());
var $selected = [];
$pageDataModelId.children('optgroup').each(function() {
if ($.trim($(this).attr('label')) !== dataModelName) {
$(this).find('option:selected').removeAttr('selected');
$(this).hide();
} else {
$selected = $(this).find('option[selected]');
$(this).show();
}
});
if ($selected.length) {
$selected.removeAttr('selected').attr('selected', 'selected');
}
$pageDataModelId.trigger("chosen:updated");
}
$pageDataModel.change(checkDatModelSelect);
checkDatModelSelect();
}
}); });
$('#media-categories-tree a').live( $('#media-categories-tree a').live(

View file

@ -56,7 +56,7 @@ crud:
fail: fail:
update: 'Mise à jour échouée.' update: 'Mise à jour échouée.'
new: 'Création échouée' new: 'Création échouée'
remove: 'Il y a eu un problème pendant la suppresion.' remove: 'Il y a eu un problème pendant la suppression.'
unknown: 'Élément inexistant.' unknown: 'Élément inexistant.'
user: user:
@ -67,8 +67,8 @@ crud:
prevText: '"<"' prevText: '"<"'
nextText: '">"' nextText: '">"'
currentText: '"Maintenant"' currentText: '"Maintenant"'
monthNames: "['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre','Décembre']" monthNames: "['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']"
monthNamesShort: "['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jui', 'Juil', 'Août', 'Sept', 'Oct', 'Nov','Déc']" monthNamesShort: "['Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jui', 'Juil', 'Août', 'Sept', 'Oct', 'Nov', 'Déc']"
dayNames: "['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']" dayNames: "['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi']"
dayNamesShort: "['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']" dayNamesShort: "['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']"
dayNamesMin: "['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa']" dayNamesMin: "['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa']"

View file

@ -1,155 +1,155 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext"> <file source-language="en" datatype="plaintext" original="file.ext">
<body> <body>
<trans-unit id="1"> <trans-unit id="1">
<source>Title</source> <source>Title</source>
<target>Titre</target> <target>Titre</target>
</trans-unit> </trans-unit>
<trans-unit id="2"> <trans-unit id="2">
<source>Url</source> <source>Url</source>
<target>Chemin d'accès</target> <target>Chemin d'accès</target>
</trans-unit> </trans-unit>
<trans-unit id="3"> <trans-unit id="3">
<source>Nodealias</source> <source>Nodealias</source>
<target>Alias</target> <target>Alias</target>
</trans-unit> </trans-unit>
<trans-unit id="4"> <trans-unit id="4">
<source>Page</source> <source>Page</source>
<target>Page</target> <target>Page</target>
</trans-unit> </trans-unit>
<trans-unit id="5"> <trans-unit id="5">
<source>Routename</source> <source>Routename</source>
<target>Nom de la route</target> <target>Nom de la route</target>
</trans-unit> </trans-unit>
<trans-unit id="6"> <trans-unit id="6">
<source>Controller</source> <source>Controller</source>
<target>Contrôleur</target> <target>Contrôleur</target>
</trans-unit> </trans-unit>
<trans-unit id="7"> <trans-unit id="7">
<source>Default params</source> <source>Default params</source>
<target>Paramètres par défaut</target> <target>Paramètres par défaut</target>
</trans-unit> </trans-unit>
<trans-unit id="8"> <trans-unit id="8">
<source>Requirements</source> <source>Requirements</source>
<target>Contraintes</target> <target>Contraintes</target>
</trans-unit> </trans-unit>
<trans-unit id="9"> <trans-unit id="9">
<source>Http method</source> <source>Http method</source>
<target>Méthode HTTP</target> <target>Méthode HTTP</target>
</trans-unit> </trans-unit>
<trans-unit id="10"> <trans-unit id="10">
<source>Format</source> <source>Format</source>
<target>Format</target> <target>Format</target>
</trans-unit> </trans-unit>
<trans-unit id="11"> <trans-unit id="11">
<source>Seo title</source> <source>Seo title</source>
<target>Titre</target> <target>Titre</target>
</trans-unit> </trans-unit>
<trans-unit id="12"> <trans-unit id="12">
<source>Meta description</source> <source>Meta description</source>
<target>Meta description</target> <target>Meta description</target>
</trans-unit> </trans-unit>
<trans-unit id="13"> <trans-unit id="13">
<source>Meta keywords</source> <source>Meta keywords</source>
<target>Mots-clés</target> <target>Mots-clés</target>
</trans-unit> </trans-unit>
<trans-unit id="14"> <trans-unit id="14">
<source>Block title</source> <source>Block title</source>
<target>Titre</target> <target>Titre</target>
</trans-unit> </trans-unit>
<trans-unit id="15"> <trans-unit id="15">
<source>Block subtitle</source> <source>Block subtitle</source>
<target>Sous-titre</target> <target>Sous-titre</target>
</trans-unit> </trans-unit>
<trans-unit id="16"> <trans-unit id="16">
<source>Block content</source> <source>Block content</source>
<target>Contenu</target> <target>Contenu</target>
</trans-unit> </trans-unit>
<trans-unit id="17"> <trans-unit id="17">
<source>Name</source> <source>Name</source>
<target>Nom</target> <target>Nom</target>
</trans-unit> </trans-unit>
<trans-unit id="18"> <trans-unit id="18">
<source>Template</source> <source>Template</source>
<target>Modèle de page</target> <target>Modèle de page</target>
</trans-unit> </trans-unit>
<trans-unit id="19"> <trans-unit id="19">
<source>Data model</source> <source>Data model</source>
<target>Modèle d'objet</target> <target>Modèle d'objet</target>
</trans-unit> </trans-unit>
<trans-unit id="20"> <trans-unit id="20">
<source>Page model</source> <source>Page model</source>
<target>Modèle de page</target> <target>Modèle de page</target>
</trans-unit> </trans-unit>
<trans-unit id="21"> <trans-unit id="21">
<source>role_user</source> <source>role_user</source>
<target>Utilisateur</target> <target>Utilisateur</target>
</trans-unit> </trans-unit>
<trans-unit id="22"> <trans-unit id="22">
<source>role_admin</source> <source>role_admin</source>
<target>Administrateur</target> <target>Administrateur</target>
</trans-unit> </trans-unit>
<trans-unit id="23"> <trans-unit id="23">
<source>GET and POST</source> <source>GET and POST</source>
<target>GET et POST</target> <target>GET et POST</target>
</trans-unit> </trans-unit>
<trans-unit id="24"> <trans-unit id="24">
<source>GET</source> <source>GET</source>
<target>GET</target> <target>GET</target>
</trans-unit> </trans-unit>
<trans-unit id="25"> <trans-unit id="25">
<source>POST</source> <source>POST</source>
<target>POST</target> <target>POST</target>
</trans-unit> </trans-unit>
<trans-unit id="26"> <trans-unit id="26">
<source>nodeTitle</source> <source>nodeTitle</source>
<target>Titre dans le menu</target> <target>Titre dans le menu</target>
</trans-unit> </trans-unit>
<trans-unit id="27"> <trans-unit id="27">
<source>Anyway</source> <source>Anyway</source>
<target>Peu importe</target> <target>Peu importe</target>
</trans-unit> </trans-unit>
<trans-unit id="28"> <trans-unit id="28">
<source>False</source> <source>False</source>
<target>Non</target> <target>Non</target>
</trans-unit> </trans-unit>
<trans-unit id="29"> <trans-unit id="29">
<source>True</source> <source>True</source>
<target>Oui</target> <target>Oui</target>
</trans-unit> </trans-unit>
<trans-unit id="30"> <trans-unit id="30">
<source>No</source> <source>No</source>
<target>Non</target> <target>Non</target>
</trans-unit> </trans-unit>
<trans-unit id="31"> <trans-unit id="31">
<source>Yes</source> <source>Yes</source>
<target>Oui</target> <target>Oui</target>
</trans-unit> </trans-unit>
<trans-unit id="32"> <trans-unit id="32">
<source>Data model id</source> <source>Data model id</source>
<target>Objet</target> <target>Objet</target>
</trans-unit> </trans-unit>
<trans-unit id="33"> <trans-unit id="33">
<source>Copy</source> <source>Copy</source>
<target>Copier</target> <target>Copier</target>
</trans-unit> </trans-unit>
<trans-unit id="34"> <trans-unit id="34">
<source>Remove</source> <source>Remove</source>
<target>Supprimer</target> <target>Supprimer</target>
</trans-unit> </trans-unit>
<trans-unit id="35"> <trans-unit id="35">
<source>Class key</source> <source>Class key</source>
<target>Modèle de données</target> <target>Modèle de données</target>
</trans-unit> </trans-unit>
<trans-unit id="36"> <trans-unit id="36">
<source>Updated at</source> <source>Updated at</source>
<target>Mis(e) à jour le</target> <target>Mis(e) à jour le</target>
</trans-unit> </trans-unit>
<trans-unit id="37"> <trans-unit id="37">
<source>Created at</source> <source>Created at</source>
<target>Créé(e) le</target> <target>Créé(e) le</target>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

View file

@ -43,3 +43,4 @@
</form> </form>
{% endblock %} {% endblock %}
</div> </div>

View file

@ -31,7 +31,7 @@ class DefaultController extends Controller
$navs = NavQuery::create()->orderByName()->find(); $navs = NavQuery::create()->orderByName()->find();
$item = array( $item = array(
'title' => "Gestion de l'arborescence", 'title' => "Tree management",
'route_name' => 'TrinityContentManagerBundleNodeAdmin_index', 'route_name' => 'TrinityContentManagerBundleNodeAdmin_index',
'route_params' => array(), 'route_params' => array(),
'test_is_granted' => true, 'test_is_granted' => true,

View file

@ -1,24 +1,21 @@
<?xml version="1.0" ?> <?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services" <container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameters> <!--
<!-- <parameter key="trinity_assets.compressor.class">Trinity\Bundle\AssetsBundle\Compressor\TestCompressor</parameter>
<parameter key="trinity_assets.compressor.class">Trinity\Bundle\AssetsBundle\Compressor\TestCompressor</parameter>
--> -->
<parameter key="trinity_assets.compressor.class">Trinity\Bundle\AssetsBundle\Compressor\LessCssCompressor</parameter> <parameter key="trinity_assets.compressor.class">Trinity\Bundle\AssetsBundle\Compressor\LessCssCompressor</parameter>
</parameters> </parameters>
<services>
<services> <service id="trinity.assets.compressor" class="%trinity_assets.compressor.class%">
<service id="trinity.assets.compressor" class="%trinity_assets.compressor.class%">
<call method="setBinPath"> <call method="setBinPath">
<argument>/usr/local/lesscss/bin/lessc</argument> <argument>/usr/local/lesscss/bin/lessc</argument>
</call> </call>
<call method="setCmdline"> <call method="setCmdline">
<argument><![CDATA[{bin_path} {input} > {output}]]></argument> <argument><![CDATA[{bin_path} {input} > {output}]]></argument>
</call> </call>
</service> </service>
</services> </services>
</container> </container>

View file

@ -23,10 +23,7 @@ class ContactFilterType extends BaseAbstractType
'name', 'name',
'text', 'text',
array( array(
'required' => true, 'required' => false,
'attr' => array(
'placeholder' => 'Nom',
),
) )
); );
@ -34,10 +31,7 @@ class ContactFilterType extends BaseAbstractType
'firm', 'firm',
'text', 'text',
array( array(
'required' => true, 'required' => false,
'attr' => array(
'placeholder' => 'Société',
),
) )
); );
@ -45,10 +39,7 @@ class ContactFilterType extends BaseAbstractType
'phone', 'phone',
'text', 'text',
array( array(
'required' => true, 'required' => false,
'attr' => array(
'placeholder' => 'Téléphone',
),
) )
); );
@ -56,10 +47,7 @@ class ContactFilterType extends BaseAbstractType
'email', 'email',
'email', 'email',
array( array(
'required' => true, 'required' => false,
'attr' => array(
'placeholder' => 'E-mail',
),
) )
); );
} }

View file

@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<database name="default" namespace="Trinity\Bundle\ContactBundle\Model" defaultIdMethod="native"> <database name="default" namespace="Trinity\Bundle\ContactBundle\Model" defaultIdMethod="native">
<external-schema referenceOnly="true" /> <external-schema referenceOnly="true" />
<table name="contact" phpName="Contact"> <table name="contact" phpName="Contact">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" /> <column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true" />
<column name="name" type="varchar" size="255"/> <column name="name" type="varchar" size="255"/>
<column name="firm" type="varchar" size="255"/> <column name="firm" type="varchar" size="255"/>
<column name="phone" type="varchar" size="255"/> <column name="phone" type="varchar" size="255"/>
<column name="email" type="varchar" size="255"/> <column name="email" type="varchar" size="255"/>
<column name="message" type="longvarchar"/> <column name="message" type="longvarchar"/>
<column name="user_id" type="integer" /> <column name="user_id" type="integer" />
<foreign-key foreignTable="fos_user"> <foreign-key foreignTable="fos_user">
<reference local="user_id" foreign="id"/> <reference local="user_id" foreign="id"/>
</foreign-key> </foreign-key>
<behavior name="timestampable" /> <behavior name="timestampable" />
</table> </table>
</database> </database>

View file

@ -4,6 +4,7 @@ namespace Trinity\Bundle\ContentManagerBundle\Block;
use Propel; use Propel;
use PropelPDO; use PropelPDO;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
use Trinity\Bundle\ContentManagerBundle\Model\BlockPeer; use Trinity\Bundle\ContentManagerBundle\Model\BlockPeer;
use Trinity\Bundle\ContentManagerBundle\Model\Block; use Trinity\Bundle\ContentManagerBundle\Model\Block;
@ -145,4 +146,15 @@ class FileBlock extends Block
return parent::postDelete($con); return parent::postDelete($con);
} }
public function getValueAsFile()
{
$file = $this->getUploadDir('value') . DIRECTORY_SEPARATOR . $this->value;
if (file_exists($file) && is_file($file)) {
return new File($file);
}
return null;
}
} }

View file

@ -53,7 +53,7 @@ class NavType extends AbstractType
array( array(
'required' => true, 'required' => true,
'attr' => array( 'attr' => array(
'data-help' => "Utilisation possible d'une regex, exemple : regex:/.*\\.exemple.fr/s", 'data-help' => "Regex available, eg: regex:/.*\\.example.com/s",
), ),
'constraints' => array( 'constraints' => array(
new NotBlank(), new NotBlank(),

View file

@ -13,18 +13,15 @@ class NodeAddType extends NodeType
{ {
$builder->add( $builder->add(
'title', 'title',
'text', 'text'
array(
'label' => 'nodeTitle',
)
); );
$builder->add( $builder->add(
'position', 'position',
'hidden', 'hidden',
array( array(
'mapped' => false, 'mapped' => false,
'data' => 'after', 'data' => 'after',
) )
); );
@ -32,9 +29,9 @@ class NodeAddType extends NodeType
'pageContentType', 'pageContentType',
'choice', 'choice',
array( array(
'mapped' => false, 'mapped' => false,
'choices' => self::getPageContentTypes(), 'choices' => self::getPageContentTypes(),
'required' => false, 'required' => false,
) )
); );
@ -42,9 +39,9 @@ class NodeAddType extends NodeType
'pageModel', 'pageModel',
'choice', 'choice',
array( array(
'mapped' => false, 'mapped' => false,
'choices' => $this->getPagesModels(), 'choices' => $this->getPagesModels(),
'required' => true, 'required' => true,
) )
); );
@ -52,8 +49,8 @@ class NodeAddType extends NodeType
'page', 'page',
'model', 'model',
array( array(
'class' => 'Trinity\Bundle\ContentManagerBundle\Model\Page', 'class' => 'Trinity\Bundle\ContentManagerBundle\Model\Page',
'query' => \Trinity\Bundle\ContentManagerBundle\Model\PageQuery::getOrphansQuery(), 'query' => \Trinity\Bundle\ContentManagerBundle\Model\PageQuery::getOrphansQuery(),
'required' => false, 'required' => false,
) )
); );
@ -62,7 +59,7 @@ class NodeAddType extends NodeType
'nodeAliasId', 'nodeAliasId',
'choice', 'choice',
array( array(
'choices' => \Trinity\Bundle\ContentManagerBundle\Model\MenuPeer::getMenuWithNodesForType(), 'choices' => \Trinity\Bundle\ContentManagerBundle\Model\MenuPeer::getMenuWithNodesForType(),
'required' => true, 'required' => true,
) )
); );
@ -73,7 +70,7 @@ class NodeAddType extends NodeType
array( array(
'required' => false, 'required' => false,
'attr' => array( 'attr' => array(
'placeholder' => 'http://', 'placeholder' => 'https://',
), ),
) )
); );
@ -92,10 +89,10 @@ class NodeAddType extends NodeType
{ {
return array( return array(
'newpage' => 'New page', 'newpage' => 'New page',
'page' => 'Page', 'page' => 'Page',
'alias' => 'Alias', 'alias' => 'Alias',
'url' => 'URL', 'url' => 'URL',
'nopage' => 'No page', 'nopage' => 'No page',
); );
} }

View file

@ -15,9 +15,8 @@ class NodeMoveType extends NodeType
'position', 'position',
'hidden', 'hidden',
array( array(
// 'property_path' => false, 'mapped' => false,
'mapped' => false, 'data'=> 'after',
'data' => 'after',
) )
); );
@ -25,12 +24,11 @@ class NodeMoveType extends NodeType
'reference', 'reference',
'model', 'model',
array( array(
'class' => 'Trinity\Bundle\ContentManagerBundle\Model\Node', 'class' => 'Trinity\Bundle\ContentManagerBundle\Model\Node',
'query' => \Trinity\Bundle\ContentManagerBundle\Model\NodeQuery::getReferences($builder->getData()), 'query' => \Trinity\Bundle\ContentManagerBundle\Model\NodeQuery::getReferences($builder->getData()),
'property' => 'levelRender', 'property' => 'levelRender',
// 'property_path' => false, 'mapped' => false,
'mapped' => false, 'required' => true,
'required' => true,
) )
); );
} }

View file

@ -49,10 +49,7 @@ class NodeType extends AbstractType
{ {
$builder->add( $builder->add(
'title', 'title',
'text', 'text'
array(
'label' => 'nodeTitle',
)
); );
$builder->add( $builder->add(
@ -67,9 +64,9 @@ class NodeType extends AbstractType
'pageContentType', 'pageContentType',
'choice', 'choice',
array( array(
'mapped' => false, 'mapped' => false,
'choices' => $this->getPageContentTypes(), 'choices' => $this->getPageContentTypes(),
'required' => true, 'required' => true,
) )
); );
@ -79,7 +76,7 @@ class NodeType extends AbstractType
array( array(
'required' => false, 'required' => false,
'attr' => array( 'attr' => array(
'placeholder' => 'http://', 'placeholder' => 'https://',
), ),
) )
); );
@ -136,8 +133,8 @@ class NodeType extends AbstractType
'page', 'page',
'model', 'model',
array( array(
'class' => 'Trinity\Bundle\ContentManagerBundle\Model\Page', 'class' => 'Trinity\Bundle\ContentManagerBundle\Model\Page',
'query' => \Trinity\Bundle\ContentManagerBundle\Model\PageQuery::getOrphansQuery(), 'query' => \Trinity\Bundle\ContentManagerBundle\Model\PageQuery::getOrphansQuery(),
'required' => false, 'required' => false,
) )
); );
@ -183,9 +180,9 @@ class NodeType extends AbstractType
'choice', 'choice',
array( array(
// 'property_path' => false, // 'property_path' => false,
'mapped' => false, 'mapped' => false,
'choices' => $this->getPagesModels(), 'choices' => $this->getPagesModels(),
'required' => true, 'required' => true,
) )
); );
} }

View file

@ -18,7 +18,7 @@ class PageMetasType extends PageType
'required' => false, 'required' => false,
'attr' => array( 'attr' => array(
'data-countable' => 1, 'data-countable' => 1,
'data-help' => 'seoTitleHelper' 'data-help' => 'Recommended maximum length: 70 characters.'
), ),
) )
); );
@ -30,7 +30,7 @@ class PageMetasType extends PageType
'required' => false, 'required' => false,
'attr' => array( 'attr' => array(
'data-countable' => 1, 'data-countable' => 1,
'data-help' => 'metaDescriptionHelper' 'data-help' => 'Recommended maximum length: 160 characters.'
), ),
) )
); );

View file

@ -3,6 +3,7 @@
namespace Trinity\Bundle\ContentManagerBundle\Form\Type; namespace Trinity\Bundle\ContentManagerBundle\Form\Type;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Trinity\Bundle\ContentManagerBundle\Model\PageQuery;
class PagePermissionsType extends PageType class PagePermissionsType extends PageType
{ {
@ -44,8 +45,11 @@ class PagePermissionsType extends PageType
'dataModelId', 'dataModelId',
'choice', 'choice',
array( array(
'choices' => \Trinity\Bundle\ContentManagerBundle\Model\PageQuery::getModelForDataModels($dataModels), 'choices' => PageQuery::getModelForDataModels($dataModels),
'required' => false, 'required' => false,
// 'attr' => array(
// 'class' => 'chosen-select',
// ),
) )
); );
} }

View file

@ -54,13 +54,13 @@ class PageSitemapType extends PageType
public function getPagesFrequency() public function getPagesFrequency()
{ {
$frequencys = array( $frequencys = array(
'always' => 'always', 'always' => 'Always',
'hourly' => 'hourly', 'hourly' => 'Hourly',
'daily' => 'daily', 'daily' => 'Daily',
'weekly' => 'weekly', 'weekly' => 'Weekly',
'monthly' => 'monthly', 'monthly' => 'Monthly',
'yearly' => 'yearly', 'yearly' => 'Yearly',
'never' => 'never' 'never' => 'Never'
); );

View file

@ -51,9 +51,6 @@ cms:
saved: 'Données sauvegardées.' saved: 'Données sauvegardées.'
node: node:
#nav:
# list:
# title: "Sélection d'une navigations"
error: error:
unselected: 'Vous devez sélectionner une navigation pour continuer.' unselected: 'Vous devez sélectionner une navigation pour continuer.'

View file

@ -1,267 +1,271 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext"> <file source-language="en" datatype="plaintext" original="file.ext">
<body> <body>
<trans-unit id="1"> <trans-unit id="1">
<source>Nav</source> <source>Nav</source>
<target>Navigation</target> <target>Navigation</target>
</trans-unit> </trans-unit>
<trans-unit id="2"> <trans-unit id="2">
<source>name</source> <source>Name</source>
<target>Nom</target> <target>Nom</target>
</trans-unit> </trans-unit>
<trans-unit id="3"> <trans-unit id="3">
<source>title</source> <source>Title</source>
<target>Titre</target> <target>Titre</target>
</trans-unit> </trans-unit>
<trans-unit id="4"> <trans-unit id="4">
<source>Menus</source> <source>Menus</source>
<target>Menus</target> <target>Menus</target>
</trans-unit> </trans-unit>
<trans-unit id="5"> <trans-unit id="5">
<source>Medias</source> <source>Medias</source>
<target>Médias</target> <target>Médias</target>
</trans-unit> </trans-unit>
<trans-unit id="6"> <trans-unit id="6">
<source>Categories</source> <source>Categories</source>
<target>Catégories</target> <target>Catégories</target>
</trans-unit> </trans-unit>
<trans-unit id="7"> <trans-unit id="7">
<source>Editorial blocks</source> <source>Editorial blocks</source>
<target>Blocs éditoriaux</target> <target>Blocs éditoriaux</target>
</trans-unit> </trans-unit>
<trans-unit id="8"> <trans-unit id="8">
<source>Navs</source> <source>Navs</source>
<target>Navigations</target> <target>Navigations</target>
</trans-unit> </trans-unit>
<trans-unit id="9"> <trans-unit id="9">
<source>Pages</source> <source>Pages</source>
<target>Pages</target> <target>Pages</target>
</trans-unit> </trans-unit>
<trans-unit id="10"> <trans-unit id="10">
<source>Culture</source> <source>Culture</source>
<target>Langue</target> <target>Langue</target>
</trans-unit> </trans-unit>
<trans-unit id="11"> <trans-unit id="11">
<source>Domain</source> <source>Domain</source>
<target>Nom de domaine</target> <target>Nom de domaine</target>
</trans-unit> </trans-unit>
<trans-unit id="12"> <trans-unit id="12">
<source>The couple domain/culture must be defined and unique.</source> <source>The couple domain/culture must be defined and unique.</source>
<target>Le couple nom de domaine/culture doit être renseigné et unique.</target> <target>Le couple nom de domaine/culture doit être renseigné et unique.</target>
</trans-unit> </trans-unit>
<trans-unit id="13"> <trans-unit id="13">
<source>New editorial block</source> <source>New editorial block</source>
<target>Nouveau bloc éditorial</target> <target>Nouveau bloc éditorial</target>
</trans-unit> </trans-unit>
<trans-unit id="14"> <trans-unit id="14">
<source>action</source> <source>Action</source>
<target>Action</target> <target>Action</target>
</trans-unit> </trans-unit>
<trans-unit id="15"> <trans-unit id="15">
<source>New nav</source> <source>New nav</source>
<target>Nouvelle navigation</target> <target>Nouvelle navigation</target>
</trans-unit> </trans-unit>
<trans-unit id="16"> <trans-unit id="16">
<source>New page</source> <source>New page</source>
<target>Nouvelle page</target> <target>Nouvelle page</target>
</trans-unit> </trans-unit>
<trans-unit id="17"> <trans-unit id="17">
<source>Edition of "%toString%"</source> <source>Edition of "%toString%"</source>
<target>Édition de « %toString% »</target> <target>Édition de « %toString% »</target>
</trans-unit> </trans-unit>
<trans-unit id="18"> <trans-unit id="18">
<source>seoTitleHelper</source> <source>Recommended maximum length: 70 characters.</source>
<target>Longueur max conseillée : 70 caractères.</target> <target>Longueur maximum conseillée : 70 caractères.</target>
</trans-unit> </trans-unit>
<trans-unit id="19"> <trans-unit id="19">
<source>metaDescriptionHelper</source> <source>Recommended maximum length: 160 characters.</source>
<target>Longueur max conseillée : 160 caractères.</target> <target>Longueur max conseillée : 160 caractères.</target>
</trans-unit> </trans-unit>
<trans-unit id="20"> <trans-unit id="21">
<source>metaKeywordsHelper</source> <source>Sitemap status</source>
<target>Édition de « %toString% »</target> <target>Publication</target>
</trans-unit> </trans-unit>
<trans-unit id="21"> <trans-unit id="22">
<source>Sitemap status</source> <source>Sitemap priority</source>
<target>Publication</target> <target>Priorité</target>
</trans-unit> </trans-unit>
<trans-unit id="22"> <trans-unit id="23">
<source>Sitemap priority</source> <source>Sitemap frequency</source>
<target>Priorité</target> <target>Fréquence de mise à jour</target>
</trans-unit> </trans-unit>
<trans-unit id="23"> <trans-unit id="24">
<source>Sitemap frequency</source> <source>Always</source>
<target>Fréquence de mise à jour</target> <target>Toujours</target>
</trans-unit> </trans-unit>
<trans-unit id="24"> <trans-unit id="25">
<source>always</source> <source>Hourly</source>
<target>Toujours</target> <target>Toutes les heures</target>
</trans-unit> </trans-unit>
<trans-unit id="25"> <trans-unit id="26">
<source>hourly</source> <source>Daily</source>
<target>Toutes les heures</target> <target>Tous les jours</target>
</trans-unit> </trans-unit>
<trans-unit id="26"> <trans-unit id="27">
<source>daily</source> <source>Weekly</source>
<target>Tous les jours</target> <target>Toutes les semaines</target>
</trans-unit> </trans-unit>
<trans-unit id="27"> <trans-unit id="28">
<source>weekly</source> <source>Monthly</source>
<target>Toutes les semaines</target> <target>Tous les mois</target>
</trans-unit> </trans-unit>
<trans-unit id="28"> <trans-unit id="29">
<source>monthly</source> <source>Yearly</source>
<target>Tous les mois</target> <target>Tous les ans</target>
</trans-unit> </trans-unit>
<trans-unit id="29"> <trans-unit id="30">
<source>yearly</source> <source>Never</source>
<target>Tous les ans</target> <target>Jamais</target>
</trans-unit> </trans-unit>
<trans-unit id="30"> <trans-unit id="34">
<source>never</source> <source>Block content1</source>
<target>Jamais</target> <target>Contenu 1</target>
</trans-unit> </trans-unit>
<trans-unit id="34"> <trans-unit id="35">
<source>Block content1</source> <source>Block content2</source>
<target>Contenu 1</target> <target>Contenu 2</target>
</trans-unit> </trans-unit>
<trans-unit id="35"> <trans-unit id="36">
<source>Block content2</source> <source>Block content3</source>
<target>Contenu 2</target> <target>Contenu 3</target>
</trans-unit> </trans-unit>
<trans-unit id="36"> <trans-unit id="37">
<source>Block content3</source> <source>Block content4</source>
<target>Contenu 3</target> <target>Contenu 4</target>
</trans-unit> </trans-unit>
<trans-unit id="37"> <trans-unit id="38">
<source>Block content4</source> <source>Block content5</source>
<target>Contenu 4</target> <target>Contenu 5</target>
</trans-unit> </trans-unit>
<trans-unit id="38"> <trans-unit id="39">
<source>Block content5</source> <source>Block content6</source>
<target>Contenu 5</target> <target>Contenu 6</target>
</trans-unit> </trans-unit>
<trans-unit id="39"> <trans-unit id="40">
<source>Block content6</source> <source>Block content7</source>
<target>Contenu 6</target> <target>Contenu 7</target>
</trans-unit> </trans-unit>
<trans-unit id="40"> <trans-unit id="41">
<source>Block content7</source> <source>Block content8</source>
<target>Contenu 7</target> <target>Contenu 8</target>
</trans-unit> </trans-unit>
<trans-unit id="41"> <trans-unit id="42">
<source>Block content8</source> <source>Block mailto</source>
<target>Contenu 8</target> <target>Destinataire</target>
</trans-unit> </trans-unit>
<trans-unit id="42"> <trans-unit id="43">
<source>Block mailto</source> <source>Block message</source>
<target>Destinataire</target> <target>Message</target>
</trans-unit> </trans-unit>
<trans-unit id="43"> <trans-unit id="44">
<source>Block message</source> <source>New menu</source>
<target>Message</target> <target>Nouveau menu</target>
</trans-unit> </trans-unit>
<trans-unit id="44"> <trans-unit id="45">
<source>New menu</source> <source>Node_id</source>
<target>Nouveau menu</target> <target>Noeud actif</target>
</trans-unit> </trans-unit>
<trans-unit id="45"> <trans-unit id="46">
<source>Node_id</source> <source>Updated_at</source>
<target>Noeud actif</target> <target>Mise à jour le</target>
</trans-unit> </trans-unit>
<trans-unit id="46"> <trans-unit id="47">
<source>Updated_at</source> <source>Created_at</source>
<target>Mise à jour le</target> <target>Créé le</target>
</trans-unit> </trans-unit>
<trans-unit id="47"> <trans-unit id="48">
<source>Created_at</source> <source>Block content1</source>
<target>Créé le</target> <target>Contenu 1</target>
</trans-unit> </trans-unit>
<trans-unit id="48"> <trans-unit id="49">
<source>Block content1</source> <source>Block content2</source>
<target>Contenu 1</target> <target>Contenu 2</target>
</trans-unit> </trans-unit>
<trans-unit id="49"> <trans-unit id="50">
<source>Block content2</source> <source>Block content3</source>
<target>Contenu 2</target> <target>Contenu 3</target>
</trans-unit> </trans-unit>
<trans-unit id="50"> <trans-unit id="51">
<source>Block content3</source> <source>Block content4</source>
<target>Contenu 3</target> <target>Contenu 4</target>
</trans-unit> </trans-unit>
<trans-unit id="51"> <trans-unit id="52">
<source>Block content4</source> <source>Block content5</source>
<target>Contenu 4</target> <target>Contenu 5</target>
</trans-unit> </trans-unit>
<trans-unit id="52"> <trans-unit id="53">
<source>Block content5</source> <source>Block content6</source>
<target>Contenu 5</target> <target>Contenu 6</target>
</trans-unit> </trans-unit>
<trans-unit id="53"> <trans-unit id="54">
<source>Block content6</source> <source>Block content7</source>
<target>Contenu 6</target> <target>Contenu 7</target>
</trans-unit> </trans-unit>
<trans-unit id="54"> <trans-unit id="55">
<source>Block content7</source> <source>Block content8</source>
<target>Contenu 7</target> <target>Contenu 8</target>
</trans-unit> </trans-unit>
<trans-unit id="55"> <trans-unit id="56">
<source>Block content8</source> <source>Block mailto</source>
<target>Contenu 8</target> <target>Destinataire</target>
</trans-unit> </trans-unit>
<trans-unit id="56"> <trans-unit id="57">
<source>Block mailto</source> <source>Block message</source>
<target>Destinataire</target> <target>Message</target>
</trans-unit> </trans-unit>
<trans-unit id="57"> <trans-unit id="58">
<source>Block message</source> <source>Block editorial blocks</source>
<target>Message</target> <target>Blocs éditoriaux</target>
</trans-unit> </trans-unit>
<trans-unit id="58"> <trans-unit id="59">
<source>Block editorial blocks</source> <source>Block slider</source>
<target>Blocs éditoriaux</target> <target>Visionneuse</target>
</trans-unit> </trans-unit>
<trans-unit id="59"> <trans-unit id="60">
<source>Block slider</source> <source>Block image</source>
<target>Visionneuse</target> <target>Illustration</target>
</trans-unit> </trans-unit>
<trans-unit id="60"> <trans-unit id="61">
<source>Block image</source> <source>Block emag posts</source>
<target>Illustration</target> <target>Publication à la une</target>
</trans-unit> </trans-unit>
<trans-unit id="61"> <trans-unit id="62">
<source>Block emag posts</source> <source>Block select emag post test</source>
<target>Publication à la une</target> <target>Article : On a testé pour vous</target>
</trans-unit> </trans-unit>
<trans-unit id="62"> <trans-unit id="63">
<source>Block select emag post test</source> <source>Block select emag post meet</source>
<target>Article : On a testé pour vous</target> <target>Article : rencontre</target>
</trans-unit> </trans-unit>
<trans-unit id="63"> <trans-unit id="64">
<source>Block select emag post meet</source> <source>Block select emag post dom</source>
<target>Article : rencontre</target> <target>Article : la minute domotique</target>
</trans-unit> </trans-unit>
<trans-unit id="64"> <trans-unit id="65">
<source>Block select emag post dom</source> <source>tinymce.add.media</source>
<target>Article : la minute domotique</target> <target>Ajouter un média</target>
</trans-unit> </trans-unit>
<trans-unit id="65"> <trans-unit id="66">
<source>tinymce.add.media</source> <source>Is orphan</source>
<target>Ajouter un média</target> <target>Orphelin(e)</target>
</trans-unit> </trans-unit>
<trans-unit id="66"> <trans-unit id="67">
<source>Is orphan</source> <source>admin.metas.dictionary.title</source>
<target>Orphelin(e)</target> <target>Dictionnaire</target>
</trans-unit> </trans-unit>
<trans-unit id="67"> <trans-unit id="69">
<source>admin.metas.dictionary.title</source> <source>Edition of "%title%"</source>
<target>Dictionnaire</target> <target>Édition de « %title% »</target>
</trans-unit> </trans-unit>
<trans-unit id="69"> <trans-unit id="70">
<source>Edition of "%title%"</source> <source>Tree management</source>
<target>Édition de « %title% »</target> <target>Gestion de l'arborescence</target>
</trans-unit> </trans-unit>
</body> <trans-unit id="71">
</file> <source>Regex available, eg: regex:/.*\.example.com/s</source>
<target>Utilisation possible d'une regex, exemple : regex:/.*\.example.com/s</target>
</trans-unit>
</body>
</file>
</xliff> </xliff>

View file

@ -45,8 +45,7 @@ class NodeLoader extends Loader
$url = $node->getUrl(); $url = $node->getUrl();
$page = $node->getPage(); $page = $node->getPage();
$controller = $node->getController() ? $node->getController( $controller = $node->getController() ? $node->getController() : 'TrinityContentManagerBundle:Page:catchAll';
) : 'TrinityContentManagerBundle:Page:catchAll';
if ($node->getNodeAlias() && !$node->getNodeAlias()->getPage()) { if ($node->getNodeAlias() && !$node->getNodeAlias()->getPage()) {
continue; continue;

View file

@ -1,127 +0,0 @@
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>nav</source>
<target>Navigation</target>
</trans-unit>
<trans-unit id="2">
<source>name</source>
<target>Nom</target>
</trans-unit>
<trans-unit id="3">
<source>title</source>
<target>Titre</target>
</trans-unit>
<trans-unit id="4">
<source>Menus</source>
<target>Menus</target>
</trans-unit>
<trans-unit id="5">
<source>Medias</source>
<target>Médias</target>
</trans-unit>
<trans-unit id="6">
<source>Categories</source>
<target>Catégories</target>
</trans-unit>
<trans-unit id="7">
<source>Editorial blocks</source>
<target>Blocs éditoriaux</target>
</trans-unit>
<trans-unit id="8">
<source>Navs</source>
<target>Navigations</target>
</trans-unit>
<trans-unit id="9">
<source>Pages</source>
<target>Pages</target>
</trans-unit>
<trans-unit id="10">
<source>culture</source>
<target>Langue</target>
</trans-unit>
<trans-unit id="11">
<source>domain</source>
<target>Nom de domaine</target>
</trans-unit>
<trans-unit id="12">
<source>The couple domain/culture must be defined and unique.</source>
<target>Le couple nom de domaine/culture doit être renseigné et unique.</target>
</trans-unit>
<trans-unit id="13">
<source>New editorial block</source>
<target>Nouveau bloc éditorial</target>
</trans-unit>
<trans-unit id="14">
<source>action</source>
<target>Action</target>
</trans-unit>
<trans-unit id="15">
<source>New nav</source>
<target>Nouvelle navigation</target>
</trans-unit>
<trans-unit id="16">
<source>New page</source>
<target>Nouvelle page</target>
</trans-unit>
<trans-unit id="17">
<source>Edition of "%toString%"</source>
<target>Édition de « %toString% »</target>
</trans-unit>
<trans-unit id="18">
<source>seoTitleHelper</source>
<target>Longueur max conseillée : 70 caractères.</target>
</trans-unit>
<trans-unit id="19">
<source>metaDescriptionHelper</source>
<target>Longueur max conseillée : 160 caractères.</target>
</trans-unit>
<trans-unit id="20">
<source>metaKeywordsHelper</source>
<target>Édition de « %toString% »</target>
</trans-unit>
<trans-unit id="21">
<source>Sitemap status</source>
<target>Publication</target>
</trans-unit>
<trans-unit id="22">
<source>Sitemap priority</source>
<target>Priorité</target>
</trans-unit>
<trans-unit id="23">
<source>Sitemap frequency</source>
<target>Fréquence de mise à jour</target>
</trans-unit>
<trans-unit id="24">
<source>always</source>
<target>Toujours</target>
</trans-unit>
<trans-unit id="25">
<source>hourly</source>
<target>Toutes les heures</target>
</trans-unit>
<trans-unit id="26">
<source>daily</source>
<target>Tous les jours</target>
</trans-unit>
<trans-unit id="27">
<source>weekly</source>
<target>Toutes les semaines</target>
</trans-unit>
<trans-unit id="28">
<source>monthly</source>
<target>Tous les mois</target>
</trans-unit>
<trans-unit id="29">
<source>yearly</source>
<target>Tous les ans</target>
</trans-unit>
<trans-unit id="30">
<source>never</source>
<target>Jamais</target>
</trans-unit>
</body>
</file>
</xliff>

View file

@ -1,19 +1,19 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext"> <file source-language="en" datatype="plaintext" original="file.ext">
<body> <body>
<trans-unit id="1"> <trans-unit id="1">
<source>Icon</source> <source>Icon</source>
<target>Icône</target> <target>Icône</target>
</trans-unit> </trans-unit>
<trans-unit id="2"> <trans-unit id="2">
<source>Label</source> <source>Label</source>
<target>Libellé</target> <target>Libellé</target>
</trans-unit> </trans-unit>
<trans-unit id="3"> <trans-unit id="3">
<source>thumbnail</source> <source>thumbnail</source>
<target>Miniature</target> <target>Miniature</target>
</trans-unit> </trans-unit>
<trans-unit id="4"> <trans-unit id="4">
<source>mimes</source> <source>mimes</source>
<target>Types de mime</target> <target>Types de mime</target>
@ -82,14 +82,14 @@
<source>New type</source> <source>New type</source>
<target>Nouveau type</target> <target>Nouveau type</target>
</trans-unit> </trans-unit>
<trans-unit id="21"> <trans-unit id="21">
<source>label</source> <source>label</source>
<target>Libellé</target> <target>Libellé</target>
</trans-unit> </trans-unit>
<trans-unit id="22"> <trans-unit id="22">
<source>icon</source> <source>icon</source>
<target>Icone</target> <target>Icone</target>
</trans-unit> </trans-unit>
<trans-unit id="23"> <trans-unit id="23">
<source>category</source> <source>category</source>
<target>Catégorie</target> <target>Catégorie</target>
@ -103,29 +103,29 @@
<target>Format</target> <target>Format</target>
</trans-unit> </trans-unit>
<trans-unit id="26"> <trans-unit id="26">
<source>Add a media</source> <source>Add a media</source>
<target>Ajouter un média</target> <target>Ajouter un média</target>
</trans-unit> </trans-unit>
<trans-unit id="27"> <trans-unit id="27">
<source>List of medias</source> <source>List of medias</source>
<target>Liste des médias</target> <target>Liste des médias</target>
</trans-unit> </trans-unit>
<trans-unit id="28"> <trans-unit id="28">
<source>Thumbnail</source> <source>Thumbnail</source>
<target>Miniature</target> <target>Miniature</target>
</trans-unit> </trans-unit>
<trans-unit id="29"> <trans-unit id="29">
<source>select</source> <source>select</source>
<target>Choisir</target> <target>Choisir</target>
</trans-unit> </trans-unit>
<trans-unit id="30"> <trans-unit id="30">
<source>Webpathforicon</source> <source>Webpathforicon</source>
<target>Icône</target> <target>Icône</target>
</trans-unit> </trans-unit>
<trans-unit id="31"> <trans-unit id="31">
<source>Webpathforthumbnail</source> <source>Webpathforthumbnail</source>
<target>Miniature</target> <target>Miniature</target>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

View file

@ -21,23 +21,28 @@ class NewsletterFilterType extends BaseAbstractType
$builder->add('name'); $builder->add('name');
$builder->add('senderName'); $builder->add('senderName');
$builder->add('senderEmail'); $builder->add('senderEmail');
$builder->add('modelId', $builder->add('modelId',
'model', 'model',
array( array(
'empty_value' => 'Tous', 'empty_value' => 'All',
'required' => false, 'required' => false,
'class' => 'Trinity\Bundle\NewsletterBundle\Model\Model' 'class' => 'Trinity\Bundle\NewsletterBundle\Model\Model',
) )
); );
$builder->add('sentAt','datetime', $builder->add(
array( 'sentAt',
'widget' => 'single_text', 'datetime',
'input' => 'string', array(
'format' => 'yyyy-MM-dd hh:mm:ss', 'widget' => 'single_text',
'with_seconds' => true, 'input' => 'string',
'attr' => array('class' => 'datetimepicker') 'format' => 'yyyy-MM-dd hh:mm:ss',
) 'with_seconds' => true,
'attr' => array(
'class' => 'datetimepicker',
),
)
); );
} }
} }

View file

@ -36,9 +36,9 @@ class NewsletterType extends BaseAbstractType
'groups', 'groups',
'model', 'model',
array( array(
'class' => 'FOS\UserBundle\Propel\Group', 'class' => 'FOS\UserBundle\Propel\Group',
'multiple' => true, 'multiple' => true,
'expanded' => true 'expanded' => true
) )
); );
} }

View file

@ -8,14 +8,12 @@
<column name="is_read" type="boolean" defaultValue="false" /> <column name="is_read" type="boolean" defaultValue="false" />
<column name="user_id" type="integer" /> <column name="user_id" type="integer" />
<column name="template_id" type="varchar" size="255" /> <column name="template_id" type="varchar" size="255" />
<foreign-key name="fk_notification_1" foreignTable="fos_user"> <foreign-key name="fk_notification_1" foreignTable="fos_user">
<reference local="user_id" foreign="id" /> <reference local="user_id" foreign="id" />
</foreign-key> </foreign-key>
<foreign-key name="fk_notification_2" foreignTable="notification_template"> <foreign-key name="fk_notification_2" foreignTable="notification_template">
<reference local="template_id" foreign="id" /> <reference local="template_id" foreign="id" />
</foreign-key> </foreign-key>
<behavior name="timestampable" /> <behavior name="timestampable" />
</table> </table>
<table name="notification_template" phpName="Template" allowPkInsert="true"> <table name="notification_template" phpName="Template" allowPkInsert="true">
@ -28,4 +26,4 @@
<unique-column name="reference" size="255"/> <unique-column name="reference" size="255"/>
</unique> </unique>
</table> </table>
</database> </database>

View file

@ -1,15 +1,15 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext"> <file source-language="en" datatype="plaintext" original="file.ext">
<body> <body>
<trans-unit id="1"> <trans-unit id="1">
<source>Link</source> <source>Link</source>
<target>Lien</target> <target>Lien</target>
</trans-unit> </trans-unit>
<trans-unit id="2"> <trans-unit id="2">
<source>Picture</source> <source>Picture</source>
<target>Image</target> <target>Image</target>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

View file

@ -2,6 +2,7 @@
namespace Trinity\Bundle\UserBundle\Controller; namespace Trinity\Bundle\UserBundle\Controller;
use FOS\UserBundle\Propel\User;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
@ -95,6 +96,7 @@ class UserAdminController extends BaseAdminController
*/ */
public function generatePasswordAction($object, $token, Request $request) public function generatePasswordAction($object, $token, Request $request)
{ {
/** @var User $object */
$redirect = $this->redirect($this->generateUrl('FOSUserBundleUserAdmin_index')); $redirect = $this->redirect($this->generateUrl('FOSUserBundleUserAdmin_index'));
if ($this->getRemoveToken() !== $token) { if ($this->getRemoveToken() !== $token) {
@ -109,7 +111,13 @@ class UserAdminController extends BaseAdminController
$new_password = substr(sha1(uniqid() + mt_rand() + time()), 0, 15); $new_password = substr(sha1(uniqid() + mt_rand() + time()), 0, 15);
$this->get('fos_user.user_manager')->updateUser($object->setPlainPassword($new_password)); $object->setPlainPassword($new_password);
if($this->container->getParameter('trinity_user.active_when_generate') === true){
$object->setEnabled(true);
}
$this->get('fos_user.user_manager')->updateUser($object);
$this->sendGeneratedPassword($object, $new_password); $this->sendGeneratedPassword($object, $new_password);
@ -135,9 +143,13 @@ class UserAdminController extends BaseAdminController
$message = $message =
\Swift_Message::newInstance() \Swift_Message::newInstance()
->setSubject($this->get('translator')->trans('New password')) ->setSubject($this->get('translator')->trans('New password'))
->setTo(array($user->getEmail())) ->setFrom(
->setBody($body, 'text/html') $this->container->getParameter('trinity_user.sender_mail'),
$this->container->getParameter('trinity_user.sender_name')
)
->setTo(array($user->getEmail()))
->setBody($body, 'text/html')
; ;
return $this->get('mailer')->send($message); return $this->get('mailer')->send($message);

View file

@ -24,6 +24,18 @@ class Configuration implements ConfigurationInterface
->scalarNode('bo_auth_role') ->scalarNode('bo_auth_role')
->defaultValue('ROLE_WEBMASTER') ->defaultValue('ROLE_WEBMASTER')
->end() ->end()
->booleanNode('active_when_generate')
->defaultValue(false)
->end()
->scalarNode('sender_mail')
->defaultValue('noreply@webetdesign.com')
->end()
->scalarNode('sender_name')
->defaultValue('Web&Design')
->end()
->arrayNode('roles') ->arrayNode('roles')
->prototype('scalar') ->prototype('scalar')
->end() ->end()

View file

@ -27,5 +27,9 @@ class TrinityUserExtension extends Extension
$container->setParameter('trinity_user.roles', isset($config['roles']) ? $config['roles'] : array()); $container->setParameter('trinity_user.roles', isset($config['roles']) ? $config['roles'] : array());
$container->setParameter('trinity_user.bo_auth_role', $config['bo_auth_role']); $container->setParameter('trinity_user.bo_auth_role', $config['bo_auth_role']);
$container->setParameter('trinity_user.active_when_generate', $config['active_when_generate']);
$container->setParameter('trinity_user.sender_mail', $config['sender_mail']);
$container->setParameter('trinity_user.sender_name', $config['sender_name']);
} }
} }

View file

@ -1,131 +1,131 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext"> <file source-language="en" datatype="plaintext" original="file.ext">
<body> <body>
<trans-unit id="1"> <trans-unit id="1">
<source>id</source> <source>id</source>
<target>ID</target> <target>ID</target>
</trans-unit> </trans-unit>
<trans-unit id="2"> <trans-unit id="2">
<source>username</source> <source>username</source>
<target>Identifiant</target> <target>Identifiant</target>
</trans-unit> </trans-unit>
<trans-unit id="3"> <trans-unit id="3">
<source>email</source> <source>email</source>
<target>Email</target> <target>Email</target>
</trans-unit> </trans-unit>
<trans-unit id="4"> <trans-unit id="4">
<source>enabled</source> <source>enabled</source>
<target>Activé</target> <target>Activé</target>
</trans-unit> </trans-unit>
<trans-unit id="5"> <trans-unit id="5">
<source>Last_login</source> <source>Last_login</source>
<target>Dernière connexion</target> <target>Dernière connexion</target>
</trans-unit> </trans-unit>
<trans-unit id="6"> <trans-unit id="6">
<source>locked</source> <source>locked</source>
<target>Verrouillé</target> <target>Verrouillé</target>
</trans-unit> </trans-unit>
<trans-unit id="7"> <trans-unit id="7">
<source>roles</source> <source>roles</source>
<target>Rôle</target> <target>Rôle</target>
</trans-unit> </trans-unit>
<trans-unit id="8"> <trans-unit id="8">
<source>created_at</source> <source>created_at</source>
<target>Créé(e) le</target> <target>Créé(e) le</target>
</trans-unit> </trans-unit>
<trans-unit id="9"> <trans-unit id="9">
<source>updated_at</source> <source>updated_at</source>
<target>Mis(e) à jour le</target> <target>Mis(e) à jour le</target>
</trans-unit> </trans-unit>
<trans-unit id="10"> <trans-unit id="10">
<source>groups</source> <source>groups</source>
<target>Groupes</target> <target>Groupes</target>
</trans-unit> </trans-unit>
<trans-unit id="11"> <trans-unit id="11">
<source>code</source> <source>code</source>
<target>Code</target> <target>Code</target>
</trans-unit> </trans-unit>
<trans-unit id="12"> <trans-unit id="12">
<source>First</source> <source>First</source>
<target>Mot de passe</target> <target>Mot de passe</target>
</trans-unit> </trans-unit>
<trans-unit id="13"> <trans-unit id="13">
<source>Second</source> <source>Second</source>
<target>Répéter le mot de passe</target> <target>Répéter le mot de passe</target>
</trans-unit> </trans-unit>
<trans-unit id="14"> <trans-unit id="14">
<source>Groups</source> <source>Groups</source>
<target>Groupes</target> <target>Groupes</target>
</trans-unit> </trans-unit>
<trans-unit id="15"> <trans-unit id="15">
<source>Users</source> <source>Users</source>
<target>Utilisateurs</target> <target>Utilisateurs</target>
</trans-unit> </trans-unit>
<trans-unit id="16"> <trans-unit id="16">
<source>Username</source> <source>Username</source>
<target>Identifiant</target> <target>Identifiant</target>
</trans-unit> </trans-unit>
<trans-unit id="17"> <trans-unit id="17">
<source>Enabled</source> <source>Enabled</source>
<target>Activé</target> <target>Activé</target>
</trans-unit> </trans-unit>
<trans-unit id="18"> <trans-unit id="18">
<source>Locked</source> <source>Locked</source>
<target>Verrouillé</target> <target>Verrouillé</target>
</trans-unit> </trans-unit>
<trans-unit id="19"> <trans-unit id="19">
<source>Group</source> <source>Group</source>
<target>Groupe</target> <target>Groupe</target>
</trans-unit> </trans-unit>
<trans-unit id="20"> <trans-unit id="20">
<source>Edition of "%username%"</source> <source>Edition of "%username%"</source>
<target>Édition de « %username% »</target> <target>Édition de « %username% »</target>
</trans-unit> </trans-unit>
<trans-unit id="21"> <trans-unit id="21">
<source>New group</source> <source>New group</source>
<target>Nouveau groupe</target> <target>Nouveau groupe</target>
</trans-unit> </trans-unit>
<trans-unit id="22"> <trans-unit id="22">
<source>User id</source> <source>User id</source>
<target>ID Utilisateur</target> <target>ID Utilisateur</target>
</trans-unit> </trans-unit>
<trans-unit id="23"> <trans-unit id="23">
<source>user</source> <source>user</source>
<target>Identifiant</target> <target>Identifiant</target>
</trans-unit> </trans-unit>
<trans-unit id="24"> <trans-unit id="24">
<source>Users's logs</source> <source>Users's logs</source>
<target>Logs des utilisateurs</target> <target>Logs des utilisateurs</target>
</trans-unit> </trans-unit>
<trans-unit id="25"> <trans-unit id="25">
<source>Createdat to string</source> <source>Createdat to string</source>
<target>Créé(e) le</target> <target>Créé(e) le</target>
</trans-unit> </trans-unit>
<trans-unit id="26"> <trans-unit id="26">
<source>user_id</source> <source>user_id</source>
<target>ID Utilisateur</target> <target>ID Utilisateur</target>
</trans-unit> </trans-unit>
<trans-unit id="27"> <trans-unit id="27">
<source>New user</source> <source>New user</source>
<target>Nouvel utilisateur</target> <target>Nouvel utilisateur</target>
</trans-unit> </trans-unit>
<trans-unit id="28"> <trans-unit id="28">
<source>User</source> <source>User</source>
<target>Utilisateur</target> <target>Utilisateur</target>
</trans-unit> </trans-unit>
<trans-unit id="29"> <trans-unit id="29">
<source>Administrator</source> <source>Administrator</source>
<target>Administrateur</target> <target>Administrateur</target>
</trans-unit> </trans-unit>
<trans-unit id="30"> <trans-unit id="30">
<source>Super administrator</source> <source>Super administrator</source>
<target>Super administrateur</target> <target>Super administrateur</target>
</trans-unit> </trans-unit>
<trans-unit id="31"> <trans-unit id="31">
<source>Edition of "%name%"</source> <source>Edition of "%name%"</source>
<target>Édition de « %name% »</target> <target>Édition de « %name% »</target>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

View file

@ -1,3 +1,3 @@
error: error:
configuration: 'File not configured.' configuration: 'Fichier non configuré.'
notFound: 'File not found.' notFound: 'Fichier non trouvé.'

View file

@ -1,11 +1,11 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext"> <file source-language="en" datatype="plaintext" original="file.ext">
<body> <body>
<trans-unit id="1"> <trans-unit id="1">
<source>Global vars editor</source> <source>Global vars editor</source>
<target>Éditeur de variables globales</target> <target>Éditeur de variables globales</target>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>
</xliff> </xliff>

View file

@ -7,7 +7,15 @@
{% block file_widget %} {% block file_widget %}
{# {% set dir = attr.upload_dir is defined ? attr.upload_dir ~ '/' : '/' %} #} {# {% set dir = attr.upload_dir is defined ? attr.upload_dir ~ '/' : '/' %} #}
{% set filename = form.vars.data %}
{% if form.vars.data is not null %}
{% set filename = form.vars.data %}
{% elseif form.parent is defined and form.parent.vars.data is not null %}
{% set method = 'get' ~ name|capitalize ~ 'AsFile' %}
{% set filename = attribute(form.parent.vars.data, method, []) %}
{% else %}
{% set filename = null %}
{% endif %}
{% if filename %} {% if filename %}
{% set is_image = filename.__toString()|replace({'.png': '', '.jpg': '', '.jpeg': '', '.gif': ''})|length < filename.__toString()|length %} {% set is_image = filename.__toString()|replace({'.png': '', '.jpg': '', '.jpeg': '', '.gif': ''})|length < filename.__toString()|length %}