특정 모듈의 업데이트를 확인하지 않으려면 어떻게합니까?


35

현재 프로젝트에서는 몇 가지 모듈 (노드 계층, 워크 벤치 액세스 등)에서 수명을 패치해야했습니다. 이 모듈은 이제 프로젝트의 요구에 완벽하게 부합하며 향후 코어 업데이트로 인해 깨지지 않을 것입니다.

즉, 앱이 전달되면 클라이언트는 시스템에 대한 전체 (사용자 1) 액세스 권한을 가지므로 이러한 모듈에 사용 가능한 업데이트가 있으면 경고가 표시됩니다. 그리고 그들은 내가 몇 번이나 간청하지 않더라도 그들을 업데이트 할 것입니다 (오 클라이언트가없는 인생은 얼마나 쉬울 것입니까!).

.info업데이트 관리자가 이러한 모듈의 업데이트를 확인하지 않도록 설득 할 수 있는 방법이 있습니까 (아마도 모듈의 파일에) 있습니까?

편집하다

파일에 project status url사용할 수 있는 키를 알고 .info있으므로 존재하지 않는 URL로 설정할 수는 있지만 가능하면 깔끔한 방식 으로이 작업을 수행하는 것이 좋습니다.

답변:


31

구현해야합니다 hook_update_projects_alter().

데이터를 가져오고 버전을 비교하기 전에 프로젝트 목록을 변경하십시오.

대부분의 모듈은이 후크를 구현할 필요가 없습니다. 업데이트 상태 모듈과의 고급 상호 작용을위한 것입니다. 필사자 만 적용 할 필요는 없습니다. 이 후크의 주요 사용 사례는 예를 들어 비활성화 된 모듈 및 테마에 대한 업데이트 상태 데이터를 제공하기 위해 프로젝트를 목록에 추가하는 것입니다. 기여 모듈은 목록에서 프로젝트를 숨길 수 있습니다. 예를 들어, 공식 릴리스가없는 사이트 특정 모듈이있는 경우 해당 모듈은이 목록에서 "사용 가능한 릴리스를 찾을 수 없음"경고를 피하기 위해 자신을 제거 할 수 있습니다. 사용 가능한 업데이트 보고서 드문 경우이지만 모듈은 이미 목록에있는 프로젝트와 관련된 데이터를 변경하려고 할 수 있습니다.


19

.info 파일 의 project키는 drupal.org의 패키징 스크립트에 의해 추가되어 모듈의 출처를 식별합니다. 기본적으로 업데이트 상태 모듈은 설치된 패키지의 버전을 모니터링하고 새 버전이 출시되면 관리자에게 알립니다.

.info 파일 에서이 줄을 제거하거나 주석 처리하면 Drupal은이 모듈의 업데이트 확인을 중지합니다.


이것이 틀렸거나 다른 이유로 다운 다운 되었습니까?
mpdonadio

이것이 가장 쉽고 쉬운 방법 인 IMO입니다!
AyeshK

1
@MPD project문서에서는 수동으로 사용 하지 않는 것이 좋습니다. 이는 다운 보트 의 원인 일 수 있습니다.
Mołot

이것이 테마의 사용자 정의 버전 확인을 중지하는 유일한 방법이었습니다. 물론, "올바른 방법"을 원하지만 이것은 작동하고 npc의 코드를 재사용하지만 THEMENAME_update_projects_alter는 그렇지 않았습니다.
nedwardss

3
@nedwardss 사용 MYMODULE_하거나 THEMENAME_전용 코드가 배치되어야하는 위치를 나타낸다. 사용자 정의 모듈 대신 테마 기능 파일에서이 코드를 사용하면 다른 단계에서 처리되어 예상대로 수행되지 않을 수 있습니다. 테마에 $projects변수 가 포함되어야합니다 .
emc

14

선택한 답변에 도움이되는 코드 샘플을 제공하기 만하면됩니다.

function MYMODULE_update_projects_alter(&$projects){
    unset($projects['slug_of_the_module_you_want_to_disable']);
    //dsm($projects);  // view a list of projects
}

$projects[]비활성화 할 변수에 모듈 이름을 입력하십시오 . 슬러그가 무엇인지 확실하지 않은 경우 (소문자와 밑줄로 표시됨) 해당 dsm()호출을 사용 하거나 print_r()모듈 목록을 인쇄하십시오.


1
한 가지 참고 사항 slug은 모듈 .info파일 의 이름과 동일한 모듈의 기술적 이름입니다 . 따라서 프로젝트 배열을 덤프하지 않아도 모듈 폴더를 살펴볼 수 있습니다. 대부분의 경우 이름은 모듈 폴더의 이름과 같습니다.
Nux

1
@Nux "대부분의 경우"는 슬러그 모듈 이름과 일치 하지 않는 경우에 비생산적입니다 . 슬러그를 처음보고 사용함으로써 개발자를 교육하고 가능한 문제 수를 줄입니다.
emc

Drupal에서 사용 된 용어는 슬러그가 아니라 머신 이름 입니다. 슬러그 는 일부 CMS에서 표준 URL 또는 경로 별칭 과 동일하게 사용됩니다 .
kiamlaluno

12

두 가지 방법으로 할 수 있습니다.

  • 오후 오후 업데이트 코드 --lock = module_to_ignore
  • update_advanced 모듈을 사용하십시오 . 모듈 관리 페이지에서 무시하려는 모듈을 표시 할 수 있습니다.

특히, 특정 프로젝트 또는 특정 릴리스를 무시하기위한 프로젝트 별 설정은 모듈의 핵심 버전에 없습니다. "업데이트 상태 고급 설정"모듈은 이러한 설정을 복원하고 결국 핵심 "업데이트 상태"모듈에 대한 추가 기능을 제공 할 수 있습니다.


drush 명령은 내가 찾던 것입니다. 고마워요!
Waqar Lim

drush help upc이 줄 것이다 --lock--lock = <foo는, 바> 업데이트시 고려 사항에서 지정된 프로젝트를 제거하는 지속적인 잠금 장치를 추가합니다 도움이됩니다. --unlock 매개 변수를 사용하여 잠금을 제거하거나 프로젝트를 pm-update 또는 pm-updatecode에 대한 매개 변수로 이름을 지정하여 재정의 할 수 있습니다. 잠금은 오후 다운로드에는 영향을 미치지 않습니다.
이즈미르 라미레즈

2

모듈 업데이트와 동일한 문제가 발생하며 업데이트 비활성화 모듈을 설치하면 정상적으로 작동합니다.

이것은 사이트 관리자가 업데이트 설정 양식 (/ admin / reports / updates / settings)에 hook_update_projects_alter ()의 기능을 노출시켜 특정 테마 및 모듈에 대한 업데이트 확인을 비활성화 할 수있는 작은 관리 모듈입니다. 사용자 지정 모듈, 패치 모듈 및 사이트 별 기능 모듈의 자동 감지뿐만 아니라 테마 및 모듈을 임의로 선택할 수 있습니다.

여기에 이미지 설명을 입력하십시오


0

기본적으로, 당신은 포크를 만들었습니다. 따라서 다음을 수행해야합니다.

  1. 포크 마크를 포함하도록 이름을 바꿉니다.
  2. 정보 파일에서 project status url해당 모듈의 저장소로 설정 하십시오.

마지막으로, 지원되지 않지만 다른 모듈을 선호하지 않는 경우 공동 유지 보수 담당자가되어 수정 사항을 커뮤니티와 공유하십시오.


2
Donschoe : 여기 관리자입니다. 원하는 경우 속도를 낼 수 있도록 기꺼이 도와 드리겠습니다.
berkes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.