2013-02-01 4 views
0

내 정상적인 인터넷 검색에서 응답하지 않은 3 가지 질문이 있습니다. 저는 지난 2 주 동안 Magento를 배우려고 노력한 사내 프론트 엔드 웹 개발자입니다. 나는 또한 Stack Overflow에 게시하는 것을 처음 사용하기 때문에 별도의 질문이나 질문으로 게시하는 것이 더 좋을지 알려 주시기 바랍니다.제품 블록을 다시 배열하십시오.

1. 레이아웃 -을 만들기 때문에 매 페이지는 동일한 그래서 내 대부분의 페이지 내 2columns 왼쪽 레이아웃을 사용하는 레이아웃

,하지만 그들 모두를 사용합니다. 내 local.xml에 일부 집합이 있고 일부는 .phtml 페이지로 직접 코딩되어 있습니다. 나는 다음과 같은 코드는 모든 페이지가 동일한 레이아웃을 사용하여 만들 것이라고 생각했을 것이다 :

나는 기본 젠토 레이아웃에 붙어있는 사이트 일 때 정상적으로 표시되지 않습니다 많은 페이지가있다
<reference name="root"> 
    <action method="setTemplate"><template>page/2columns-left.phtml</template></action> 
    <action method="setIsHandle"> 
     <applied>1</applied> 
    </action> 
</reference> 

,/쿠키 사용 가능 페이지 또는 검토 페이지와 같은 모든 단일 페이지에 대해 local.xml에서 이와 같은 블록을 사용하는 대신 전체 사이트에서 동일한 레이아웃을 원할 경우 모든 페이지를 통합하는 가장 좋은 방법은 무엇입니까?

2. 연락처 양식 - (가) 내가 CMS> 페이지에서 저희에게 연락 페이지를 편집하고

작동하지 않습니다 제출 '버튼을 클릭하고, 나는 아마도 내 양식 작업이 파일을 잃었 생각 가리키는. 양식이 나타나지만 제출하지 않습니다. 내가 구성 설정을 통해 사라와 한

Not Found 

The requested URL /contacts/index/post/ was not found on this server. 

내 생각 : 여기

{{block type='core/template' name='contactForm' form_action="/contacts/index/post/"  template='contacts/form.phtml'}} 

내가 제출 버튼을 클릭 한 후 얻을 오류 발생 :
여기 내가 우리의 연락처 CMS 페이지에있는 것입니다 그것들은 옳다. 그러나 내가 거기에서해야하는 다른 것이 있을지도 모른다. 난 당신이 로그인 리뷰를 추가 한 후 내 제품 페이지에 게재 form.phtml 활용 검토 사업부가

을 표시하기 위해 "전체"등급을 얻기하지만, 등급 -

3. 제품 리뷰 보이지 않습니다. 등급을 표시해야 하는지를 제어하는 ​​if 문 조건을 분명히 만족시키지 못하고 있습니다. 아래에 if 문장이 있습니다 :

<?php if($this->getRatings() && $this->getRatings()->getSize()): ?> 

나는 이러한 조건을 어떻게 만족 시킬지 모르겠다.

4. 정리 블록 - 나는 나쁜 습관을 개발을 시작하기 전에 블록

를 어디로 가고 있는지 다시 정렬 할 local.xml을 사용하여, 나는 내가 가서 얻을에서 모범 사례를 사용하고 있는지 확인하려면. 필자는 일반적으로 템플릿 파일에 들어가서 수동으로 phtml에있는 항목을 이동했지만 수동으로 XML에 변경 사항을 적용하는 것이 가장 좋습니다. 내가 알아낼 수없는 한 가지 특별한 문제는 겉보기에 단순한 것입니다 : "체크 아웃 진행"버튼을 카트의 맨 아래로 이동하려면 어떻게해야합니까?

다른 블록 이후에 다시 설정을 해제하려고합니다. 나는 unsetChild 파트를 작동시킬 수조차 못했습니다. 여기에 내 코드가 있습니다.xml :

