setContext() public static method

Set the caching context, the page url.
public static setContext ( string $locale, string $url = null )
$locale string
$url string
Esempio n. 1
0
 public function boot()
 {
     /*
      * Set the page context for translation caching.
      */
     Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {
         if (!$page) {
             return;
         }
         $translate = Translator::instance();
         $translate->loadLocaleFromSession();
         Message::setContext($translate->getLocale(), $page->url);
     });
     /*
      * Adds language suffixes to content files.
      */
     Event::listen('cms.page.beforeRenderContent', function ($controller, $fileName) {
         if (!strlen(File::extension($fileName))) {
             $fileName .= '.htm';
         }
         /*
          * Splice the active locale in to the filename
          * - content.htm -> content.en.htm
          */
         $locale = Translator::instance()->getLocale();
         $fileName = substr_replace($fileName, '.' . $locale, strrpos($fileName, '.'), 0);
         if (($content = Content::loadCached($controller->getTheme(), $fileName)) !== null) {
             return $content;
         }
     });
     /*
      * Automatically replace form fields for multi lingual equivalents
      */
     Event::listen('backend.form.extendFieldsBefore', function ($widget) {
         if (!($model = $widget->model)) {
             return;
         }
         if (!method_exists($model, 'isClassExtendedWith')) {
             return;
         }
         if (!$model->isClassExtendedWith('RainLab.Translate.Behaviors.TranslatableModel')) {
             return;
         }
         if (!is_array($model->translatable)) {
             return;
         }
         if (!empty($widget->config->fields)) {
             $widget->fields = $this->processFormMLFields($widget->fields, $model);
         }
         if (!empty($widget->config->tabs['fields'])) {
             $widget->tabs['fields'] = $this->processFormMLFields($widget->tabs['fields'], $model);
         }
         if (!empty($widget->config->secondaryTabs['fields'])) {
             $widget->secondaryTabs['fields'] = $this->processFormMLFields($widget->secondaryTabs['fields'], $model);
         }
     });
 }
Esempio n. 2
0
 public function testGetCopiesFromDeprecated()
 {
     $this->seedDeprecatedData();
     Message::setContext('en-US');
     Message::get('Hello Piñata!');
     $newMessage = Message::whereCode('hello.piñata')->first();
     $deprecatedMessage = Message::whereCode('hello.pinata')->first();
     $this->assertNotNull($newMessage);
     $this->assertEquals($newMessage->messageData, $deprecatedMessage->messageData);
     Message::truncate();
 }
 public function boot()
 {
     /*
      * Set the page context for translation caching.
      */
     Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) {
         if (!$page) {
             return;
         }
         $translator = Translator::instance();
         Message::setContext($translator->getLocale(), $page->url);
     });
     /*
      * Adds language suffixes to content files.
      */
     Event::listen('cms.page.beforeRenderContent', function ($controller, $fileName) {
         if (!strlen(File::extension($fileName))) {
             $fileName .= '.htm';
         }
         /*
          * Splice the active locale in to the filename
          * - content.htm -> content.en.htm
          */
         $locale = Translator::instance()->getLocale();
         $fileName = substr_replace($fileName, '.' . $locale, strrpos($fileName, '.'), 0);
         if (($content = Content::loadCached($controller->getTheme(), $fileName)) !== null) {
             return $content;
         }
     });
     /*
      * Import messages defined by the theme
      */
     Event::listen('cms.theme.setActiveTheme', function ($code) {
         try {
             (new ThemeScanner())->scanThemeConfigForMessages();
         } catch (Exception $ex) {
         }
     });
     /*
      * Prune localized content files from template list
      */
     Event::listen('pages.content.templateList', function ($widget, $templates) {
         return $this->pruneTranslatedContentTemplates($templates);
     });
 }
Esempio n. 4
0
 /**
  * Set the page context for translation caching.
  */
 public function setMessageContext($page)
 {
     if (!$page) {
         return;
     }
     $translator = Translator::instance();
     Message::setContext($translator->getLocale(), $page->url);
 }