]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/Profile/Schedule.php
Merge pull request #10630 from annando/cleared-enotify
[friendica.git] / src / Module / Profile / Schedule.php
index 9ea5e0c6bed1defa599f61152ead91a96e714d44..e72b1c7a656191cd15abce4d003bd3949570189c 100644 (file)
 
 namespace Friendica\Module\Profile;
 
+use Friendica\BaseModule;
+use Friendica\Content\Text\BBCode;
+use Friendica\Core\Renderer;
+use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Model\Post;
 use Friendica\Module\BaseProfile;
 use Friendica\Network\HTTPException;
+use Friendica\Util\DateTimeFormat;
 
 class Schedule extends BaseProfile
 {
+       public static function post(array $parameters = [])
+       {
+               if (!local_user()) {
+                       throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.'));
+               }
+
+               if (empty($_REQUEST['delete'])) {
+                       throw new HTTPException\BadRequestException();
+               }
+
+               if (!DBA::exists('delayed-post', ['id' => $_REQUEST['delete'], 'uid' => local_user()])) {
+                       throw new HTTPException\NotFoundException();
+               }
+
+               Post\Delayed::deleteById($_REQUEST['delete']);
+       }
+
        public static function content(array $parameters = [])
        {
                if (!local_user()) {
@@ -35,9 +58,35 @@ class Schedule extends BaseProfile
 
                $a = DI::app();
 
-               $o = self::getTabsHTML($a, 'schedule', true, $a->user);
+               $o = self::getTabsHTML($a, 'schedule', true, $a->getLoggedInUserNickname(), false);
+
+               $schedule = [];
+               $delayed = DBA::select('delayed-post', [], ['uid' => local_user()]);
+               while ($row = DBA::fetch($delayed)) {
+                       $parameter = Post\Delayed::getParametersForid($row['id']);
+                       if (empty($parameter)) {
+                               continue;
+                       }
+                       $schedule[] = [
+                               'id'           => $row['id'],
+                               'scheduled_at' => DateTimeFormat::local($row['delayed']),
+                               'content'      => BBCode::toPlaintext($parameter['item']['body'], false)
+                       ];
+               }
+               DBA::close($delayed);
+
+               $tpl = Renderer::getMarkupTemplate('profile/schedule.tpl');
+               $o .= Renderer::replaceMacros($tpl, [
+                       '$form_security_token' => BaseModule::getFormSecurityToken("profile_schedule"),
+                       '$baseurl'             => DI::baseUrl()->get(true),
+                       '$title'               => DI::l10n()->t('Scheduled Posts'),
+                       '$nickname'            => $parameters['nickname'] ?? '',
+                       '$scheduled_at'        => DI::l10n()->t('Scheduled'),
+                       '$content'             => DI::l10n()->t('Content'),
+                       '$delete'              => DI::l10n()->t('Remove post'),
+                       '$schedule'            => $schedule,
+               ]);
 
-               $o .= DI::l10n()->t('Currently here is no functionality here. Please use an app to have a look at your scheduled posts.');
                return $o;
        }
 }