Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 13 |
|
0.00% |
0 / 9 |
CRAP | |
0.00% |
0 / 1 |
| BoardContent | |
0.00% |
0 / 13 |
|
0.00% |
0 / 9 |
110 | |
0.00% |
0 / 1 |
| __construct | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
| getTextForSearchIndex | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getWikitextForTransclusion | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getTextForSummary | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
6 | |||
| getNativeData | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getSize | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| copy | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| isCountable | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| getWorkflowId | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace Flow\Content; |
| 4 | |
| 5 | use Flow\Model\UUID; |
| 6 | use MediaWiki\Content\AbstractContent; |
| 7 | use MediaWiki\Content\Content; |
| 8 | |
| 9 | class BoardContent extends AbstractContent { |
| 10 | /** @var UUID|null */ |
| 11 | protected $workflowId; |
| 12 | |
| 13 | public function __construct( $contentModel = CONTENT_MODEL_FLOW_BOARD, ?UUID $workflowId = null ) { |
| 14 | parent::__construct( $contentModel ); |
| 15 | $this->workflowId = $workflowId; |
| 16 | } |
| 17 | |
| 18 | /** |
| 19 | * @since 1.21 |
| 20 | * |
| 21 | * @return string A string representing the content in a way useful for |
| 22 | * building a full text search index. If no useful representation exists, |
| 23 | * this method returns an empty string. |
| 24 | * |
| 25 | * @todo Test that this actually works |
| 26 | * @todo Make sure this also works with LuceneSearch / WikiSearch |
| 27 | */ |
| 28 | public function getTextForSearchIndex() { |
| 29 | return ''; |
| 30 | } |
| 31 | |
| 32 | /** |
| 33 | * @since 1.21 |
| 34 | * |
| 35 | * @return string The wikitext to include when another page includes this |
| 36 | * content, or false if the content is not includable in a wikitext page. |
| 37 | * |
| 38 | * @todo Allow native handling, bypassing wikitext representation, like |
| 39 | * for includable special pages. |
| 40 | * @todo Allow transclusion into other content models than Wikitext! |
| 41 | * @todo Used in WikiPage and MessageCache to get message text. Not so |
| 42 | * nice. What should we use instead?! |
| 43 | */ |
| 44 | public function getWikitextForTransclusion() { |
| 45 | return '<span class="error">' . wfMessage( 'flow-embedding-unsupported' )->plain() . '</span>'; |
| 46 | } |
| 47 | |
| 48 | /** |
| 49 | * Returns a textual representation of the content suitable for use in edit |
| 50 | * summaries and log messages. |
| 51 | * |
| 52 | * @since 1.21 |
| 53 | * |
| 54 | * @param int $maxLength Maximum length of the summary text. |
| 55 | * |
| 56 | * @return string|false The summary text. |
| 57 | */ |
| 58 | public function getTextForSummary( $maxLength = 250 ) { |
| 59 | $workflow = $this->getWorkflowId(); |
| 60 | if ( !$workflow ) { |
| 61 | // This shouldn't happen but some Flow boards have no workflow |
| 62 | // due to ancient bugs, so don't crash |
| 63 | return '[Corrupt Flow board]'; |
| 64 | } |
| 65 | return '[Flow board ' . $workflow->getAlphadecimal() . ']'; |
| 66 | } |
| 67 | |
| 68 | /** |
| 69 | * Returns native representation of the data. Interpretation depends on |
| 70 | * the data model used, as given by getDataModel(). |
| 71 | * |
| 72 | * @since 1.21 |
| 73 | * |
| 74 | * @return UUID|null The native representation of the content. Could be a |
| 75 | * string, a nested array structure, an object, a binary blob... |
| 76 | * anything, really. |
| 77 | * |
| 78 | * @note Caller must be aware of content model! |
| 79 | */ |
| 80 | public function getNativeData() { |
| 81 | return $this->getWorkflowId(); |
| 82 | } |
| 83 | |
| 84 | /** |
| 85 | * Returns the content's nominal size in bogo-bytes. |
| 86 | * |
| 87 | * @return int |
| 88 | */ |
| 89 | public function getSize() { |
| 90 | return 1; |
| 91 | } |
| 92 | |
| 93 | /** |
| 94 | * Return a copy of this Content object. The following must be true for the |
| 95 | * object returned: |
| 96 | * |
| 97 | * if $copy = $original->copy() |
| 98 | * |
| 99 | * - get_class($original) === get_class($copy) |
| 100 | * - $original->getModel() === $copy->getModel() |
| 101 | * - $original->equals( $copy ) |
| 102 | * |
| 103 | * If and only if the Content object is immutable, the copy() method can and |
| 104 | * should return $this. That is, $copy === $original may be true, but only |
| 105 | * for immutable content objects. |
| 106 | * |
| 107 | * @since 1.21 |
| 108 | * |
| 109 | * @return Content A copy of this object |
| 110 | */ |
| 111 | public function copy() { |
| 112 | return $this; |
| 113 | } |
| 114 | |
| 115 | /** |
| 116 | * Returns true if this content is countable as a "real" wiki page, provided |
| 117 | * that it's also in a countable location (e.g. a current revision in the |
| 118 | * main namespace). |
| 119 | * |
| 120 | * @since 1.21 |
| 121 | * |
| 122 | * @param bool|null $hasLinks If it is known whether this content contains |
| 123 | * links, provide this information here, to avoid redundant parsing to |
| 124 | * find out. |
| 125 | * |
| 126 | * @return bool |
| 127 | */ |
| 128 | public function isCountable( $hasLinks = null ) { |
| 129 | return true; |
| 130 | } |
| 131 | |
| 132 | /** |
| 133 | * @return UUID|null |
| 134 | */ |
| 135 | public function getWorkflowId() { |
| 136 | return $this->workflowId; |
| 137 | } |
| 138 | } |