MediaWiki를 사용하고 있습니다. 위키의 페이지 중 일부는이 페이지의 하단에있는 것과 같은, 하나 개 이상의 대형 탐색 블록을 포함 : 이와 같은MediaWiki의 pagelinks에서 페이지 일부를 제외하십시오.
블록은 여러 페이지에 포함되어 있습니다. 이제 페이지가 저장되면 다른 페이지에 대한 링크 목록도 업데이트됩니다 (pagelinks
표). 이러한 참조는 '여기에있는 링크'특별 페이지 및 기타 유사한 페이지에서도 사용됩니다.
하지만 사실은이 블록의 링크가이를 원하지 않습니다. 이 update-links-to-other-pages 프로세스에서 MediaWiki가 페이지의 일부분을 제외시킬 수있는 방법이 있습니까?
특정 클래스를 오버라이드하고 일부 후크를 사용 했으므로 그 작동 원리에 대해 알고 있지만 프로세스의이 부분에 영향을 줄 수있는 올바른 방법을 찾을 수는 없습니다.
모든 시도가 끝나면 배열로 파싱 된 링크를 저장하는 데 사용되는 ParserOutput::addLink
을 발견했습니다. 그런 다음 저장시이 배열이 데이터베이스에 병합됩니다. addLink는 두 곳에서 가장 많이 호출되며 에서 호출되며 Parser::internalParse
에서 호출됩니다.
정확하게 이해하면 각 텍스트마다 internalParse
이 별도로 호출됩니다. 여기에는 별도의 포함이 포함되지만 중첩 된 태그도 포함됩니다. 어쩌면 internalParse
이라는 후크를 사용할 수도 있지만 아직 성배를 찾지 못했습니다. Parser 클래스 자체를 수정하지 않고 올바른 방향으로 푸시를 사용하여 문제를 해결할 수 있습니다.
이 제안에 감사드립니다. 템플릿을 만들었지 만 구현 방식은 약간 다르지만 일반적인 아이디어는 '{{{2|{{{1|}}}}}}'입니다. 그래, 나는 그것을 덜 읽을 수있게 만들었다. ;) – GolezTrol
그래도 파서 함수를 만들려고합니다. 그 이유는 같은 위키에 두 개의 URL이 있기 때문입니다.하나는 관리자/편집자 버전이고, 하나는 읽기 전용 버전입니다. 일부 수정 사항은 승인되지 않은 페이지 (FlaggedRev 사용)에 대한 링크가 링크 대신 일반 텍스트로 표시된다는 것입니다. 이 기능은이 '외부'링크로 인해 깨졌습니다. 그 이유는 내가 작성한 후크가이 DIY 링크에 대해 분명히 호출되지 않았기 때문입니다. 그럼에도 불구하고이 솔루션은 현재 잘 작동하며 확실하게 나를 도왔습니다. – GolezTrol