2014-12-31 2 views
0

나는이 대답을 따르며 Check module position in OpenCart 2.0이며 코드가 코어 파일에 직접 추가 될 때 잘 작동합니다.코드를 추가 할 때 vqmod를 통해

그러나이 동일한 코드 (3 단계)을 통해 VQmod를 (변경 코어 파일없이) 추가하십시오. 그래서, 그것은 작동하지 않습니다. 오류 발생 (알림 : 정의되지 않은 색인 : 위치를 ....)


Vqmod 코드.

<file path="catalog/controller/common/" name="content_top.php,content_bottom.php,content_right.php,content_left.php"> 
    <operation> 
     <search position="after"> 
     <![CDATA[$setting_info = $this->model_extension_module->getModule($part[1]);]]> 
     </search> 
     <add> 
     <![CDATA[$setting_info['position'] = basename(__FILE__, '.php');]]> 
     </add> 
    </operation> 
    </file> 

나는 그것을 해결하는 방법

OpenCart 버전 2.0.1.1을 사용하고있다?


=== 업데이트 === vqcache 파일

변경된 코드입니다.

if (isset($part[1])) { 
      $setting_info = $this->model_extension_module->getModule($part[1]); 


      if(!isset($setting_info['position'])){ 
       $setting_info['position'] = basename(__FILE__, '.php'); 
      } 



      if ($setting_info && $setting_info['status']) { 
       $data['modules'][] = $this->load->controller('module/' . $part[0], $setting_info); 
      } 

모듈이 왼쪽/오른쪽 열에서 활성화되었을 때. 그래서, 아래 오류가 발생합니까.

Notice: Undefined index: position in C:\......\template\module\featured.tpl on line 1 

맨 위/맨 아래 열에 모듈이 활성화 된 경우. 그래서 아무것도 표시하지 마십시오.

+0

실제 오류는 제공 한 xml vqmod 스크립트 부분과 관련이없는 것 같습니다. 따라서 featured.php 및 featured.tpl을 업데이트 했습니까? 오류는 전달되지 않는 값과 관련이있는 것처럼 보입니다. 예를 들어, "$ data [ 'module'] = $ setting;"수정 한 내용을 따르지 않으면 featured.php –

+0

에 이미 추가했습니다. 나는 생각하지 않는다. 왜냐하면이 파일에'$ setting_info [ 'position'] = basename (__ FILE__, '.php');'직접 추가하기 때문에. 그래서, 그것은 잘 작동합니다. 하지만 vqmod를 통해 추가됩니다. 그래서, 그것은 작동하지 않습니다. – HarnishDesign

+0

지연된 답변을 드려 죄송합니다. 다른 모든 것이 괜찮다는 것이 확실하다면, 이는 유일한 원인 (유일한 이유)을 의미하며, 수정 된 파일은 잘 수정되지 않았거나 원본 파일이 여전히 호출됩니다. 좀 더 읽고 난 그 opencart 2.0을 참조 OCMod를 사용하고 VQMod는 그 순간에 호환되지 않습니다.기사 링크 : http://forum.opencart.com/viewtopic.php?f=34&t=129261 –

답변

0

글쎄, 나는 잠시 동안 OpenCart를 따라 오지 않았지만 비슷한 상황을 떠올리게하는 것처럼 내가 당신의 질문에 당신을 도울 수 있다고 생각합니다.

우선 내가 항상 vqcache 폴더에 코드가 출력되어 있는지 확인하시기 바랍니다. 그러면 더 철저하게 살펴볼 수 있습니다.

두 번째로 문제는 vqmod를 통해 추가하면 먼저 변수가 실제로 미리 초기화되지는 않았지만 그 순간에 "확인되지 않은 색인"오류가 발생한다는 것입니다. 용액을 대체한다 :

<![CDATA[$setting_info['position'] = basename(__FILE__, '.php');]]> 

으로 : 손 용액이어야 전에 존재하는 경우

<![CDATA[ 
       if(!isset($setting_info['position'])){ 
        $setting_info['position'] = basename(__FILE__, '.php'); 
       } 
    ]]> 

일반적인 생각은 변수에 대한 체크이다. 그렇지 않다면 생성 된 파일을 vqcache 폴더에서 디버그하고 실제 렌더링 된 코드를 확인해야합니다.

내가 더 이상 당신을 도울 수 있으면 좋겠지 만 OpenCart를 오랫동안 사용하지 않았습니다 (특히 새 버전).

+0

나는 시도했다. 하지만 이것은 작동하지 않습니다. 또한 vqcache 폴더를 확인합니다. 그래서 코드가 완벽하게 렌더링되었습니다. – HarnishDesign

+0

코드를 조금 더 깨끗하게 만들었습니다. vqcache에서 변경된 코드의 일부를이 파일 중 하나에 게시하고 화면에 표시된 전체 오류를 게시 할 수 있습니까? –

+0

나는 우리의 질문을 업데이트했다. 그것을 확인하십시오. – HarnishDesign