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