Oto mój przegląd łatki po wkopaniu w nią
OSZCZĘDZANIE CZASU : Experius zapewnia pomocnika łatek, który pomaga znaleźć pliki w niestandardowych motywach, niestandardowych modułach lub lokalnych nadpisywaniach, które również mogą wymagać łatania ręcznego , można go znaleźć tutaj: https://github.com/experius/Magento- 1-Experius-Patch-Helper # magento
Klucze formularza zamówienia
Jak powiedziano w drugim poście, ta łatka dodaje klucze formularzy do następujących formularzy:
Formularz koszyka wysyłkowego:
app/design/frontend/<package>/<theme>/template/checkout/cart/shipping.phtml
Formularz płatności fakturowania wielostanowiskowego:
app/design/frontend/<package>/<theme>/template/checkout/multishipping/billing.phtml
Formularz zamówienia wysyłki Multishipping:
app/design/frontend/<package>/<theme>/template/checkout/multishipping/shipping.phtml
Formularz płatności adresów multipippingowych:
app/design/frontend/<package>/<theme>/template/checkout/multishipping/addresses.phtml
Formularz płatności faktury:
app/design/frontend/<package>/<theme>/template/checkout/onepage/billing.phtml
Formularz zamówienia wysyłki:
app/design/frontend/<package>/<theme>/template/checkout/onepage/shipping.phtml
Formularz płatności:
app/design/frontend/<package>/<theme>/template/checkout/onepage/payment.phtml
Formularz zamówienia metody wysyłki:
app/design/frontend/<package>/<theme>/template/checkout/onepage/shipping_method.phtml
Formularz trwałego rozliczenia:
app/design/frontend/<package>/<theme>/template/persistent/checkout/onepage/billing.phtml
Ponadto zaktualizowano następujące pliki JS, aby były zgodne z tą zmianą:
js/varien/payment.js
skin/frontend/base/default/js/opcheckout.js
Co robić:
Jeśli korzystasz z niestandardowych wersji tych szablonów, musisz je zaktualizować, dodając do nich następujący kod:
<?php echo $this->getBlockHtml('formkey') ?>
Jeśli korzystasz z zewnętrznego modułu do kasy, musisz się z nimi skontaktować, aby mogli dostarczyć zaktualizowaną wersję swojego modułu.
Również jeśli masz niestandardowe wersje wcześniej wymienionych plików JS, musisz je również zaktualizować.
OSZCZĘDZAJ SWÓJ CZAS :
Fabian Schmengler napisał fajny mały skrypt, aby zaktualizować wszystkie te rzeczy dla Ciebie, możesz go znaleźć tutaj:
https://gist.github.com/schmengler/c42acc607901a887ef86b4daa7a0445b
WAŻNA UWAGA : sprawdzanie poprawności klucza formularza formularza można zmienić w backendie za pomocą nowego pola konfiguracji w obszarze System> Konfiguracja> Administrator> Bezpieczeństwo> Włącz sprawdzanie klucza formularza przy kasie . TO NIE JEST WŁĄCZONE DOMYŚLNIE, więc musisz włączyć tę funkcję bezpieczeństwa !!! Pamiętaj, że otrzymasz powiadomienie w backend, jeśli nie jest włączone.
Oddzwanianie do przesyłania obrazu
Kontroler galerii obrazów został zaktualizowany, aby dodać wywołanie zwrotne sprawdzania poprawności.
Co robić
Jeśli używasz niestandardowego modułu, który przesyła obraz z kodem, który wygląda następująco:
$uploader = new Mage_Core_Model_File_Uploader('image');
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->addValidateCallback('catalog_product_image',
Mage::helper('catalog/image'), 'validateUploadFile');
$uploader->setAllowRenameFiles(true);
$uploader->setFilesDispersion(true);
Zdecydowanie sugeruję zaktualizowanie tego kodu poprzez dodanie następującego fragmentu po nim:
$uploader->addValidateCallback(
Mage_Core_Model_File_Validator_Image::NAME,
Mage::getModel('core/file_validator_image'),
'validate'
);
Symlinks
Ta poprawka usuwa pole konfiguracji systemu, które pozwala na dopuszczenie dowiązań symbolicznych szablonu w wewnętrznej bazie danych. Kiedyś było w System> Konfiguracja> Deweloper> Szablon> Zezwalaj na dowiązania symboliczne . Teraz cała sekcja szablonów zniknęła.
Ponadto, to pole jest teraz domyślnie wyłączone przez app/etc/config.xml
Zabawne jest to, że otrzymasz powiadomienie w backend, jeśli masz włączone pole konfiguracji przed łatką, ale nie będziesz mógł go wyłączyć, gdy pole zniknie.
Jedynym sposobem na to jest uruchomienie następującego zapytania SQL
UPDATE core_config_data SET value = 0 WHERE path = "dev/template/allow_symlink";
Wyjaśnienie
Najpierw zdecydowanie zalecamy sprawdzenie tych dwóch postów, które pomogą ci zrozumieć cel tej modyfikacji Symlink:
Ta modyfikacja naprawdę polega na wywoływaniu treści do przesłania (takich jak obrazy) za pomocą dyrektyw szablonów.
Problem związany z dowiązaniami symbolicznymi można wykorzystać tylko w przypadku dostępu administratora, a Magento dodał także trochę więcej ochrony przed przesyłaniem obrazów.
Pamiętaj, że oprócz samego ustawienia są to niektóre zabezpieczenia przed znanym sposobem wykorzystania.
Co robić : jeśli tak jak ja, używasz modmana lub kompozytora z szablonowymi dowiązaniami symbolicznymi, napotkasz pewne problemy. Wciąż próbuję dowiedzieć się, co jest najlepsze do zrobienia, oprócz zajmowania się zapytaniami SQL.
Główny post na ten temat: SUPEE-9767, modman i dowiązania symboliczne
Lista możliwych problemów
Wersja 2 została wydana od czasu tego oryginalnego postu. Nie zapomnij zaktualizować
Robaki
Słowo „potwierdzone” jest używane w przypadku potwierdzonych błędów. Jeśli go nie ma, oznacza to, że może to być błąd, ale nie został jeszcze potwierdzony.
Problemy z przystojniakiem
Pamiętaj, że wszystkie te problemy mogą wynikać z faktu, że zmodyfikowałeś oryginalny plik, aby dokładnie sprawdzić, czy tak nie jest:
- Utwórz kopię zapasową pliku, w którym pojawia się błąd „Nieudany przystojniak”
- Pobierz oryginalny plik ze swojej wersji Magento
- Porównaj oba pliki
Jeśli pliki są różne, musisz zastosować poprawkę do oryginalnego pliku, a następnie ponownie zastosować niestandardowe zmiany w czysty sposób, na przykład:
- szablon niestandardowy w niestandardowym folderze motywów
local.xml
- aplikacja / kod / plik lokalny
Jeśli pliki nie różnią się, oznacza to, że jest to problem z pozwoleniem lub „błąd” w łatce.