답변:
좋아, 나는 그것을 스스로하는 방법을 알아 냈고, 여기 해결책이있어서 Wikipedia와 같은 섹션 헤더 에 편집 버튼 을 가질 수 있습니다 .
텍스트 편집기에서 다음 파일을여십시오.
"\ dokuwiki \ inc \ parser \ handler.php"
110 행 근처에서 다음을 발견 할 수 있습니다.
if ($level<=$conf['maxseclevel']) {
$this->_addCall('section_edit',array($this->status['section_edit_start'], $pos-1, $this->status['section_edit_level'], $this->status['section_edit_title']), $pos);
$this->status['section_edit_start'] = $pos;
$this->status['section_edit_level'] = $level;
$this->status['section_edit_title'] = $title;
}
위의 내용을 다음과 같이 바꾸십시오 :
if ($level<=$conf['maxseclevel']) {
$this->status['section_edit_start'] = $pos;
$this->status['section_edit_level'] = $level;
$this->status['section_edit_title'] = $title;
$this->_addCall('section_edit',array($this->status['section_edit_start'], $pos-1, $this->status['section_edit_level'], $this->status['section_edit_title']), $pos);
}
PHP 파일을 저장하고 닫은 다음 위키에서 기사를 다시로드하십시오. 해당 섹션을 편집하기 위해 모든 헤더 근처에 편집 단추가 있도록 DokuWiki를 "수정"했습니다.
이것이 도움이되기를 바랍니다.
렌더링이 수행되는 방식으로 인해 PHP 에서이 작업을 수행 할 수없는 것 같습니다. 섹션의 끝 범위를 알지 못하지만 페이지가 자바 스크립트로 렌더링되면 버튼을 이동할 수 있습니다.
릴리스 2016-06-26a "Elenor of Tsort"의 경우 lib / scripts / page.js를 편집하고 다음을 삽입하십시오.
/**
* Moves the edit buttons beside the headings once it has the edit end range since we dont know it when rendering the heading in PHP.
*/
moveEditButtonsToHeadings: function(){
jQuery('form.btn_secedit').each(function(){
var $tgt = jQuery(this).parent(),
$editButton = jQuery(this).parent(),
nr = $tgt.attr('class').match(/(\s+|^)editbutton_(\d+)(\s+|$)/)[2];
// Walk the dom tree in reverse to find the sibling which is or contains the section edit marker
while($tgt.length > 0 && !($tgt.hasClass('sectionedit' + nr) || $tgt.find('.sectionedit' + nr).length)) {
$tgt = $tgt.prev();
}
// move the edit button and adjust the styles
$tgt.css('display', 'inline-block');
$editButton.detach().insertAfter($tgt);
if ($tgt.prop("tagName") == 'H1') {
$editButton.css('marginTop', '0.4em');
} else if ($tgt.prop("tagName") == 'H2') {
$editButton.css('marginTop', '0.2em');
} else {
$editButton.css('marginTop', '0.0em');
}
$editButton.css('marginRight', '10px');
$editButton.css('float', 'left');
});
},
sectionHighlight2: function() {
jQuery('div.secedit')
.mouseover(function(){
var $tgt = jQuery(this),
$level = $tgt.next();
$level.addClass('section_highlight');
})
.mouseout(function(){
var $tgt = jQuery(this),
$level = $tgt.next();
$level.removeClass('section_highlight');
});
}
init 함수를 변경하여 두 개의 새로운 함수를 호출하고 이전 섹션을 강조 표시하십시오.
init: function(){
//dw_page.sectionHighlight();
dw_page.moveEditButtonsToHeadings();
dw_page.sectionHighlight2();
jQuery('a.fn_top').mouseover(dw_page.footnoteDisplay);
dw_page.makeToggle('#dw__toc h3','#dw__toc > div');
}