Jaka jest właściwa metodologia aktualizacji szablonów?

12

Obecnie, aby zaktualizować szablony na naszej stronie produkcyjnej, przełączamy witrynę w tryb offline, zmieniamy szablon, odinstalowujemy szablon, instalujemy go ponownie, zmieniamy ustawienia szablonu z powrotem, a następnie przywracamy witrynę do trybu online. Zasadniczo nie jestem fanem usuwania witryny z jakiegokolwiek powodu, a ten proces pozwala na błędy, szczególnie w przypadku szablonów używanych tylko na kilku stronach. Komponenty i takie można łatwo aktualizować, ale wydaje się, że ta sama funkcjonalność jest pominięta w szablonach.

Czy istnieje lepsza metodologia obsługi aktualizacji szablonów, która eliminuje przełączanie witryny w tryb offline?

Zachary Draper
źródło
Jakie rodzaje zmian aktualizujesz w szablonie? Czy te niestandardowe szablony lub szablony pochodzą od zewnętrznego dostawcy?
David Fritsch
@DavidFritsch Szablony, z którymi współpracujemy, są dostosowane do naszych witryn. Zmiany często obejmują modyfikacje JavaScript lub CSS, takie jak uaktualnienia do Twittera Bootstrap lub innych frameworków.
Zachary Draper,
Jestem nowy w Joomla, więc może przegapiłem biggy, ale wydaje mi się, że pomijam większość tych kroków podczas edytowania własnych szablonów (całkowicie niestandardowy szablon z CSS / JS itp.) - które, jak sądzę, robisz - zamiast aktualizować szablon innej firmy. Raz utworzony i zainstalowany w Joomla, w ogóle nie „używam Joomla”. Pliki edytuję bezpośrednio na moim serwerze programistycznym (odśwież przeglądarkę, aby sprawdzić) i po zakończeniu przesyłam do witryny na żywo. Bez odinstalowywania, ponownej instalacji, zmiany ustawień lub przestojów. Czy to źle? Czego mi brakowało? (Czy to powinno być kolejne pytanie ?!)
MrWhite

Odpowiedzi:

12

Aktualizacja szablonu powinna być tak prosta, jak użycie instalatora Joomla do przesłania i zainstalowania zaktualizowanej wersji szablonu.

Aby jednak zadziałało, plik templateDetails.xml musi zdefiniować „metodę” jako „aktualizację”, a nie „instalację”.

Możesz to sprawdzić, rozpakowując plik instalacyjny szablonu, otwierając plik templateDetails.xml i sprawdzając, czy w linii 3 lub w jej pobliżu znajdują się następujące elementy:

<extension version="2.5" type="template" method="upgrade" client="site">

Jeśli method="install", zmień go na method="upgrade"i zapisz plik. Spakuj paczkę i skieruj na nią instalatora - powinieneś już iść.

Uwaga na temat dostosowań: ten proces spowoduje przesłanie pełnego szablonu, potencjalnie nadpisując wszelkie dokonane dostosowania. Z tego powodu dobrym pomysłem jest dodawanie wszelkich dostosowań do jednego pliku w celu łatwego tworzenia kopii zapasowych i ponownego dodawania. Lubię używać pliku CSS o nazwie „custom.css” i ładować ten plik jako ostatni, aby moje dostosowania zastąpiły ustawienia domyślne.

Zaridan
źródło
Dodanie metody = „upgrade” było dokładnie tym, czego mi brakowało. Dziękuję Ci!
Zachary Draper,
Chętnie pomoże. Baw się dobrze!
Zaridan
Czy proces różni się między wersjami Joomla?
MrWhite
method = „upgrade” jest taki sam we wszystkich wersjach Joomla (przepraszam, że pierwotnie brakowało mi pytania)
Zaridan
3

Jeśli nie masz żadnych niestandardowych zmian w szablonie - po prostu zainstaluj nowy nad bieżącym.

Jeśli wprowadziłeś jakieś niestandardowe zmiany, będziesz musiał powtórzyć zmiany lub różnicować obecny kod szablonu i nowy kod szablonu.

me7hos
źródło
Nie jestem pewien, czy całkiem rozumiem. Nie sądzę, aby można było zainstalować nowszą wersję szablonu na starszej. Joomla! zwraca „Ostrzeżenie Instalacja szablonu: istnieje już szablon używający nazwanego katalogu: Zainstaluj. Czy próbujesz ponownie zainstalować ten sam szablon?” Następnie „Błąd instalowania szablonu”.
Zachary Draper,
5
Jeśli otrzymujesz takie ostrzeżenie, najprawdopodobniej jest to spowodowane tym, że plik manifestu nie ma zdefiniowanej właściwej metody. Sprawdź plik xml szablonu pod kątem zdefiniowanej metody i ustaw go na „upgrade”, jeśli jest ustawiony jako „install”. Więcej informacji na temat plików manifestów tutaj: docs.joomla.org/Manifest_files
Zaridan
1
@Zaridan Myślę, że trafiłeś w kluczową kwestię. Powinieneś dodać to jako odpowiedź i dołączyć odpowiedni kod, aby to zadziałało.
David Fritsch
1

Istnieją pewne zaawansowane opcje inscenizacji. Myślę, że siteground ma coś takiego. Istnieją sposoby na zamianę części witryny bez przesłonięcia wszystkich tabel db, więc jeśli masz czas i zasoby, aby to zbadać, MOŻNA to zrobić ... zajmuje to tylko trochę czasu na konfigurację (i masz aby ominąć mózg).

Ale jeśli mówisz o zmianie motywu na kilku stronach, dlaczego po prostu nie przesłać nowego motywu pod inną nazwą i zastosować go do niektórych ukrytych elementów menu podczas pracy nad nim. Nikt go nie zobaczy, a po zakończeniu możesz dostosować ustawienia, a następnie zastosować je do odpowiednich pozycji menu.

Brian Peat
źródło