재정의를 유지하는 방법?


10

많은 사람들이 알고 있듯이 템플릿, 뷰, 모듈, 구성 요소를 재정의 할 수 있습니다.

주요 문제는 Joomla! 템플릿 폴더에서 재정의 된 항목이 오래되었습니다.

Joomla에 대한 업데이트가 완료 될 때마다 재정의를 업데이트 된 상태로 유지하려면 어떻게합니까?

직접 업데이트해야하고 각각의 새 업데이트를 확인해야합니까, 아니면 다른 방법이 있습니까?

답변:


4
  1. 오버 라이딩 한 원본 파일의 md5를 계산하는 작은 스크립트를 작성하십시오.
  2. 이 파일 경로와 MD5를 템플릿의 파일로 덤프하십시오.
  3. joomla가 업데이트 될 때마다 위의 스크립트를 다시 실행하십시오.
  4. MD5의 차이점을 확인한 다음 체크 아웃해야합니다.

팁 : CSS 재정의를 통해 해당 변경을 수행 할 수없는 경우에만 파일을 재정의하십시오.


이것은 좋은 생각처럼 보이지만 재정의에 주석을 달면 md5가 업데이트에서 제공되는 업데이트되거나 업데이트되지 않은 것과 비교하여 분명히 달라 지므로 작동하지 않습니다.
jackJoe

1
재정의 (템플릿 폴더에서 만든 파일)가 아닌 MD5 원본 파일 (구성 요소보기 폴더에서)을 요청하고 있습니다.
Shyam

1
아! 내가 참조! 그렇게하면 업데이트로 덮어 쓴 파일을 확인할 수 있습니다. 좋은 생각입니다. 버전 관리 시스템을 사용하고 재정의 된 파일이있는 분기를 가질 수 있으므로 스크립트를 작성할 필요가 없습니다.
jackJoe

12

Joomla 코어가 업데이트되면 템플릿 폴더의 재정의에 영향을 미치지 않습니다. 그것이 그들이 존재하는 이유입니다.

핵심 Joomla 항목에서 재정의는 Joomla 핵심 업데이트와 거의 충돌하지 않습니다. Joomla 코어 파일 또는 모든 파일을 대체 할 때 문서 문서를 문서화하십시오. 이 문제가 정기적으로 발생하고 하나 이상의 사이트를 관리하는 경우 대체 파일의 주석 처리는 중요합니다. 당신은 당신이 바꾼 것을 기억하지 못할 것입니다!

코드 편집기에는 새 파일을 이전 파일과 비교하고 변경된 내용을 한 줄씩 식별 할 수있는 "diff"기능이 있어야합니다. 당신이 잘 주석을 달았다면,이 diffing은 변경된 내용과 파일이 업데이트의 영향을 받았는지 정확하게 보여줍니다. 당신의 유일한 변화는 당신의 재정의가되어야합니다. 그 밖의 무엇이든 당신은 가서 다시 재정의해야합니다.

그러나 타사 재정의는 개발자가 MVC 구조를 올바르게 사용하지 않는 경우에만 문제가됩니다. 구성 요소 또는 모듈이 적절하게 배치 된 경우 해당 tmpl 또는 뷰가 코드 업데이트의 영향을받지 않아야합니다.

해당 확장에 중요한 기능 변화가있는 경우 파일을 문서화 / 설명하고 비교해야합니다.


전망 오버라이드 (override)의 한 예는 내가보기에 업데이 트를 갖는 com_content 구성 요소로 인해 깨진 사이트를했다 2.5.18에 줌라 2.5.16과 함께했던 핵심 업데이트에 의해 영향을받지 ...는 diff내가 무엇을 사용하지만, 다중를 가진 경우 재정의하는 것은 지루하고 많은 다른 사이트로 인해 각 사이트마다 수행하기가 매우 어렵습니다.
jackJoe

업데이트시 파일을 자동으로 비교하는 흥미로운 개념입니다. diff 함수는 PHP에 존재합니다. 그것은 나 이외의 다른 개발자에 의해 수행 될 수있다;)
Toni Marie

3

예, 매번 파일을 수동으로 비교하고 변경 사항을 업데이트해야합니다. 경미한 업데이트에서는 조정해야 할 가능성이 상대적으로 적지 만 주요 업그레이드에서는 재정의 된 파일이 크게 변경 될 수 있습니다. 나는 또한 더 쉬운 방법을 선호하지만 이것이 유일한 솔루션 ATM입니다.


0

Joomla 버전에서는 재정의를 변경해서는 안됩니다. 그러나 파일이 변경된 것을 발견하면 전체 Joomla 설치를 서브 버전으로 관리하면됩니다.

그런 다음 서브 버전에서 적절한 Joomla 코드 버전을 관리하고 공급 업체 병합 http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html

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