bash/snippets/dokuwiki-2023-04-04/inc/Ui/PageConflict.php

64 lines
1.5 KiB
PHP

<?php
namespace dokuwiki\Ui;
use dokuwiki\Form\Form;
/**
* DokuWiki Page Conflict Interface
*
* @package dokuwiki\Ui
*/
class PageConflict extends Ui
{
protected $text;
protected $summary;
/**
* PageConflict Ui constructor
*
* @param string $text wiki text
* @param string $summary edit summary
*/
public function __construct($text = '', $summary = '')
{
$this->text = $text;
$this->summary = $summary;
}
/**
* Show conflict form to ask whether save anyway or cancel the page edits
*
* @author Andreas Gohr <andi@splitbrain.org>
*
* @return void
*/
public function show()
{
global $INFO;
global $lang;
// print intro
print p_locale_xhtml('conflict');
// create the form
$form = new Form(['id' => 'dw__editform']);
$form->addTagOpen('div')->addClass('no');
$form->setHiddenField('id', $INFO['id']);
$form->setHiddenField('wikitext', $this->text);
$form->setHiddenField('summary', $this->summary);
$form->addButton('do[save]', $lang['btn_save'] )->attrs(['type' => 'submit', 'accesskey' => 's']);
$form->addButton('do[cancel]', $lang['btn_cancel'] )->attrs(['type' => 'submit']);
$form->addTagClose('div');
print $form->toHTML('Conflict');
print '<br /><br /><br /><br />';
// print difference
(new PageDiff($INFO['id']))->compareWith($this->text)->preference('showIntro', false)->show();
}
}