모범 사례 Magento Top-Links 편집 방법


22

Magento의 최상위 링크에서 "내 장바구니"링크 바로 앞에 장바구니 아이콘을 추가한다고 가정합니다 (아래의 상위 링크 참조).

여기에 이미지 설명을 입력하십시오

가장 좋은 방법은 무엇입니까?

  1. toplinks.php에 무언가를 하시겠습니까?
  2. links.phtml에 무언가를 하시겠습니까?
  3. XML 파일?
  4. 다른 옵션이 있습니까?

CSS 로이 작업을 수행 할 수 있다는 것을 이해하지만 사용자 정의에 대한 요구가 커짐에 따라 CSS 없이이 작업을 수행하는 방법을 알고 싶습니다. 더 어려운 작업을 사용자 정의 할 수 있습니다.

답변:


12

어떤 경우에도 템플릿 파일 ( links.phtml)을 편집하지 마십시오 . 이것은 모든 링크 목록의 일반 템플릿 역할을합니다. 예를 들어 바닥 글의 링크에도 사용됩니다.
으로 toplinks.php당신은 CE의 v1.4.0.1부터 사용되지 않기 때문에 당신이 원하는대로 할 수 있습니다.
최상위 컨테이너에 대한 링크를 추가하는 xml 파일을 사용하여 필요한 것을 달성하는 것이 좋습니다. 새 링크를 추가 할 때 호출
되는 addLink메소드는 링크의 클래스 및 기타 속성을 추가 할 수있는 매개 변수 lia링크 앞 및 링크 뒤의 일부 텍스트를 지원합니다.

public function addLink($label, $url='', $title='', $prepare=false, $urlParams=array(),
        $position=null, $liParams=null, $aParams=null, $beforeText='', $afterText='')
    { ... }

내 계정 메뉴에 아이콘을 추가하려는 경우 아이콘 클래스에서 아이콘 $beforeText을 설정하고 <span class="icon"></span>스타일을 추가 할 수 있습니다 .
장바구니 및 결제 링크의 경우 레이아웃 파일에서 직접이 아닌 블록 객체를 통해 추가되므로 조금 까다 롭습니다.
당신이 카트 또는 체크 아웃 린스에 뭔가 다른 필요한 경우 당신이해야 할 메소드를 오버라이드 (override)이다 Mage_Checkout_Block_Links::addCartLink()Mage_Checkout_Block_Links::addCheckoutLink(). 이 두 개는 동일하게 호출되며 addLink()다른 매개 변수를 전달할 수 있습니다.


1
이것은 내가 찾던 정확한 설명입니다. 나는 분명히 내 앞에서 많은 것을 배웠지 만, 이제 어디에서 시작할지에 대한 아이디어가있다. 부트 스트랩에서 내 아이콘을 다음 텍스트 $ beforeText = '<i class = "icon-shopping-cart"> </ i>'와 함께 추가하려고합니다.-감사합니다!
Raphael Rafatpanah

어떤 XML 파일을 사용합니까?
Raphael Rafatpanah

장바구니 및 결제 링크의 경우 레이아웃 파일 에서이 작업을 수행 할 수 없다고 설명했습니다. 이 방법을 재정의해야합니다Mage_Checkout_Block_Links::addCartLink()
Marius

1
승인. 메서드를 재정의한다고 가정하고 사용자 지정 테마 파일에 파일을 추가하고 거기에서 메서드를 호출하면 이전 인스턴스가 재정의됩니다. 예를 들어 어떤 파일에 Mage_Checkout_Block_Links 메서드가 포함되어 있는지와 같이 올바른 방향으로 알려주시겠습니까? links.php입니까?
Raphael Rafatpanah

XML 경로를 사용 <span class="icon"></span>하는 경우 (필수 사항) beforeText 로 사용하려면 이와 같이 묶어야합니다 <![CDATA[<span class="icon"></span>]]>. XML 파서도 새로운 줄을 선택하므로 여는 태그 바로 뒤에 넣어야합니다.<beforeText><![CDATA[<span class="icon"></span>]]></beforeText>
jmk

9

Top Links에만 사용자 정의 템플릿을 적용해야하는 경우 테마의 local.xml에서 다음과 같이 할 수 있습니다.

<default>
    <reference name="top.links">

        <action method="setTemplate">
            <template>page/template/my_links.phtml</template>
        </action>

    </reference>
<default>

그런 다음 page / template / links.phtml을 복사 하고 이름을 page / template / my_links.phtml로 바꾸고 새 템플릿 파일에서 필요한 모든 작업을 수행하십시오.

local.xml을 통해 상위 링크에 사용자 정의 링크를 추가하려면 다음을 수행하십시오.

<reference name="top.links">
    <action method="addLink" translate="label title">
        <label>My Link</label>
        <url>path/to/page</url>
        <title>My link tooltip</title>
        <prepare>true</prepare>
        <urlParams/>
        <position>150</position>
        <liParams>id="my-custom-id"</liParams>
    </action>
</reference>

이 페이지도 참조하십시오 : http://www.classyllama.com/development/magento-development/editing-magentos-top-links-the-better-way


이 방법을 사용하면 각 링크 사이에 html을 추가 할 수 있습니까?
Raphael Rafatpanah

@RaphaelRafatpanah 예. links.phtml 에는 루프가 <?php foreach($_links as $_link): ?>있습니다. 해당 루프 안에 HTML을 추가 할 수 있습니다.
zitix

그러나 각 링크에 추가됩니다. 각 링크 사이에 맞춤형 HTML을 추가하려고합니다. 또한 foreach 루프는 머리글 링크뿐만 아니라 바닥 글 링크에도 사용되므로 링크 사이에 html을 추가하면 바닥 글 링크에도 적용됩니다.
Raphael Rafatpanah

1
트릭입니다 : page / template / my_links.phtml (원본 links.phtml 의 사본 )을 만든 후 local.xml에 게시 한 코드를 추가하면 해당 템플릿이 Top Links를 렌더링 하는 데만 사용 됩니다 . 바닥 글 링크 또는 다른 링크가 아닙니다.
zitix


0

상단 링크를 변경하려면이 경로를 찾으십시오.

/app/design/frontend/base/default/layout/customer.xml  

로그인 (내 경우)을 검색하십시오.

이제 원하는 텍스트로 제목과 레이블을 변경하십시오.


핵심 파일을 편집해서는 안됩니다!
Black

-1

다음 2 개의 파일을 편집해야합니다.

app/design/frontend/default/default/layout/checkout.xml

app/design/frontend/default/default/layout/customer.xml

이 파일에서 링크는에 추가됩니다 name="top.links". 의견을 말하십시오.


2
Magento SE에 오신 것을 환영합니다. 이 답변은 효과가 있지만, 모범 사례 에 대한 질문이 있었고 핵심 파일 편집은 Magento의 모범 사례 이외의 것입니다.
Fabian Schmengler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.