2010-12-01 5 views

답변

5

그것은 까다로운 데 도움이됩니다. 먼저 hook_comment (http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_comment/6)를 사용하여 필요한 것을 관리 할 수 ​​있는지 알아 보는 것이 좋습니다. 정말 필요한 것보다 많습니다.

이 comment_save를 대체해야하는 경우 어떤 것이 좋을지를 둘러 보는 것이 좋습니다. 이 상황에서 운이 좋으면 - comment_save는 comment_form_submit 내부의 한 곳에서 comment.module의 1542 행에 대해서만 호출됩니다.

이제 comment_form_submit은 comment_save를 대체하는 대신 양식 제출 기능입니다. 우리는 대신 comment_form_submit에 대한 자체 사용자 정의 버전을 만들 수 있습니다. (그리고 argument를 위해서 우리는 'custom_module'모듈에서 작업하고 있다고 가정 할 것입니다) - 그래서 내가하고 싶은 custom_module_comment_form_submit이라는 새로운 함수를 만들고, 사용하고자하는 comment_save의 변형을 호출 한 다음 hook_form_alter() (http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_form_alter/6)를 사용하여 $ form [ '# submit']을 설정하여 'comment_form_submit'에 'custom_module_comment_form_submit'을 입력하십시오.

이것은 완벽하지 않습니다. comment_save를 사용하는 다른 모듈을 설치하는 경우 비슷한 해결 방법을 찾아야합니다. 그리고 만약 당신이 여기서 일하는 부분에서 수정 된 드루팔 (Drupal)에서 버그 나 보안 구멍이 발견되면 코드에 그 보안 구멍이 고정되지 않습니다. 그러나 만약 당신이 절대적으로 comment_save를 대체해야한다면, 이것이 거의 유일한 방법입니다.

2

comment_save 함수를 '재정의'할 수는 없지만 사용자 정의 모듈에 hook_comment를 구현할 수 있습니다.

drupal.org's 문서를 참조하십시오. 당신이 될 것를 위해 편리 할 것이다 문제

두 $ 작전 :

  • "삽입"코멘트가 삽입되고있다.
  • "업데이트": 설명이 업데이트되고 있습니다.

희망이

+0

동의. 나는 코어 나 다른 모듈의 동작을 '오버라이드 (override)'할 필요가있을 때 hook_comment와 hooks를 사용하는 것이 일반적이다. –

1

확실히 이상적이지는 않지만 때때로 수정 된 함수가 포함 된 사용자 정의 모듈을 만든 다음 원래의 주석을 달았습니다 (다른 사람에게 이것이 완료된 이유를 설명하기에 충분한 주석을 추가했습니다). 그리고 원래 함수가있는 모듈을 도로를 따라 내려 가면 함수가 이미 선언되었거나 다시 평가할 것을 알리는 오류가 발생합니다. 후크는 확실히 모범 사례이지만 핀치 (pinch)에서는 적어도 기존 모듈에서 실제로 함수를 편집하는 것보다 약간 나은 점이 있습니다. 몇 가지 경우에 특정 모듈이 잘 작동하도록하는 데 필요한 것을 발견했습니다.

관련 문제