Jak aktualizować przesłonięcia?


10

Jak wielu wie, możliwe jest zastąpienie szablonów, widoków, modułów, komponentów.

Głównym problemem jest to, kiedy Joomla! jest aktualizowany, a elementy zastąpione (w folderze szablonów) stają się nieaktualne.

Jak aktualizować przesłonięcia za każdym razem, gdy aktualizacja Joomla jest wykonywana?

Czy muszę to robić ręcznie i sprawdzać każdą nową aktualizację, czy jest jakiś inny sposób?

Odpowiedzi:


4
  1. Napisz mały skrypt, który oblicza md5 oryginalnych plików, które zostały nadpisane.
  2. Zrzuć ścieżkę pliku i MD5 do pliku w szablonie
  3. Po każdej aktualizacji Joomla, uruchom ponownie powyższy skrypt.
  4. Sprawdź różnicę w MD5, jeśli tak, to musisz to sprawdzić.

Wskazówka: Zastąp pliki tylko wtedy, gdy tych zmian nie można wykonać przez zastąpienie CSS.


To wydaje się niezły pomysł, ale skomentowanie zastąpienia spowoduje, że md5 będzie inny niż zaktualizowane / niezaktualizowane, które mogą pochodzić z aktualizacji, więc to nie zadziała.
jackJoe

1
Pytam o oryginalne pliki MD5 (z folderu widoku komponentu), a nie o przesłonięcia (pliki utworzone w folderze szablonów).
Shyam,

1
Ach! Widzę! w ten sposób mogę zobaczyć, które pliki, które zastąpiłem, zmieniły się wraz z aktualizacją. To fajny pomysł, mógłbym użyć systemu kontroli wersji i mieć gałąź z tylko przesłoniętymi plikami, w ten sposób tak naprawdę nie muszę pisać żadnego skryptu.
jackJoe

12

Po aktualizacji Joomla core nie powinno to mieć wpływu na zastąpienia w folderze szablonów. Właśnie dlatego istnieją.

W przypadku podstawowych elementów Joomla przesłonięcia rzadko powodują konflikty z aktualizacjami jądra Joomla. Gdy zastąpisz podstawowe pliki Joomla lub dowolne pliki, dokumentuj dokument. Komentowanie w pliku zastępowania jest KRYTYCZNE, jeśli zdarza się to regularnie i administrujesz więcej niż jedną lub dwiema witrynami. Po prostu nie pamiętasz, co zmieniłeś!

Twój edytor kodu powinien mieć funkcję „diff”, aby porównać nowy plik ze starym i identyfikować wiersz po wierszu, jakie zmiany zostały wprowadzone. Jeśli dobrze skomentowałeś, to różnicowanie pokaże dokładnie, co zostało zmienione i czy aktualizacja dotyczy pliku. Jedynymi zmianami powinny być zastąpienia ... wszystko inne i musisz przejść ponownie.

Zastąpienia stron trzecich stają się jednak problemem tylko wtedy, gdy programista nie używa poprawnie struktury MVC. Jeśli komponent lub moduł jest odpowiednio ułożony, aktualizacje kodu nie powinny mieć wpływu na tmpl lub widok.

Jeśli w tym rozszerzeniu występuje znaczna zmiana funkcji, zdecydowanie musisz udokumentować / skomentować i porównać pliki.


Jednym z przykładów zastąpień widoków, na które ma wpływ aktualizacja podstawowa, była wersja Joomla 2.5.16 do 2.5.18, w której witryna została uszkodzona z powodu aktualizacji komponentu com_content w widokach… To diffjest to, czego używam, ale gdy mam wiele zastępuje, jest to żmudne i ma wiele różnych stron, bardzo trudne do zrobienia dla każdego.
jackJoe

To interesująca koncepcja automatycznego różnicowania plików podczas aktualizacji. Funkcja diff istnieje w PHP. Może to zrobić ... jakiś programista inny niż ja;)
Toni Marie

3

Tak, musisz porównywać pliki za każdym razem ręcznie i aktualizować zmiany. W przypadku drobnych aktualizacji istnieje niewielka szansa, że ​​trzeba je dostosować, ale w przypadku większych aktualizacji zastąpione pliki mogą ulec znacznej zmianie. Wolałbym też łatwiejszy sposób, ale to jedyne rozwiązanie bankomatowe.


0

Zastąpienie nie powinno się zmieniać w żadnej wersji Joomla. Jednak jeśli zauważysz, że jakieś pliki uległy zmianie, możesz zrobić całą instalację Joomla w subversion.

Następnie możesz również zarządzać odpowiednimi wersjami kodu Joomla w subversion i wykonać scalenie dostawcy http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.