aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/inc/Menu/Item/Edit.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/Menu/Item/Edit.php')
-rw-r--r--inc/Menu/Item/Edit.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/inc/Menu/Item/Edit.php b/inc/Menu/Item/Edit.php
new file mode 100644
index 000000000..45a05eb1e
--- /dev/null
+++ b/inc/Menu/Item/Edit.php
@@ -0,0 +1,59 @@
+<?php
+
+namespace dokuwiki\Menu\Item;
+
+class Edit extends AbstractItem {
+
+ /** @inheritdoc */
+ public function __construct() {
+ global $ACT;
+ global $INFO;
+ global $REV;
+
+ parent::__construct();
+
+ if($ACT == 'show' || $ACT == 'search') {
+ $this->method = 'post';
+ if($INFO['writable']) {
+ $this->accesskey = 'e';
+ if(!empty($INFO['draft'])) {
+ $this->type = 'draft';
+ $this->params['do'] = 'draft';
+ } else {
+ $this->params['rev'] = $REV;
+ if(!$INFO['exists']) {
+ $this->type = 'create';
+ }
+ }
+ } else {
+ if(!actionOK($this->type)) throw new \RuntimeException("action disabled: source");
+ $params['rev'] = $REV;
+ $this->type = 'source';
+ $this->accesskey = 'v';
+ }
+ } else {
+ $this->params = array('do' => '');
+ $this->type = 'show';
+ $this->accesskey = 'v';
+ }
+
+ $this->svg = $this->setIcon();
+ }
+
+ /**
+ * change the icon according to what type the edit button has
+ */
+ protected function setIcon() {
+ $icons = array(
+ 'edit' => '01-edit_pencil.svg',
+ 'create' => '02-create_pencil.svg',
+ 'draft' => '03-draft_android-studio.svg',
+ 'show' => '04-show_file-document.svg',
+ 'source' => '05-source_file-xml.svg',
+ );
+ if(isset($icons[$this->type])) {
+ $this->svg = DOKU_BASE . 'lib/images/menu/' . $icons[$this->type];
+ }
+ }
+
+}