J3으로 업그레이드하면 JHtmlBehavior :: mootools를 찾을 수 없습니다.


9

에 500 오류가 발생합니다 JHtmlBehavior::mootools not found. J3에서 이것이 제거되었다는 것을 알고 있지만 문제 가이 문제의 위치를 ​​찾으려고합니다.

나는 그것이 일종의 확장이라고 생각하지만 그것들을 모두 업데이트했다고 생각합니다. 당연히 아니. 내 PHP 로그 또는 개발자 도구 콘솔에 문제가있는 곳을 나타내는 것이 없습니다. 나는 심지어 JHtmlBehavior를 grep하고 아무것도 얻지 못했습니다.

어떻게 디버깅 할 수 있습니까?

답변:


9

내 자신의 사용자 정의 구성 요소에서 문제를 발견했습니다 ... 웃음. 를 찾고 있었기 때문에 문제가되는 코드를 찾을 수 없습니다 JHtmlBehavior::mootools.

그러나 문제의 코드는 다음과 같습니다.

JHTML::_('behavior.mootools');

이를 변경하면 문제가 해결됩니다.

JHtml::_('behavior.framework');

3

MooTools는 Joomla 3에서 더 이상 사용되지 않지만 계속 사용할 수 있습니다 (그러나 이후 버전에서는 제거 될 수 있음).

다음을 추가하여 프레임 워크를로드 할 수 있습니다

JHtml::_('behavior.framework');

(또는 핵심 라이브러리와 추가 라이브러리가 모두 필요한 경우) :

JHtml::_('behavior.framework', true);

템플릿 index.php파일에.

이것은 Mootools 코드를 사용하여 파일 / 확장자를 찾을 때까지 최소한 임시 수정입니다. 범인을 찾는 것이 어려울 수 있지만 브라우저 개발자 도구 ( F12대부분의 브라우저)에서 시작하여 JavaScript 오류를 찾으면 힌트를 줄 수 있습니다.


고맙지 만 둘 다 시도했지만 여전히 같은 오류가 발생합니다. 개발자 도구 (또는 Firebug)는 500 내부 서버 오류 이외의 다른 것을 말하지 않습니다. 다른 아이디어가 있습니까?
Tom

코드를 올바르게 추가 JOOMLAROOT/templates/YOURTEMPLATE/index.php했습니까? 바로 다음에 추가 할 수 있습니다 defined('_JEXEC') or die;. window.MooToolsFirebug 에 입력하여 MooTools가로드되었는지 확인하십시오 Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }.
johanpw

이러한 JHtml::호출을 추가해도 오류가 중지되지는 않습니다. 이는 사이트의 PHP에서 잘못된 호출로 인해 발생한 결과입니다.
Craig

2

이것은 Joomla가 오류를 발생시키는 PHP 오류이므로 Javascript 오류가 아니며 더 많은 PHP를 추가하여 해결해야 할 것이 아닙니다. 의심스러운 것처럼 잘못된 PHP 호출의 소스를 찾아야합니다.

가장 먼저해야 할 일은 오류보고를 "개발"로 바꾸고 새로운 정보를 제공한다는 것을 알 수 있습니다. 오류의 원인을 추적하는 데 도움이되는 새로운 정보가 없으면 수동 슬라이스 및 주사위 방식이됩니다.

내장 템플릿으로 간단히 교체하고 문제가 사라 졌는지 확인합니다. 템플릿이나 교체 된 기본 템플릿에 할당 된 위치가 없어 더 이상 호출되지 않은 모듈 인 경우 문제가 해결되는지 확인하십시오. 템플릿이 아닌 경우 모듈을 매우 빠르게 추적 할 수 있습니다.

마지막으로 문제가 해결되지 않으면 50 % 방법을 사용하여 문제의 원인이되는 구성 요소, 모듈 또는 플러그인 그룹을 신속하게 좁히십시오.


2

다음은 코드의 출처를 찾기위한 몇 가지 단계입니다.

  1. 가장 좋은 방법은 웹 사이트의 전체 사본을 다운로드하고 디렉토리에서 JHTML에 대한 OS 시스템 검색을 수행하는 것입니다. : _ ( 'behavior.mootools'); . 일반적으로 컴퓨터는이 특정 문자열이 포함 된 모든 파일이 포함 된 목록을 반환합니다.

  2. 첫 번째 단계가 가능하지 않거나 어떤 이유로 든 결과를 얻을 수없는 경우 확장 기능을 비활성화해야합니다.

    ㅏ. 먼저 템플릿을 핵심 Joomla 3 프로토 스타 템플릿으로 전환하십시오. 문제가 가장 많이 해결되면 더 이상 사용되지 않는 코드가 포함 된 템플릿입니다.

    비. 그런 다음 모듈 및 플러그인을 끌 수 있습니다.

    씨. 마지막으로, 문제가 타사 구성 요소의 특정 페이지에만 나타나는지 확인하십시오.

Joomla 문서 에서 Joomla에 Javascript 프레임 워크를로드하는 방법에 대한 자세한 정보 찾기

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.