}
$return_path = 'admin';
- if ($a->argc > 1) {
- switch ($a->argv[1]) {
- case 'deleteitem':
- admin_page_deleteitem_post($a);
- break;
- }
- }
$a->internalRedirect($return_path);
return; // NOTREACHED
// urls
if ($a->argc > 1) {
switch ($a->argv[1]) {
- case 'deleteitem':
- $o = admin_page_deleteitem($a);
- break;
default:
notice(L10n::t("Item not found."));
}
}
}
-/**
- * @brief Subpage where the admin can delete an item from their node given the GUID
- *
- * This subpage of the admin panel offers the nodes admin to delete an item from
- * the node, given the GUID or the display URL such as http://example.com/display/123456.
- * The item will then be marked as deleted in the database and processed accordingly.
- *
- * @param App $a
- * @return string
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
- */
-function admin_page_deleteitem(App $a)
-{
- $t = Renderer::getMarkupTemplate('admin/deleteitem.tpl');
-
- return Renderer::replaceMacros($t, [
- '$title' => L10n::t('Administration'),
- '$page' => L10n::t('Delete Item'),
- '$submit' => L10n::t('Delete this Item'),
- '$intro1' => L10n::t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'),
- '$intro2' => L10n::t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'),
- '$deleteitemguid' => ['deleteitemguid', L10n::t("GUID"), '', L10n::t("The GUID of the item you want to delete."), 'required', 'autofocus'],
- '$baseurl' => System::baseUrl(),
- '$form_security_token' => BaseModule::getFormSecurityToken("admin_deleteitem")
- ]);
-}
-
-/**
- * @brief Process send data from Admin Delete Item Page
- *
- * The GUID passed through the form should be only the GUID. But we also parse
- * URLs like the full /display URL to make the process more easy for the admin.
- *
- * @param App $a
- * @throws \Friendica\Network\HTTPException\InternalServerErrorException
- */
-function admin_page_deleteitem_post(App $a)
-{
- if (empty($_POST['page_deleteitem_submit'])) {
- return;
- }
-
- BaseModule::checkFormSecurityTokenRedirectOnError('/admin/deleteitem/', 'admin_deleteitem');
-
- if (!empty($_POST['page_deleteitem_submit'])) {
- $guid = trim(Strings::escapeTags($_POST['deleteitemguid']));
- // The GUID should not include a "/", so if there is one, we got an URL
- // and the last part of it is most likely the GUID.
- if (strpos($guid, '/')) {
- $guid = substr($guid, strrpos($guid, '/') + 1);
- }
- // Now that we have the GUID, drop those items, which will also delete the
- // associated threads.
- Item::delete(['guid' => $guid]);
- }
-
- info(L10n::t('Item marked for deletion.') . EOL);
- $a->internalRedirect('admin/deleteitem');
- return; // NOTREACHED
-}
-
function admin_page_server_vital()
{
// Fetch the host-meta to check if this really is a vital server
$collector->addRoute(['GET', 'POST'], '/features' , Module\Admin\Features::class);
$collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class);
+ $collector->addRoute(['GET', 'POST'], '/item/delete' , Module\Admin\Item\Delete::class);
+
$collector->addRoute(['GET'] , '/logs/view' , Module\Admin\Logs\View::class);
$collector->addRoute(['GET', 'POST'], '/logs' , Module\Admin\Logs\Settings::class);
--- /dev/null
+<?php\r
+\r
+namespace Friendica\Module\Admin\Item;\r
+\r
+use Friendica\Core\L10n;\r
+use Friendica\Core\Renderer;\r
+use Friendica\Core\System;\r
+use Friendica\Model\Item;\r
+use Friendica\Module\BaseAdminModule;\r
+use Friendica\Util\Strings;\r
+\r
+class Delete extends BaseAdminModule\r
+{\r
+ public static function post()\r
+ {\r
+ parent::post();\r
+\r
+ if (empty($_POST['page_deleteitem_submit'])) {\r
+ return;\r
+ }\r
+\r
+ parent::checkFormSecurityTokenRedirectOnError('/admin/item/delete', 'admin_deleteitem');\r
+\r
+ if (!empty($_POST['page_deleteitem_submit'])) {\r
+ $guid = trim(Strings::escapeTags($_POST['deleteitemguid']));\r
+ // The GUID should not include a "/", so if there is one, we got an URL\r
+ // and the last part of it is most likely the GUID.\r
+ if (strpos($guid, '/')) {\r
+ $guid = substr($guid, strrpos($guid, '/') + 1);\r
+ }\r
+ // Now that we have the GUID, drop those items, which will also delete the\r
+ // associated threads.\r
+ Item::delete(['guid' => $guid]);\r
+ }\r
+\r
+ info(L10n::t('Item marked for deletion.') . EOL);\r
+ self::getApp()->internalRedirect('admin/item/delete');\r
+ }\r
+\r
+ public static function content()\r
+ {\r
+ parent::content();\r
+\r
+ $t = Renderer::getMarkupTemplate('admin/item/delete.tpl');\r
+\r
+ return Renderer::replaceMacros($t, [\r
+ '$title' => L10n::t('Administration'),\r
+ '$page' => L10n::t('Delete Item'),\r
+ '$submit' => L10n::t('Delete this Item'),\r
+ '$intro1' => L10n::t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'),\r
+ '$intro2' => L10n::t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'),\r
+ '$deleteitemguid' => ['deleteitemguid', L10n::t("GUID"), '', L10n::t("The GUID of the item you want to delete."), 'required', 'autofocus'],\r
+ '$baseurl' => System::baseUrl(),\r
+ '$form_security_token' => parent::getFormSecurityToken("admin_deleteitem")\r
+ ]);\r
+ }\r
+}
\ No newline at end of file
'tools' => [L10n::t('Tools'), [\r
'contactblock' => ['admin/blocklist/contact', L10n::t('Contact Blocklist') , 'contactblock'],\r
'blocklist' => ['admin/blocklist/server' , L10n::t('Server Blocklist') , 'blocklist'],\r
+ 'deleteitem' => ['admin/item/delete' , L10n::t('Delete Item') , 'deleteitem'],\r
]],\r
'logs' => [L10n::t('Logs'), [\r
'logsconfig' => ['admin/logs/', L10n::t('Logs') , 'logs'],\r
+++ /dev/null
-<div id="adminpage">
- <h1>{{$title}} - {{$page}}</h1>
- <p>{{$intro1}}</p>
- <p>{{$intro2}}</p>
-
- <form action="{{$baseurl}}/admin/deleteitem" method="post">
- <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
- {{include file="field_input.tpl" field=$deleteitemguid}}
- <div class="submit"><input type="submit" name="page_deleteitem_submit" value="{{$submit}}" /></div>
- </form>
-
-</div>
--- /dev/null
+<div id="adminpage">
+ <h1>{{$title}} - {{$page}}</h1>
+ <p>{{$intro1}}</p>
+ <p>{{$intro2}}</p>
+
+ <form action="{{$baseurl}}/admin/item/delete" method="post">
+ <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
+ {{include file="field_input.tpl" field=$deleteitemguid}}
+ <div class="submit"><input type="submit" name="page_deleteitem_submit" value="{{$submit}}" /></div>
+ </form>
+
+</div>