1*f1dcc217SSatoshi Sahara<?php 2*f1dcc217SSatoshi Sahara 3*f1dcc217SSatoshi Saharanamespace dokuwiki\Ui; 4*f1dcc217SSatoshi Sahara 5*f1dcc217SSatoshi Saharause dokuwiki\Extension\Event; 6*f1dcc217SSatoshi Saharause dokuwiki\Form\Form; 7*f1dcc217SSatoshi Sahara 8*f1dcc217SSatoshi Sahara/** 9*f1dcc217SSatoshi Sahara * DokuWiki Page Conflict Interface 10*f1dcc217SSatoshi Sahara * 11*f1dcc217SSatoshi Sahara * @package dokuwiki\Ui 12*f1dcc217SSatoshi Sahara */ 13*f1dcc217SSatoshi Saharaclass PageConflict extends Ui 14*f1dcc217SSatoshi Sahara{ 15*f1dcc217SSatoshi Sahara protected $text; 16*f1dcc217SSatoshi Sahara protected $summary; 17*f1dcc217SSatoshi Sahara 18*f1dcc217SSatoshi Sahara /** 19*f1dcc217SSatoshi Sahara * PageConflict Ui constructor 20*f1dcc217SSatoshi Sahara * 21*f1dcc217SSatoshi Sahara * @param string $text wiki text 22*f1dcc217SSatoshi Sahara * @param string $summary edit summary 23*f1dcc217SSatoshi Sahara */ 24*f1dcc217SSatoshi Sahara public function __construct($text = '', $summary = '') 25*f1dcc217SSatoshi Sahara { 26*f1dcc217SSatoshi Sahara $this->text = $text; 27*f1dcc217SSatoshi Sahara $this->summary = $summary; 28*f1dcc217SSatoshi Sahara } 29*f1dcc217SSatoshi Sahara 30*f1dcc217SSatoshi Sahara /** 31*f1dcc217SSatoshi Sahara * Show conflict form to ask whether save anyway or cancel the page edits 32*f1dcc217SSatoshi Sahara * 33*f1dcc217SSatoshi Sahara * @author Andreas Gohr <andi@splitbrain.org> 34*f1dcc217SSatoshi Sahara * 35*f1dcc217SSatoshi Sahara * @triggers HTML_CONFLICTFORM_OUTPUT 36*f1dcc217SSatoshi Sahara * @param string $text 37*f1dcc217SSatoshi Sahara * @param string $summary 38*f1dcc217SSatoshi Sahara * @return void 39*f1dcc217SSatoshi Sahara */ 40*f1dcc217SSatoshi Sahara public function show() 41*f1dcc217SSatoshi Sahara { 42*f1dcc217SSatoshi Sahara global $ID; 43*f1dcc217SSatoshi Sahara global $lang; 44*f1dcc217SSatoshi Sahara 45*f1dcc217SSatoshi Sahara // print intro 46*f1dcc217SSatoshi Sahara print p_locale_xhtml('conflict'); 47*f1dcc217SSatoshi Sahara 48*f1dcc217SSatoshi Sahara // create the form 49*f1dcc217SSatoshi Sahara $form = new Form(['id' => 'dw__editform']); 50*f1dcc217SSatoshi Sahara $form->addTagOpen('div')->addClass('no'); 51*f1dcc217SSatoshi Sahara $form->setHiddenField('id', $ID); 52*f1dcc217SSatoshi Sahara $form->setHiddenField('wikitext', $this->text); 53*f1dcc217SSatoshi Sahara $form->setHiddenField('summary', $this->summary); 54*f1dcc217SSatoshi Sahara 55*f1dcc217SSatoshi Sahara $form->addButton('do[save]', $lang['btn_save'] )->attrs(['type' => 'submit', 'accesskey' => 's']); 56*f1dcc217SSatoshi Sahara $form->addButton('do[cancel]', $lang['btn_cancel'] )->attrs(['type' => 'submit']); 57*f1dcc217SSatoshi Sahara $form->addTagClose('div'); 58*f1dcc217SSatoshi Sahara 59*f1dcc217SSatoshi Sahara // emit HTML_CONFLICTFORM_OUTPUT event, print the form 60*f1dcc217SSatoshi Sahara Event::createAndTrigger('HTML_CONFLICTFORM_OUTPUT', $form, 'html_form_output', false); 61*f1dcc217SSatoshi Sahara 62*f1dcc217SSatoshi Sahara print '<br /><br /><br /><br />'.DOKU_LF; 63*f1dcc217SSatoshi Sahara 64*f1dcc217SSatoshi Sahara (new Diff($this->text, false))->show(); 65*f1dcc217SSatoshi Sahara print DOKU_LF; 66*f1dcc217SSatoshi Sahara } 67*f1dcc217SSatoshi Sahara 68*f1dcc217SSatoshi Sahara} 69