+++ /dev/null
-<?php
-/**
- * @file mod/starred.php
- */
-use Friendica\App;
-use Friendica\Database\DBA;
-use Friendica\Model\Item;
-
-function starred_init(App $a) {
- $starred = 0;
- $message_id = null;
-
- if (!local_user()) {
- exit();
- }
- if ($a->argc > 1) {
- $message_id = intval($a->argv[1]);
- }
- if (!$message_id) {
- exit();
- }
-
- $item = Item::selectFirstForUser(local_user(), ['starred'], ['uid' => local_user(), 'id' => $message_id]);
- if (!DBA::isResult($item)) {
- exit();
- }
-
- if (!intval($item['starred'])) {
- $starred = 1;
- }
-
- Item::update(['starred' => $starred], ['id' => $message_id]);
-
- // See if we've been passed a return path to redirect to
- $return_path = defaults($_REQUEST, 'return', '');
- if ($return_path) {
- $rand = '_=' . time();
- if (strpos($return_path, '?')) {
- $rand = "&$rand";
- } else {
- $rand = "?$rand";
- }
-
- $a->internalRedirect($return_path . $rand);
- }
-
- // the json doesn't really matter, it will either be 0 or 1
-
- echo json_encode($starred);
- exit();
-}
$this->routeCollector->addRoute(['GET'], '/rsd.xml', Module\ReallySimpleDiscovery::class);
$this->routeCollector->addRoute(['GET'], '/smilies[/json]', Module\Smilies::class);
$this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class);
+ $this->routeCollector->addRoute(['GET'], '/starred/{item:\d+}', Module\Starred::class);
$this->routeCollector->addRoute(['GET'], '/toggle_mobile', Module\ToggleMobile::class);
$this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class);
$this->routeCollector->addRoute(['GET'], '/viewsrc/{item:\d+}', Module\ItemBody::class);
--- /dev/null
+<?php
+
+namespace Friendica\Module;
+
+use Friendica\BaseModule;
+use Friendica\Model\Item;
+
+/**
+ * Toggle starred items
+ */
+class Starred extends BaseModule
+{
+ public static function rawContent()
+ {
+ $a = self::getApp();
+ $starred = 0;
+ $itemId = null;
+
+ if (!local_user()) {
+ exit();
+ }
+
+ // @TODO: Replace with parameter from router
+ if ($a->argc > 1) {
+ $itemId = intval($a->argv[1]);
+ }
+
+ if (!$itemId) {
+ exit();
+ }
+
+ $item = Item::selectFirstForUser(local_user(), ['starred'], ['uid' => local_user(), 'id' => $itemId]);
+ if (empty($item)) {
+ exit();
+ }
+
+ if (!intval($item['starred'])) {
+ $starred = 1;
+ }
+
+ Item::update(['starred' => $starred], ['id' => $itemId]);
+
+ // See if we've been passed a return path to redirect to
+ $returnPath = defaults($_REQUEST, 'return', '');
+ if ($returnPath) {
+ $rand = '_=' . time();
+ if (strpos($returnPath, '?')) {
+ $rand = "&$rand";
+ } else {
+ $rand = "?$rand";
+ }
+
+ $a->internalRedirect($returnPath . $rand);
+ }
+
+ // the json doesn't really matter, it will either be 0 or 1
+ echo json_encode($starred);
+ exit();
+ }
+}