Jacek Morek

Jacek Morek Programista hobbysta

Temat: Backend - zmiana etykiet wygenerowanych przez generator

Witam w generator.yml mam wpisane

config:
actions: ~
fields:
name: {label: Nazwa}
slug: {label: Url, help: Jakaś treść pomocy}


w ProduktForm.class mam wpisane

unset(
$this['created_at'], $this['updated_at']
);

$this->embedI18n(sfConfig::get('app_jezyki'));

1) Na liście elementów zmienia mi name na Nazwa i slug na "Url" natomiast jak wybiorę edycję to mam slug i a nie "url" i name a nie nazwa. Kożystam z i18n bo obsługuje 3 języki.
2) wpisana pomoc działa dla pól w głównej tabeli natomiast w tej z tłumaczniami nie wyświtla mi pomocy dla slug
Proszę o pomoc
PozdrawiamJacek Morek edytował(a) ten post dnia 28.01.11 o godzinie 21:58

konto usunięte

Temat: Backend - zmiana etykiet wygenerowanych przez generator

W domyślnej implementacji symfony, behaviour i18n załącza dane językowe jako podformularze o nazwie odpowiadającej nazwie kodu języka.

Jednak w generatorach bez przeciążenia domyślnego szablonu generatora nie jest możliwe adresowanie i odwoływanie się do danych zagnieżdżonych formularzy np. tytułowi sluga po polsku odpowiadałaby notacja pl.slug itd.

Najlepiej w definicji formularza i18n ProduktI18nForm dodać

$this['slug']->setLabel('Url');


wtedy dla każdego użycia tego pola w, nazwa będzie określona.

Ew. jeśli dla każdego języka nazwa opisu ma być różna, to np.

w formularzu ProduktForm wykorzystaj

$this[$kodJezyka]['slug'] = 'Nazwa pola dla danego języka';
Jacek Morek

Jacek Morek Programista hobbysta

Temat: Backend - zmiana etykiet wygenerowanych przez generator

Dzięki Łukasz za podpowiedz. Próbowałem dopisać do pliku ProduktTranslationForm.class ale wywala błąd. U mnie w proj nie ma pliku ProduktI18nForm. Wersje symfony mam 1.4.6

konto usunięte

Temat: Backend - zmiana etykiet wygenerowanych przez generator

A jak się nazywa tablica z danymi I18n tabeli Produkt?
Jacek Morek

Jacek Morek Programista hobbysta

Temat: Backend - zmiana etykiet wygenerowanych przez generator

Witam nie wiem jak sprawdzić o co pytasz. W klasie ProduktTransleteForm nie mam nic wpisane a w ProduktForm mam wpisane jak z tutoriala jobbeet

public function configure()
{
unset(
$this['created_at'], $this['updated_at']
);

$this->embedI18n(sfConfig::get('app_jezyki'));
}

Sprawdzałem i w widgetSchema mam pole field a w nim en,de i pl i są to obiekty klasy sfWidgetFormSchemaDecorator a w nich jest interesujące mnie pole "slug". Tylko nie wiem jak się do niego dobrać. Próbowałem tez tak
$this->widgetSchema->setLabel('slug', 'Url'); ale tak nie działa
Jacek Morek

Jacek Morek Programista hobbysta

Temat: Backend - zmiana etykiet wygenerowanych przez generator

Witam problem rozwiązany w klasie ProduktTranslationForm dodałem

$this->widgetSchema->setLabels(array(
'slug'=>'url',
));

Dzięki za wskazówki

konto usunięte

Temat: Backend - zmiana etykiet wygenerowanych przez generator

Ja po prostu zawsze tablicę z danymi I18N nazywam np ProduktI18n, dlatego o nią pytałem, bo tak by też się formularz nazywał. Ty nazywasz tą tablicę ProduktTranslate, więc etykietę tak jak napisałeś należało tam zmienić.

Następna dyskusja:

backend, routing




Wyślij zaproszenie do