![]() ![]() |
Post
#1
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Witam!
Mam pewien problemik z wersjami językowymi w adminie. Schemat 2 tabel: Kod attraction: _attributes: {phpName: Attraction} id: icon: {type: varchar(40), required: true} attraction_i18n: _attributes: {phpName: AttractionI18n} name: {type: varchar(20), required: true} czyli nic nadzwyczajnego. Tworzenie i edycję danych załatwiłem z pomocą tego linku. Mam jednak pewien problem z wyświetlaniem listy "atrakcji". Otóż załóżmy, że mamy 3 wersje językowe: PL, ENG, DE oraz 2 rekordy w tabeli "attraction". Każdy z nich posiada wpisaną nazwę dla wersji PL oraz ENG, natomiast nie dla DE. Przechodząc do listy atrakcji w PL mamy ikonkę + napis po polsku (na dole: 2 results), to samo jest dla wersji ENG. Natomiast dla wersji DE nie wyświetla się nic, a na dole nadal jest "2 results". Wykonywane są zapytania: Kod [0.28 ms] SELECT COUNT(attraction.ID) FROM attraction [2.23 ms] SELECT attraction.ID, attraction.ICON, attraction_i18n.NAME, attraction_i18n.ID, attraction_i18n.CULTURE FROM attraction, attraction_i18n WHERE attraction_i18n.CULTURE='de_DE' AND attraction.ID=attraction_i18n.ID LIMIT 20 Domyślam się, że "2 results" pochodzi z pierwszego, natomiast listę rekordów wyświetla drugie (które nic nie zwraca). Mój generator.yml: Kod generator: class: sfPropelAdminGenerator param: model_class: Attraction theme: default list: title: Attractions list display: [_icon, name] object_actions: _edit: ~ _delete: ~ peer_method: doSelectWithI18n edit: title: Attraction form display: [icon, name] fields: icon: type: admin_input_file_tag upload_dir: attraction params: include_link: attraction include_remove: true name: params: disabled=false Pozdrawiam: pion |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 3 Dołączył: 29.07.2005 Skąd: Szczebrzeszyn Ostrzeżenie: (0%)
|
atrybut peer_method służy tylko do pobieranie danych, zmieniasz go jeśli nie chcesz pobierać danych za pomocą standardowego doSelect, a do liczenia liczby kolumn masz osobny atrybut zastępujący domyślny doCount, chyba peer_count_method ale nie jestem teraz w stanie tego sprawdzić, musisz sam poszukac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Dzięki za odpowiedź.
Problem w tym, że chciałbym wyświetlić po 2 rekordy w każdej wersji językowej; problem nie jest w różnicy w ilości wyświetlonych rekordów, a liczbą "X results", a w tym, że jeśli nie ma tłumaczenia rekordu dla danej wersji językowej to wogóle nie jest on wyświetlany na liście. W przypadku PL oraz ENG widoczne byłoby tłumaczenie, natomiast w wersji DE chciałbym aby "name" było puste (gdyż nie jest wpisane do bazy), a nie tak jak jest teraz, że rekord wogóle nie jest wyświetlany. Rozumiem, że po prostu zapytanie:
nic nie zwraca, bo nie ma takich rekordów spełniających "attraction_i18n.CULTURE='de_DE' AND attraction.ID=attraction_i18n.ID". Aktualnie aby zmodyfikować nazwę dla wersji niemieckiej muszę wejść w wersji polskiej na dany element, a następnie przełączyć się na wersję niemiecką (w czasie edycji z wersji polskiej). Może teraz nieco jaśniej wytłumaczyłem. pion Ten post edytował phpion.com 21.10.2007, 12:17:16 |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 15:58 |