Chcę usunąć następujące linki w lewym panelu pulpitu nawigacyjnego konta klienta?
- moje aplikacje
- Rejestr podarunkowy
- Punkty premiowe
- Link do karty podarunkowej
Pracuję w Magento 1.7 Community Edition. Każda pomoc będzie mile widziana.
magento-1.7
customer
Oshan
źródło
źródło
Odpowiedzi:
Krok 1: Przejdź do (yourPackage / YourTemplate / customer / account / navigation.phtml)
Krok 2: Zamień poniższy wiersz
Powyższy fragment kodu zawiera sposób usunięcia wszystkich łączy nawigacyjnych. Mam nadzieję, że to pomoże wszystkim.
Link referencyjny: https://github.com/Aproducktion/Magento-Remove-Dashboard-Links
źródło
If you can't
?Widzę tutaj 2 opcje.
Pierwszy i najłatwiejszy: po prostu znajdź pliki układu, które dodają te elementy menu i skomentuj dla nich kod.
Na przykład
My applications
jest dodawanyapp/design/frontend/{interface}/{theme}/layout/oauth.xml
przez ten kawałek XMLDruga metoda, której nie jestem w 100% pewien, że zadziała to dodanie tego
local.xml
pliku XML do pliku układu motywu:Musisz dodać jeden
<action>
tag do każdego linku, który chcesz usunąć.Istnieje również trzecia opcja, jeśli w ogóle nie używasz modułów, po prostu je wyłącz. Może to również zwiększyć wydajność.
W tym celu utwórz ten plik:
app/etc/modules/Zzzz.xml
z tą zawartością:Możesz mieć pewne problemy tutaj są inne moduły, których chcesz użyć, zależą od tych, które chcesz wyłączyć.
źródło
Mage_Customer_Block_Account_Navigation
nie dziedziczyMage_Page_Block_Template_Links
.Istnieje rozszerzenie FOSS, które dodaje opcję zaplecza do zdalnych łączy kont.
Istnieje drugi moduł (również FOSS), który dodaje
removeLink
metodę, dzięki czemu możesz użyć następujących w swoimlocal.xml
Oświadczenie: Jestem deweloperem drugiego rozszerzenia.
źródło
Najprostszym rozwiązaniem (wdrożenie i wykorzystanie) Znalazłem ma zastąpić
Mage_Customer_Block_Account_Navigation
wapp/code/local
i dodaćremoveLinkByName
metodę, która robi to samo, co odpowiedź Oshan za nie, ale nadaje się do użytku z plików graficznych. Bardziej tradycyjne przepisywanie klas również by działało, ale potencjalnie może powodować konflikty z wtyczką.Ostrzeżenie! Niesprawdzone!
Bardziej skomplikowanym rozwiązaniem byłoby napisanie własnego modułu,
Block
który rozszerzaMage_Customer_Block_Account_Navigation
i zawieraremoveLinkByName
metodę. Aby to zadziałało, musisz usunąć / rozbroićcustomer_account_navigation
blok i zastąpić go nowym dla modułu. Od tego momentu, za każdym razem, gdycustomer_account_navigation
ma się odniesienie w układzie, otrzymasz instancję zremoveLinkByName
.źródło
Szybkie rozwiązanie, aby usunąć wszystkie elementy z listy Moje konto poniżej Moich zamówień, w tym Umowy rozliczeniowe, Profile cykliczne, Moje aplikacje i Moje produkty do pobrania. Usunie również linki do mojej listy życzeń i mojego biuletynu w całej witrynie, testowane na Magento 1.9:
Skomentuj wiersze 31 - 66 z app / design / frontend / default / YOURTHEME / layout / wishlist.xml (jeśli nie, skopiuj go z app / design / frontend / rwd / default / layout / wishlist.xml)
Skomentuj wiersze 47–65 z app / design / frontend / default / YOURTHEME / layout / newsletter.xml (jeśli nie, skopiuj go z app / design / frontend / rwd / default / layout / newsletter.xml)
newsletter </name> newsletter / manage / </path> Subskrypcje newslettera </label> </action> </reference> </customer_account-->
CSS (dostosuj do swoich wymagań)
źródło
Aby uniknąć usuwania linków, zaleciłbym przypisanie wartości identyfikatora na podstawie zmiennej $ _index, abyś mógł ukryć linki za pomocą CSS.
Oto co zrobiłem:
Z twojego pakietu / YourTemplate / customer / account / navigation.phtml
Więc oczywiście możesz iść
Nie ma jednego sposobu na oskórowanie kota, ale jest to szybka i łatwa opcja, która nie wpływa na funkcjonalność.
źródło
Myślałem, że lepszym rozwiązaniem byłoby przepisanie bloku. Zostało to wspomniane powyżej, ale nie było żadnego przykładu:
Dodaj przepisanie do pliku config.xml w sekcji globalnej:
Zastąp addLink w Mage_Customer_Block_Account_Navigation:
Tablica exclude_links mogłaby pobrać z ustawienia konfiguracji, jeśli nie chcesz na stałe kodować wykluczonych łączy.
źródło
właśnie o tym napisałem w Google: http://magebase.com/magento-tutorials/5-useful-tricks-for-your-magento-local-xml/
źródło
Chciałbym najpierw powiedzieć, że istnieją różne sposoby rozwiązania problemów.
Jest to najprostszy sposób, aby znaleźć kod w
layout.xml
pliku wewnątrz bazy, który chcesz usunąć, np. Jeśli chcę usunąć „Moje tagi”, po prostu skomentuj tę część.Ale wiesz, że nie powinniśmy modyfikować pliku podstawowego, więc kolejną prostą metodą, którą można wykonać, jest
Usunięcie odsyłacza w pliku szablonu. W tym celu skopiuj
navigation.phtml
plik do motywu (uwaga: struktura folderów powinna być taka sama) zbase\default\template\customer\account\navigation.phtml
. co pokazano w powyższej odpowiedzi.Kolejnym żmudnym zadaniem jest przepisanie modułu podstawowego i utworzenie metody „RemoveLinkByName”.
źródło
Pełne rozwiązanie do usuwania funkcji pulpitu konta obejmuje zarówno modyfikację po stronie klienta, jak i po stronie serwera. Jeśli tylko strona klienta zostanie usunięta i / lub ukryta, nic nie powstrzyma wytrawnych użytkowników przed dostępem do funkcji poprzez ręczne tworzenie tras w przeglądarce lub za pomocą bardziej wyrafinowanego „ataku” CURL (który może obejmować odpowiednie Token CSRF i przejdź przez nie).
Po stronie klienta można łatwo osiągnąć dzięki aktualizacjom XML, na co wskazuje mnóstwo już udzielonych odpowiedzi.
Strona serwera jest nieco bardziej złożona i wymaga zrozumienia usuwanej funkcjonalności.
Osobiście wybrałbym drogę używania obserwatorów do warunkowego zwracania zabronionych kodów statusu HTTP na każdej z tras usuwanej funkcji. Aby dowiedzieć się, które trasy należy obserwować, otwórz powiązany plik kontrolera i znajdź każdą z akcji frontonu, które nie powinny być już dostępne. Następnie utwórz moduł, który definiuje pola konfiguracji systemu do miękkiego wyłączania tej funkcji. Korzystając z tych pól konfiguracji systemu, warunkowo zaktualizuj XML układu interfejsu i warunkowo zwróć odpowiednie kody odpowiedzi HTTP dla każdej obserwowanej trasy.
Przykłady kodu dla każdego z powyższych kroków można znaleźć w ulubionej wyszukiwarce.
źródło
Dodaj do pliku local.xml ten kod
Testowane w Magento 1.7.0.2
źródło