diff --git a/core/lib/Thelia/Config/Resources/config.xml b/core/lib/Thelia/Config/Resources/config.xml index 875215015..da28af735 100755 --- a/core/lib/Thelia/Config/Resources/config.xml +++ b/core/lib/Thelia/Config/Resources/config.xml @@ -154,6 +154,7 @@
+ diff --git a/core/lib/Thelia/Config/Resources/routing/admin.xml b/core/lib/Thelia/Config/Resources/routing/admin.xml index 52495fd05..19346ca1c 100755 --- a/core/lib/Thelia/Config/Resources/routing/admin.xml +++ b/core/lib/Thelia/Config/Resources/routing/admin.xml @@ -949,6 +949,10 @@ Thelia\Controller\Admin\LangController::deleteAction + + Thelia\Controller\Admin\LangController::defaultBehaviorAction + + diff --git a/core/lib/Thelia/Controller/Admin/LangController.php b/core/lib/Thelia/Controller/Admin/LangController.php index 4be58dc26..dae52c089 100644 --- a/core/lib/Thelia/Controller/Admin/LangController.php +++ b/core/lib/Thelia/Controller/Admin/LangController.php @@ -34,6 +34,7 @@ use Thelia\Core\Security\Resource\AdminResources; use Thelia\Form\Exception\FormValidationException; use Thelia\Form\Lang\LangCreateForm; use Thelia\Form\Lang\LangUpdateForm; +use Thelia\Model\ConfigQuery; use Thelia\Model\LangQuery; @@ -49,7 +50,15 @@ class LangController extends BaseAdminController { if (null !== $response = $this->checkAuth(AdminResources::LANGUAGE, AccessManager::VIEW)) return $response; - return $this->render('languages'); + return $this->renderDefault(); + } + + public function renderDefault(array $param = array()) + { + return $this->render('languages', array_merge($param, array( + 'lang_without_translation' => ConfigQuery::getDefaultLangWhenNoTranslationAvailable(), + 'one_domain_per_lang' => ConfigQuery::read("one_domain_foreach_lang", false) + ))); } public function updateAction($lang_id) @@ -104,7 +113,7 @@ class LangController extends BaseAdminController $error_msg = $e->getMessage(); } - return $this->render('languages'); + return $this->renderDefault(); } protected function hydrateEvent($event,Form $form) @@ -187,7 +196,7 @@ class LangController extends BaseAdminController $this->getTranslator()->trans("%obj creation", array('%obj' => 'Lang')), $error_msg, $createForm, $ex); // At this point, the form has error, and should be redisplayed. - return $this->render('languages'); + return $this->renderDefault(); } @@ -209,9 +218,14 @@ class LangController extends BaseAdminController $error_msg = $ex->getMessage(); } - $this->render('languages', array( + return $this->renderDefault(array( 'error_delete_message' => $error_msg )); } + + public function defaultBehaviorAction() + { + + } } \ No newline at end of file diff --git a/core/lib/Thelia/Form/Lang/LangDefaultBehaviorForm.php b/core/lib/Thelia/Form/Lang/LangDefaultBehaviorForm.php new file mode 100644 index 000000000..23418a392 --- /dev/null +++ b/core/lib/Thelia/Form/Lang/LangDefaultBehaviorForm.php @@ -0,0 +1,85 @@ +. */ +/* */ +/*************************************************************************************/ + +namespace Thelia\Form\Lang; + +use Symfony\Component\Validator\Constraints\NotBlank; +use Symfony\Component\Validator\Constraints\Range; +use Thelia\Form\BaseForm; +use Thelia\Core\Translation\Translator; + + +/** + * Class LangDefaultBehaviorForm + * @package Thelia\Form\Lang + * @author Manuel Raynaud + */ +class LangDefaultBehaviorForm extends BaseForm +{ + + /** + * + * in this function you add all the fields you need for your Form. + * Form this you have to call add method on $this->formBuilder attribute : + * + * $this->formBuilder->add("name", "text") + * ->add("email", "email", array( + * "attr" => array( + * "class" => "field" + * ), + * "label" => "email", + * "constraints" => array( + * new \Symfony\Component\Validator\Constraints\NotBlank() + * ) + * ) + * ) + * ->add('age', 'integer'); + * + * @return null + */ + protected function buildForm() + { + $this->formBuilder + ->add('behavior', 'choice', array( + 'choices' => array( + 0 => Translator::getInstance()->trans("Strictly use the requested language"), + 1 => Translator::getInstance()->trans("Replace by the default language"), + ), + 'constraints' => array( + new NotBlank() + ), + 'label' => Translator::getInstance()->trans("If a translation is missing or incomplete :"), + 'label_attr' => array( + 'for' => 'defaultBehavior-form' + ) + )); + } + + /** + * @return string the name of you form. This name must be unique + */ + public function getName() + { + return 'thelia_lang_defaultBehavior'; + } +} \ No newline at end of file diff --git a/templates/admin/default/languages.html b/templates/admin/default/languages.html index e8a695c0b..9611d6b84 100644 --- a/templates/admin/default/languages.html +++ b/templates/admin/default/languages.html @@ -91,24 +91,25 @@
{intl l="Parameters"}
- - - + {form name="thelia.lang.defaultBehavior"} + + {form_field form=$form field="behavior"}
- +
- + {foreach $choices as $choice} + + {/foreach}
- + {/form_field} - + {/form}