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