![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym się dowiedzieć, czy ktoś ma pomysł, jak rozwiązać następujące zagadnienie:
potrzebuję strony, na której będę mógł dynamicznie dodawać i usuwać języki, pisać w nich różne artykuły, czyli np. mam język polski i rosyjski oraz napisałem do nich 2. wersje artykułu test (jedna pl i jedna ru), dodaję teraz język angielski i dopisuje 3 wersję artykułu. Mogę teraz również usunąć język rosyjski, usuwając również wersję rosyjską tego artykułu. Ma ktos pomysł jak powinien wyglądać plik schema.yml przy projektowaniu takiego rozwiązania? Jak mam wypełnić informacje o polu culture tak, aby obsługiwało i poznawało języki z innej tabeli? Pozdrawiam ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie wiem czy dobrze zrozumiałem Twoje pytanie ale wszystko masz opisane w dokumentacji wraz z przykładowym schematem tabel.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
nie do końca o takie rozwiązanie mi chodzi.
Dajmy na to mam tabelę, "culture", w której trzymam nazwę języka (ankielski, rosyjski) i jego kod (en, ru).mam również tabelę page oraz page_i18n. Chcę, abym dodając stronę miał do wyboru języki z tabeli "culture" jednocześnie zachowując wszystkie właściwości rozwiązania podanego przez Ciebie. Do tego momentu to nie jest aż takie trudne. Teraz dochodzi kolejne wyzwanie, czyli połączenie tabel culture, page_i18n kluczem foreign (nie wiem jak to się nazywa ![]() Oczywiście mógłbym dodać w modelu tabeli culture, przy usuwaniu rekordu, usuwanie wszystkiego, co z nim jest powiązane, ale wtedy nie będę mógł elastycznie dodawać innych modułów wymagających przetłumaczenia (np. galeria). Chodzi mi o zautomatyzowanie, żeby tabele wszystkich wielojęzycznych modułów były spokrewnione z culture. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 31 Pomógł: 7 Dołączył: 14.06.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może zdarzenia http://www.symfony-project.org/book/1_1/17-Extending-Symfony
+ zdefiniowanie interfejsu który muszą implementować moduły (a w nim doRemoveLang) + wymuszenie nasłuchiwania na zdarzenie usunięcia języka Ten post edytował kamil_biela 22.06.2009, 20:22:06 -------------------- zagr.am - najlepsze flash do zagrania. Codziennie.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 11.01.2005 Skąd: Zduńska Wola Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązałem problem jednak trochę inaczej, wydaje mi się to najprostszy sposób, nie wiem dlaczego wcześniej na to nie wpadłem
![]() Kod propel: culture: id: ~ name: { type: varchar(255), required: true } code: { type: varchar(7), required: true } is_default: { type: boolean, required: true, default: 0 } page: id: ~ homepage: { type: boolean, required: true, default: 0 } page_translated: id: ~ page_id: { type: integer, foreignTable: page, foreignReference: id, onDelete: cascade, required: true } title: { type: varchar(255), required: true } shortcut: { type: varchar(255), required: true } text: { type: longvarchar, required: true } culture_id: { type: integer, foreignTable: culture, foreignReference: id, onDelete: cascade, required: true } Teraz mam następujące pytanie, czy w wygenerowanym adminie mogę dynamicznie dołączyć formularz do spokrewnionej tabeli (opieram się na schemacie)? Już wyjaśniam o co mi chodzi: Dodaję stronę, moduł page -> klikam na New i chciałbym zobaczyć formularz tak, jak by był wygenerowany dla page_translated, czyli z polami typu title, text, culture_id. Ma ktoś pomysł? Czy muszę to ręcznie robić? Pozdrawiam. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 31 Pomógł: 7 Dołączył: 14.06.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Hmm... możesz zawsze zrobić własną klasę formularza i w niej mieszać:
Kod config:
form: class: FooBarForm Ten post edytował kamil_biela 27.06.2009, 11:21:47 -------------------- zagr.am - najlepsze flash do zagrania. Codziennie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 19:49 |