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}
_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
[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
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