2013-04-02 1 views
0

내 ModX 에보 사이트가이 오류를 던지는에 문제가 있습니다ModX : insert_metka 함수는 어디에 있습니까?

Fatal error: Cannot redeclare insert_metka() (previously declared in /home/mysite/public_html/manager/includes/document.parser.class.inc.php(794) : eval()'d code:2) in /home/mysite/public_html/manager/includes/document.parser.class.inc.php(794) : eval()'d code on line 12' 

내가 검색 및 검색하지만 insert_metka()가 선언 된 위치를 찾을 수있다. 나는 전체 사이트를 다운로드하고 아무 소용이없는 검색을 실행했습니다. 나는 또한 버전을 최신 버전으로 업데이트하려고했지만 또한 아무 소용이 없었다.

누구든지이 기능을 어디에서 찾을 수 있습니까?

답변

2

데이터베이스 덤프를 다운로드하고이 줄을 찾으십시오. 플러그인 중 결함 하나가 발견 될 때까지 플러그인을 비활성화 해보십시오. 자세한 조언은 ModX Evo: PHP error in document.parser.class.inc.php을 참조하십시오.

+0

예, 플러그 인 + 스 니펫이 데이터베이스에 저장되므로 파일 검색에서이 기능을 찾을 수 없습니다. 중복 질문을 게시하지 마십시오;) – okyanet

+0

고마워! 그랬어. 누구든지 찾고있는 사람은 Quick ManagerManger 스 니펫에 있습니다. – MeltingDog

0

오류 코드에서 알 수 있듯이 함수가 스 니펫에 선언되었습니다. 이는 Modx가 성능 향상을 위해 스 니펫 캐싱 방식을 사용하기 때문입니다. 스 니펫의 정적 파일을 함수로 래핑합니다.

동일한 함수가 두 번 호출되고 그 안에 함수를 선언하면 오류가 발생할 수 있습니다. 나는 그것이 현재 일어나고있는 일이라고 생각한다.

간단히과 같이 function_exists에 전체 기능을 포장이 문제를 해결하려면

if (!function_exists("insert_metka")) { 
    function insert_metka() { 
     // Stuff goes here 
    } 
} 

(!) 참고 :이 Vasis에 의해 주어진 대답에 추가됩니다. 스 니펫, 추가 기능 및 플러그인을 검색해야합니다. 파일의 어딘가에 위치해야합니다. Modx 코어에서 제공하는 함수는 아닙니다.

관련 문제