미디어위키 문서 정보에 문서ID URL 보여주기

1 개요[ | ]

미디어위키 문서 정보에 문서ID URL 보여주기
  • 미디어위키 1.20부터 사이바의 "문서 정보" 메뉴에서 문서ID(pageid)를 확인할 수 있다.
  • 여기에 미디어위키 문서ID URL을 표시하고 싶다.
  • 미디어위키 폴더 아래 includes/actions/InfoAction.php의 onView() 메소드를 수정하면 된다.
  • 잘못될 수 있으므로 반드시 InfoAction.php의 사본을 만들어두고 해보시라.;;

2 사전 확인[ | ]

  • 먼저 미디어위키 문서ID URL 문서를 참고하여 자신의 위키 사이트에서 문서ID URL 사용이 가능한지 확인[1]
  • 자신의 위키 사이트에서 "문서 정보" 기능이 되는지 확인
https://ko.wikipedia.org/w/index.php?title=태양계&action=info 내용과 유사하게 나오면 OK

3 수정 전[ | ]

113 		// Get page information
114 		$pageInfo = $this->pageInfo();
115 		// Allow extensions to add additional information
116 		wfRunHooks( 'InfoAction', array( $this->getContext(), &$pageInfo ) );
117 
118 		// Render page information
119 		foreach ( $pageInfo as $header => $infoTable ) {
120 			$content .= $this->makeHeader( $this->msg( "pageinfo-${header}" )->escaped() ) . "\n";
121 			$table = "\n";
122 			foreach ( $infoTable as $infoRow ) {
123 				$name = ( $infoRow[0] instanceof Message ) ? $infoRow[0]->escaped() : $infoRow[0];
124 				$value = ( $infoRow[1] instanceof Message ) ? $infoRow[1]->escaped() : $infoRow[1];
125 				$table = $this->addRow( $table, $name, $value ) . "\n";
126 			}
127 			$content = $this->addTable( $content, $table ) . "\n";
128 		}

4 수정 후[ | ]

113 		// Get page information
114 		$pageInfo = $this->pageInfo();
115 		// Allow extensions to add additional information
116 		wfRunHooks( 'InfoAction', array( $this->getContext(), &$pageInfo ) );
117 
118 		// 2013-12-15 added by jmnote
119 		$url = "http://${_SERVER['SERVER_NAME']}/w/?curid=".$this->page->getID();
120 		array_unshift($pageInfo['header-basic'], array('문서ID URL', "<a href='$url'>$url</a>"));
121 
122 		// Render page information
123 		foreach ( $pageInfo as $header => $infoTable ) {
124 			$content .= $this->makeHeader( $this->msg( "pageinfo-${header}" )->escaped() ) . "\n";
125 			$table = "\n";
126 			foreach ( $infoTable as $infoRow ) {
127 				$name = ( $infoRow[0] instanceof Message ) ? $infoRow[0]->escaped() : $infoRow[0];
128 				$value = ( $infoRow[1] instanceof Message ) ? $infoRow[1]->escaped() : $infoRow[1];
129 				$table = $this->addRow( $table, $name, $value ) . "\n";
130 			}
131 			$content = $this->addTable( $content, $table ) . "\n";
132 		}
${_SERVER['SERVER_NAME']} 대신 자신의 서버주소(예: jmnote.com)를 그대로 써도 된다.

5 사후 확인[ | ]

  • 자신의 위키 사이트에서 "문서 정보" 메뉴에서 문서ID URL이 나오는지 확인
http://jmnote.com/w/index.php?title=태양계&action=info 처럼 맨 위에 문서ID URL이 나오면 OK

6 같이 보기[ | ]

7 주석[ | ]

  1. 미디어위키 단축 URL 사용이 적용되지 않았다면 안될 가능성이 높음
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}