MediaWiki에 직원 목록을 표시하는 PHP 스크립트가 있습니다. 또한 특수 페이지가있어서 어떤 사용자가 직원인지를 관리 할 수 있으며 그 점이 잘 작동합니다. 그러나 특별한 페이지에서 백엔드 변경을하면 변경 사항은 해당 페이지를 편집하고 아무 것도 변경하지 않을 때까지 태그가 삽입 된 위키 페이지에 표시되지 않고 저장됩니다.MediaWiki에서 기사로드시 스크립트 새로 고침
내가 잘못 걸려 있기 때문일 수 있습니다. 대신이 고리를 사용하려고하는데 작동하지 않는 것 같습니다. http://www.mediawiki.org/wiki/Manual:Hooks/ArticlePageDataBefore
지금이 고리를 사용하고 있습니다. 변수 이름을 변경해도 작동하지 않습니다.
$wgHooks['ParserFirstCallInit'][] = 'wfEmployeesParserInit';
// Hook our callback function into the parser
function wfEmployeesParserInit(Parser $parser) {
// When the parser sees the <sample> tag, it executes
// the wfEmployeesRender function (see below)
$parser->setHook('employees', 'wfEmployeesRender');
// Always return true from this function. The return value does not denote
// success or otherwise have meaning - it just must always be true.
return true;
}
// Execute
function wfEmployeesRender($input, array $args, Parser $parser, PPFrame $frame) {
...
귀하의 요구에 충분할지라도 이것이 아마도 최적의 해결책이 아님에 유의하십시오. 이 방법의 문제점은 표시된 데이터가 변경되지 않은 경우에도 확장 기능을 사용하는 모든 페이지가 표시 될 때마다 다시 표시되도록하는 것입니다. 데이터가 자주 변경되지 않는 경우 (예 : 특수 페이지를 통한 수동 편집) 확장 프로그램을 사용하여 페이지 목록을 저장하고 데이터를 업데이트하는 프로세스가 파서 캐시에서 페이지를 제거하는 것이 좋습니다. –
당신이 옳습니다, 그것은 최선의 해결책이 아닐 수도 있습니다. 그러나이 프로젝트는 최대 50 명의 사용자와 3 ~ 4 명의 사용자로 제한되므로이 경우에는 문제가되지 않습니다. –