<reference name="content"> 
    <action method="unsetChild"> 
     <name>checkout.cart.top_methods</name> 
    </action> 
</reference> 

나는 이것이 checkout.xml에서 자식의 자식이기 때문에 이것이 작동하지 않는 이유가 있다고 생각합니다. 다음은 checkout.xml의 일반적인 흐름입니다.

<checkout_cart_index> 
    <reference name="content"> 
     <block name="checkout.cart"> 
      **<block name="checkout.cart.top_methods">** 

아이디어가 있으십니까? 정말 고마워,이 게시물의 길이에 대해 미안해!

답변

2

1 °)로 루트 기준의 레이아웃을 변경하는 모든 레이아웃 XML을 편집 2columns-leftf.phtml 템플릿

또한 관찰자를 통해 갈 수 있습니다.

public function myEventHandling($event) { 
    $event->getAction()->getLayout()->getBlock('root')->setTemplate('page/2columns-left.phtml'); 
} 

2 °) 모듈 연락처 컨트롤러 인덱스 액션 postAction을() 그래서/연락처/색인/포스트해야한다/그래서 일을해야 다음 controller_action_layout_generate_blocks_after 이벤트를 관찰하고 방법은 않습니다. CMS 페이지가/contacts/normal 동작 (모듈 연락처 컨트롤러 색인 작업 인 indexAction())을 대체 한 경우를 제외하고는 contacts 모듈 대신 cms 페이지에서 검색합니다. CMS 페이지의 URL이 URL 인 경우 변경하십시오.

3 °) 더 정확 할 수 있습니까? 나는 네가 필요한 것을 정말로 이해하지 못한다. 양식 또는 기존 평점이 표시되지 않습니까?

4 °) UnsetChild 또는 제거 명령어가 전역이므로 대체 후 다른 이름으로 설정해야합니다. 하지만 당신은 적절한 위치에 블록을 이동하는 템플릿 디렉토리 (기본/기본/레이아웃 디렉토리에없는 사람)에 레이아웃 파일을 편집하고 PHTML 파일에서

echo $this->getChildHtml('myblock') 

을 이동하려고 할 수 있습니다 적절한 위치에.

+0

답장을 보내 주셔서 감사합니다. – Aaron14

+0

1. "모든 레이아웃 xml 편집"이란 말은 cart.xml, checkout.xml 등과 같은 각 레이아웃 파일을 편집한다는 의미입니까? layout.xml에서 한 블록 내에서 모든 변경을 수행하고 모든 개별 페이지에 대한 블록을 삽입 할 필요없이 바랄 수 있기를 바랬습니다. 아마 불가능합니다. 2. 흥미 롭다. 나는 그것을 시도 할 것이다. 3. 미안하지만 나는 분명하지 않았습니다. 누군가 리뷰를 쓸 때 댓글을 달고 제품에 1-5 점을 평가하기를 원합니다. 댓글의 텍스트 입력란이 표시되지만 등급은 표시되지 않습니다. 4. 이것이 필자가 phtml 파일을 통해 수행 한 방법이지만 최상의 방법입니까? – Aaron14

+0

1 °) 예, 모든 layout.xml을 가장 깨끗한 방법으로 변경해야합니다. 최소한 루트에 대한 참조를 포함하는 모든 것을 변경하십시오. 이 작업을 원하지 않으면 옵서버 방식을 사용하십시오. 2 °) 업데이트 날 : 3 °) 좋습니다, 등급이 포함되지 않은 디자인에서 문제가 발생했는지 또는 등급이 제대로 설정된 지 확인하십시오 (카탈로그/리뷰 및 등급/등급 관리, 적어도 1 등급이 활성화되어 있는지 확인하십시오 4 °) 다른 해결책은 레이아웃을 변경하여 "깨끗하게"만들 수 있지만 기존 파일은 변경되지 않지만 더 나은 방법은 아닙니다. 나머지 40 명은 설명 할 수 없습니다. 필요한 경우 알려주십시오. – dagfr

관련 문제