Oto sytuacja: mam kilka samodzielnie wykonanych modułów, wszystkie przetestowane i działające przy użyciu domyślnego motywu. Następnie kupiliśmy i zainstalowaliśmy nowy motyw. Przełączono na nowy motyw, a moduły nie są wyświetlane. Po kilku testach try / fail stwierdziłem, że muszę skopiować odpowiedni układ i pliki szablonów do odpowiednich folderów ostatnio zainstalowanego motywu.
Więc moje pytanie brzmi: co powinienem zrobić, aby wszystkie moduły działały z dowolnym motywem zainstalowanym po instalacji modułu?
configuration
layout
Jarosław
źródło
źródło
Odpowiedzi:
Przykład:
źródło
Trudna prawda jest taka, że tak naprawdę nie można zagwarantować, że będą. Umieszczenie plików w
base/default
(lubdefault/default
jeśli zastąpią one podstawowe szablony - ponieważ nie chcesz zastępować plików podstawowych instalacją modułu, chociaż to zmusza do zachowania duplikatów w wersji Enterprise) zagwarantuje, że staną się one awariami, ale pliki motywów zawsze mieć najwyższy poziom priorytetu.Większość modułów jest dostarczana z instrukcją instalacji, która obejmuje wzmiankę o skopiowaniu plików szablonów do motywu użytkownika, jeśli są one niestandardowe. To prawie wszystko, co możesz zrobić.
źródło
Jedną z rzeczy, z których korzystaliśmy kilka razy, jest modl [Fabrizio Branca] [1] [Custom Fallback] [2]. Jest to bardzo przydatny moduł do określania własnej niestandardowej hierarchii zastępczej kompozycji. Jedno, co możesz zrobić, to określić:
Następnie wszelkie moduły, które umieszczają własne szablony w
default/default
kompozycji. Nie będzie działać, jeśli próbują zastąpićbase/default
pakiety.Możesz określić dowolną liczbę pakietów / motywów w niestandardowej hierarchii rezerwowej.
źródło
Każdy szablon i plik układu
base/default
zostanie załadowany, chyba że zostanie zastąpiony gdzieś na ścieżce. Jeśli jednak moduł niestandardowy jest pewnego rodzaju widżetem, powinieneś upewnić się, że jest on powtarzany tam, gdzie jest to potrzebne. Jeśli na przykład wprowadzasz zmiany, które są wyświetlane na stronie produktu za pośrednictwemgetChildHtml
, te połączenia powinny również mieć odpowiedni temat. Jeśli jednak szablony modułów same w sobie są stronami i nie zostały wczytanebase/default
, coś blokuje konfigurację układu i powinieneś znaleźć co.źródło
getChild
, że rzeczywiście mam kilka tego rodzaju wezwań.Nie ma na to prostej odpowiedzi. To zależy od posiadanych modułów. Na przykład niektóre firmy zajmujące się modułami, zastępujące podstawowe pliki. W związku z tym, należy najpierw sprawdzić, jakie pliki dostępne w
app/etc/modules
iapp/code/local/Mage
,app/code/community/Mage
foldery. Jak zapewne wiesz, pierwszy folder to folder inicjalizacji modułu, który możesz wyłączyć lub włączyć moduły powiązane z plikami xml. Ostatnie dwa foldery (jeśli są dostępne) to foldery zastępujące kod podstawowy.Następnie otwórz jeden z dostępnych plików xml
etc/modules
. Zobaczysz coś takiego:Oto ważne części to
Company
iNamespace
. Gdy odwiedzisz folderyapp/code/local
lubapp/code/community
, zobaczysz folder o nazwieCompany
i następujący po podfolderze o nazwieNamespace
.Podczas wyszukiwania
Namespace
zobaczysz podfolder o nazwie/etc
. Ten folder przechowuje plik konfiguracyjny związany z modułemconfig.xml
. Ten plik ma wiersze konfiguracji związane z modułem, do którego można odwoływać się, jakie pliki dotyczą tego modułu.Jak powiedziałem w mojej pierwszej linii, trudno jest sobie z tym poradzić.
źródło