젠토

2013-10-08 7 views
1

에 CMS를 페이지 상단 링크를 추가하는 방법에 대한 답은 여러 게시물의 조합으로 거기에 아마하지만 난 어쨌든 물어 봐야 그래서 아직 젠토에서 아주 좋은 아니에요 :젠토

내가하고 싶은

cms 페이지에 삽입 된 topLinks. <?php echo $this->getChildHtml('topLinks') ?>을 시도했지만 작동하지 않습니다. 코드를 페이지의 텍스트로 표시합니다. {{block type="core/template" name="top.Links" as="topLinks" template="page/template/links.phtml"}}을 시도했지만 아무 것도 표시되지 않습니다.

나는 cms 페이지에 {{block type="core/template" name="top.search" as="topSearch" template="catalogsearch/form.mini.phtml"}}과 함께 검색 양식을 추가 했으므로 아마도 블록 유형이 잘못되었거나 뭔가있을 것이라고 생각했습니다. 내가 뭘 잘못 했니?

답변

3

TL : DR : 음 ... 할 수 없습니다.
왜? : topLinks 블록은 page/template_links 유형의 "컨테이너"블록입니다. 레이아웃에 방금 추가되었지만 다른 레이아웃 핸들 또는 블록은 링크를 추가합니다. 예를 들어, customer.xml 레이아웃 파일

<reference name="top.links"> 
     <action method="addLink" translate="label title" module="customer"><label>My Account</label><url helper="customer/getAccountUrl"/><title>My Account</title><prepare/><urlParams/><position>10</position></action> 
    </reference> 

에서 XML의이 부분은에 My account 링크를 추가합니다. 다른 것들도 있습니다. 결론적으로 topLinks 블록은 자체적으로 의미가 없습니다. 다른 블록에 의해 수정 될 수있는 자리 표시 자일뿐입니다.
cms 페이지가 렌더링되면 레이아웃이 이미로드되어 있으므로 추가 한 블록을 다른 블록이나 레이아웃 파일로 더 이상 수정할 수 없습니다.

+0

우리는 cms 페이지에 바로 가기 링크를 추가 할 수 없습니다. –

1

이처럼 CMS 페이지에서 상단 링크을 넣어 하드 코딩 할 수 있습니다 ..

<ul id="nav"> 
<li class="level0 parent"><a href="<?php echo $this->getUrl('customer/account')?>"><span>My Account</span></a></li> 
<li class="level0 parent"><a href="<?php echo $this->getUrl('wishlist')?>"><span>My Wishlist</span></a></li> 
<li class="level0 parent"><a href="<?php echo $this->getUrl('checkout/cart')?>"><span>My Cart</span></a></li> 
<li class="level0 parent"><a href="<?php echo $this->getUrl('checkout')?>"><span>Checkout</span></a></li> 
<li class="level0 parent"><a href="<?php echo $this->getUrl('customer/account/login')?>"><span>Log In</span></a></li> 
</ul> 
1

@Marius 감사가, 내가 거기에 뭔가 새로운 것을 배웠습니다. Magento 구조의 복잡한 세부 사항을 이해하는 데 여전히 어려움을 겪고 있지만 아직 해결 중입니다.
@chirag PHP는 웹 페이지에서 직접 작동하지 않으므로 시도했지만 http://mymagentopage/<?php echo $this->getUrl('customer/account')?>에 연결하려고합니다. 물론 http://mymagentopage/customer/account에 직접 연결할 수도 있지만 몇 가지 링크를 통해 기능을 놓칠 수 있습니다.
로그인 할 때 '로그인'이 '로그 아웃'으로 변경되고 계정 화면으로 이동하는 대신 고객을 로그 아웃합니다.
제품을 장바구니에 추가하면 "장바구니"가 "장바구니 (2)"로 변경됩니다.
등 (위시리스트는 사용하지 않음)
이 기능을 다시 사용할 수있는 방법이 있습니까?

나는 그것을 수행이 조각을 발견하지만, CMS를 페이지에서 작동하지 않습니다 PHP의 :
<?php if (Mage::getSingleton('customer/session')->isLoggedIn()==0): ?>
<a href="<?php echo $this->getUrl('customer/account/login') ?>"><?php echo $this->__('Log In') ?></a>
<?php else: ?>
<a href="<?php echo $this->getUrl('customer/account/logout') ?>"><?php echo $this->__('Log Out') ?></a>
<?php endif ?>

것은 나는 또한에 PHP를 사용하는 저를 가능하게하는 솔루션에 만족하실 것입니다 CMS 페이지, 나는 어쨌든 유일한 관리자입니다.


편집은 내가 작업 솔루션을 발견 :
내가 위에서 언급 한 조각을 포함하는 새로운 PHTML 파일을 만들었습니다. 내 템플릿 폴더에 새 폴더 'customphp'를 만들어 test.phtml 파일로 저장했습니다.
cms 페이지에서 블록을 추가했습니다. {{block type="core/template" name="whatever_unique-name-i-want" template="customphp/test.phtml"}}
타다!

여기가 내가 아이디어를 얻은 곳입니다. http://www.magentocommerce.com/boards/viewthread/439880/

+0

위대한 .. 나는이 새로운 방법을 cms에 가기 링크를 넣는 법을 배웠습니다. PHP 코드가 CMS 페이지에서 지원되지 않는다고 언급 한 것에 대해 감사드립니다. –