1e31c94d7SAndreas Gohr<?php 2e31c94d7SAndreas Gohr 3e31c94d7SAndreas Gohrnamespace dokuwiki\plugin\structpublish\meta; 4e31c94d7SAndreas Gohr 5e31c94d7SAndreas Gohr/** 6e31c94d7SAndreas Gohr * Defines some constants used throughout the plugin 7e31c94d7SAndreas Gohr * 8e31c94d7SAndreas Gohr * @todo this might need to be replaced later if we want to have user configurable status 9e31c94d7SAndreas Gohr */ 108b0ba635SAndreas Gohrclass Constants 118b0ba635SAndreas Gohr{ 12e31c94d7SAndreas Gohr // a page can be in one current status 13e31c94d7SAndreas Gohr const STATUS_DRAFT = 'draft'; 14e31c94d7SAndreas Gohr const STATUS_APPROVED = 'approved'; 15e31c94d7SAndreas Gohr const STATUS_PUBLISHED = 'published'; 16e31c94d7SAndreas Gohr 173b7236c0SAnna Dabrowska // an action transitions a page from one status to another 18e31c94d7SAndreas Gohr const ACTION_APPROVE = 'approve'; 19e31c94d7SAndreas Gohr const ACTION_PUBLISH = 'publish'; 203b7236c0SAnna Dabrowska 213b7236c0SAnna Dabrowska 223b7236c0SAnna Dabrowska /** 233b7236c0SAnna Dabrowska * Convenience function mapping transition actions to resulting status 243b7236c0SAnna Dabrowska * 253b7236c0SAnna Dabrowska * @param string $action 263b7236c0SAnna Dabrowska * @return string 273b7236c0SAnna Dabrowska */ 283b7236c0SAnna Dabrowska public static function transitionBy($action) 293b7236c0SAnna Dabrowska { 303b7236c0SAnna Dabrowska $map = [ 313b7236c0SAnna Dabrowska self::ACTION_APPROVE => self::STATUS_APPROVED, 323b7236c0SAnna Dabrowska self::ACTION_PUBLISH => self::STATUS_PUBLISHED, 333b7236c0SAnna Dabrowska ]; 343b7236c0SAnna Dabrowska 353b7236c0SAnna Dabrowska return $map[$action]; 363b7236c0SAnna Dabrowska } 37*a42bec4dSAnna Dabrowska 38*a42bec4dSAnna Dabrowska public static function workflowSteps($action) 39*a42bec4dSAnna Dabrowska { 40*a42bec4dSAnna Dabrowska $map = [ 41*a42bec4dSAnna Dabrowska self::ACTION_APPROVE => [ 42*a42bec4dSAnna Dabrowska 'fromStatus' => self::STATUS_DRAFT, 43*a42bec4dSAnna Dabrowska 'currentStatus' => self::STATUS_APPROVED, 44*a42bec4dSAnna Dabrowska 'toStatus' => self::STATUS_PUBLISHED, 45*a42bec4dSAnna Dabrowska 'previousAction' => null, 46*a42bec4dSAnna Dabrowska 'nextAction' => self::ACTION_PUBLISH 47*a42bec4dSAnna Dabrowska ], 48*a42bec4dSAnna Dabrowska self::ACTION_PUBLISH => [ 49*a42bec4dSAnna Dabrowska 'fromStatus' => self::STATUS_APPROVED, 50*a42bec4dSAnna Dabrowska 'currentStatus' => self::STATUS_PUBLISHED, 51*a42bec4dSAnna Dabrowska 'toStatus' => null, 52*a42bec4dSAnna Dabrowska 'previousAction' => self::ACTION_APPROVE, 53*a42bec4dSAnna Dabrowska 'nextAction' => null 54*a42bec4dSAnna Dabrowska ], 55*a42bec4dSAnna Dabrowska ]; 56*a42bec4dSAnna Dabrowska 57*a42bec4dSAnna Dabrowska return $map[$action]; 58*a42bec4dSAnna Dabrowska } 59e31c94d7SAndreas Gohr} 60