2017-02-07 16 views
1

Я расширяю SiteConfig и создаю новый Tabset. Я не могу заставить его работать правильно; при использовании специальных символов в таблицах макет смешивается.Silverstripe 3/Tabset/Special Chars/Issue

Я также пробовал с _t ('MyClass.MyMainTab', 'Public') и немецкий язык-yml без успеха. (также нет успеха с & Ouml;)

Как я могу использовать специальные символы в именах вкладок (Tabset-names)?

YML:

SiteConfig: 
    extensions: 
    - MyClass 

MyClass:

class MyClass extends DataExtension{ 

    public function updateCMSFields(FieldList $fields){ 

     $set = new TabSet(
      'ÖffentlicherBereich', // PROBLEM !!!!! 
       new Tab(
        'Einstellungen', 
         new LiteralField('Bla', 'Blabla') 
       ), 
       new Tab(
        'OtherTab', 
         new LiteralField('Blabla', 'Bla') 
       ), 
       new Tab(
        'AnotherTab', 
         new LiteralField('Blabla', 'Bla') 
       ) 
     ); 

     $fields->addFieldToTab('Root.Main.Main', $set); 
    } 
} 

enter image description here

+0

Что вы пытаетесь сделать? Из вашего кода вы добавляете еще один вкладку INSIDE Root.Main.Main (двойной «Main» звучит подозрительно для меня). Или вы хотите добавить одну вкладку BESIDE Main? – wmk

+0

hi wmk! Я добавил изображение на свой вопрос, чтобы продемонстрировать, что я делаю. –

+0

вместо магазина Zeiten я бы хотел использовать «Öffnungszeiten» –

ответ

3
  1. Я хотел бы попробовать использовать ->setTitle() добавить заголовок, содержащий Умляуты если formf ield ID имеет проблемы с умлаутами.

  2. добавить tabset на вкладку Root непосредственно, как это должно быть на том же уровне, как Root.Main

  3. Использование Tabset::create() вместо того, чтобы вместо new Tabset() для последовательного подключения (и возможного использования Injector)

Modified, непроверенный код:

$set = TabSet::create(
    'OpeningTimes', // PROBLEM !!!!! 
     Tab::create(
      'Einstellungen', 
       new LiteralField('Bla', 'Blabla') 
     ), 
     Tab::create(
      'OtherTab', 
       new LiteralField('Blabla', 'Bla') 
     ), 
     Tab::create(
      'AnotherTab', 
       new LiteralField('Blabla', 'Bla') 
     ) 
)->setTitle('Öffnungszeiten'); 

$fields->addFieldToTab('Root', $set); 
+0

и снова вы спасли мой день! Большое спасибо! TabSet :: create & setTitle работает так, как должно. также в сочетании с языком-yml. –

+0

в предыдущей версии ss3 возникла проблема с вкладками (в SiteConfig), добавленными к Root при нажатии save. Он всегда возвращался к первой вкладке. Где-то в Github я видел это обходное решение с использованием Root.Main.Main, чтобы предотвратить прыжки. Кажется, что проблема решена (здесь 3.4) –