]> git.mxchange.org Git - friendica.git/commitdiff
Move (last) get_cats_and_terms to Content\Item::determineCategoriesTerms()
authorPhilipp Holzer <admin+github@philipp.info>
Wed, 23 Oct 2019 00:48:46 +0000 (02:48 +0200)
committerPhilipp Holzer <admin+github@philipp.info>
Wed, 23 Oct 2019 00:48:46 +0000 (02:48 +0200)
- Added incomplete test

include/conversation.php
include/text.php [deleted file]
src/Content/Item.php [new file with mode: 0644]
src/Object/Post.php
tests/src/Content/ItemTest.php [new file with mode: 0644]

index c857336e341d5afbd1f9ed19f23e35137a9c3cea..8bcd1b338fd5d121ba72af7d8a332fad027bee11 100644 (file)
@@ -7,6 +7,7 @@ use Friendica\App;
 use Friendica\BaseObject;
 use Friendica\Content\ContactSelector;
 use Friendica\Content\Feature;
+use Friendica\Content\Item as ContentItem;
 use Friendica\Content\Pager;
 use Friendica\Content\Text\BBCode;
 use Friendica\Core\Config;
@@ -671,7 +672,10 @@ function conversation(App $a, array $items, Pager $pager, $mode, $update, $previ
 
                                $body = Item::prepareBody($item, true, $preview);
 
-                               list($categories, $folders) = get_cats_and_terms($item);
+                               /** @var ContentItem $contItem */
+                               $contItem = BaseObject::getClass(ContentItem::class);
+
+                               list($categories, $folders) = $contItem->determineCategoriesTerms($item);
 
                                if (!empty($item['content-warning']) && PConfig::get(local_user(), 'system', 'disable_cw', false)) {
                                        $title = ucfirst($item['content-warning']);
diff --git a/include/text.php b/include/text.php
deleted file mode 100644 (file)
index 89c0700..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * @file include/text.php
- */
-
-use Friendica\Model\FileTag;
-
-/**
- * return array with details for categories and folders for an item
- *
- * @param array $item
- * @return array
- *
-  * [
- *      [ // categories array
- *          {
- *               'name': 'category name',
- *               'removeurl': 'url to remove this category',
- *               'first': 'is the first in this array? true/false',
- *               'last': 'is the last in this array? true/false',
- *           } ,
- *           ....
- *       ],
- *       [ //folders array
- *                     {
- *               'name': 'folder name',
- *               'removeurl': 'url to remove this folder',
- *               'first': 'is the first in this array? true/false',
- *               'last': 'is the last in this array? true/false',
- *           } ,
- *           ....
- *       ]
- *  ]
- */
-function get_cats_and_terms($item)
-{
-       $categories = [];
-       $folders = [];
-       $first = true;
-
-       foreach (FileTag::fileToArray($item['file'] ?? '', 'category') as $savedFolderName) {
-               $categories[] = [
-                       'name' => $savedFolderName,
-                       'url' => "#",
-                       'removeurl' => ((local_user() == $item['uid']) ? 'filerm/' . $item['id'] . '?f=&cat=' . rawurlencode($savedFolderName) : ""),
-                       'first' => $first,
-                       'last' => false
-               ];
-               $first = false;
-       }
-
-       if (count($categories)) {
-               $categories[count($categories) - 1]['last'] = true;
-       }
-
-       if (local_user() == $item['uid']) {
-               foreach (FileTag::fileToArray($item['file'] ?? '') as $savedFolderName) {
-                       $folders[] = [
-                               'name' => $savedFolderName,
-                               'url' => "#",
-                               'removeurl' => ((local_user() == $item['uid']) ? 'filerm/' . $item['id'] . '?f=&term=' . rawurlencode($savedFolderName) : ""),
-                               'first' => $first,
-                               'last' => false
-                       ];
-                       $first = false;
-               }
-       }
-
-       if (count($folders)) {
-               $folders[count($folders) - 1]['last'] = true;
-       }
-
-       return [$categories, $folders];
-}
diff --git a/src/Content/Item.php b/src/Content/Item.php
new file mode 100644 (file)
index 0000000..ed6ec9c
--- /dev/null
@@ -0,0 +1,79 @@
+<?php
+
+namespace Friendica\Content;
+
+use Friendica\Model\FileTag;
+
+/**
+ * A content helper class for displaying items
+ */
+final class Item
+{
+       /**
+        * Return array with details for categories and folders for an item
+        *
+        * @param array $item
+        * @return [array, array]
+        *
+        * [
+        *      [ // categories array
+        *          {
+        *               'name': 'category name',
+        *               'removeurl': 'url to remove this category',
+        *               'first': 'is the first in this array? true/false',
+        *               'last': 'is the last in this array? true/false',
+        *           } ,
+        *           ....
+        *       ],
+        *       [ //folders array
+        *                      {
+        *               'name': 'folder name',
+        *               'removeurl': 'url to remove this folder',
+        *               'first': 'is the first in this array? true/false',
+        *               'last': 'is the last in this array? true/false',
+        *           } ,
+        *           ....
+        *       ]
+        *  ]
+        */
+       public function determineCategoriesTerms(array $item)
+       {
+               $categories = [];
+               $folders = [];
+               $first = true;
+
+               foreach (FileTag::fileToArray($item['file'] ?? '', 'category') as $savedFolderName) {
+                       $categories[] = [
+                               'name' => $savedFolderName,
+                               'url' => "#",
+                               'removeurl' => ((local_user() == $item['uid']) ? 'filerm/' . $item['id'] . '?f=&cat=' . rawurlencode($savedFolderName) : ""),
+                               'first' => $first,
+                               'last' => false
+                       ];
+                       $first = false;
+               }
+
+               if (count($categories)) {
+                       $categories[count($categories) - 1]['last'] = true;
+               }
+
+               if (local_user() == $item['uid']) {
+                       foreach (FileTag::fileToArray($item['file'] ?? '') as $savedFolderName) {
+                               $folders[] = [
+                                       'name' => $savedFolderName,
+                                       'url' => "#",
+                                       'removeurl' => ((local_user() == $item['uid']) ? 'filerm/' . $item['id'] . '?f=&term=' . rawurlencode($savedFolderName) : ""),
+                                       'first' => $first,
+                                       'last' => false
+                               ];
+                               $first = false;
+                       }
+               }
+
+               if (count($folders)) {
+                       $folders[count($folders) - 1]['last'] = true;
+               }
+
+               return [$categories, $folders];
+       }
+}
index 12de457a519590a709b9f5015cb87cc14efca42b..7dd5308017749b58cd819bf8efb4cb9c20165eaf 100644 (file)
@@ -7,6 +7,7 @@ namespace Friendica\Object;
 use Friendica\BaseObject;
 use Friendica\Content\ContactSelector;
 use Friendica\Content\Feature;
+use Friendica\Content\Item as ContentItem;
 use Friendica\Core\Addon;
 use Friendica\Core\Config;
 use Friendica\Core\Hook;
@@ -324,7 +325,10 @@ class Post extends BaseObject
 
                $body = Item::prepareBody($item, true);
 
-               list($categories, $folders) = get_cats_and_terms($item);
+               /** @var ContentItem $contItem */
+               $contItem = self::getClass(ContentItem::class);
+
+               list($categories, $folders) = $contItem->determineCategoriesTerms($item);
 
                $body_e       = $body;
                $text_e       = strip_tags($body);
diff --git a/tests/src/Content/ItemTest.php b/tests/src/Content/ItemTest.php
new file mode 100644 (file)
index 0000000..5cdfa97
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+
+namespace Friendica\Test\src\Content;
+
+use Friendica\Test\MockedTest;
+
+class ItemTest extends MockedTest
+{
+       public function testDetermineCategoriesTerms()
+       {
+               $this->markTestIncomplete('Test data needed.');
+       }
+}