X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=blackout%2Fblackout.php;h=55fb8d32c1b2f8b6d0e02c85cfea3e103210d338;hb=ebf5ff1276b82f832736532bee75ebe1504b70ed;hp=6885420016a6878a00b97a69548f134d84b73b8e;hpb=36120615dd049c94b9db7858aae77d8ec9d28e84;p=friendica-addons.git diff --git a/blackout/blackout.php b/blackout/blackout.php index 68854200..55fb8d32 100644 --- a/blackout/blackout.php +++ b/blackout/blackout.php @@ -1,10 +1,10 @@ = 5.3 + * Description: Blackout your ~friendica node during a given period * License: MIT - * Version: 1.0 - * Author: Tobias Diekershoff + * Version: 1.1 + * Author: Tobias Diekershoff * * About * ===== @@ -22,11 +22,6 @@ * the entered time periode and fix typos without having to hack the * database directly. * - * Requirements - * ============ - * - * THIS ADDON REQUIRES PHP VERSION 5.3 OR HIGHER. - * * License * ======= * @@ -49,77 +44,77 @@ * THE SOFTWARE. */ -use Friendica\Core\Config; +use Friendica\App; use Friendica\Core\Hook; -use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Core\Renderer; +use Friendica\Core\System; +use Friendica\DI; function blackout_install() { - Hook::register('page_header', 'addon/blackout/blackout.php', 'blackout_redirect'); -} - -function blackout_uninstall() { - Hook::unregister('page_header', 'addon/blackout/blackout.php', 'blackout_redirect'); + Hook::register('page_header', 'addon/blackout/blackout.php', 'blackout_redirect'); } -function blackout_redirect ($a, $b) { - // if we have a logged in user, don't throw her out - if (local_user()) { - return true; - } - if (! (version_compare(PHP_VERSION, '5.3.0') >= 0)) +function blackout_redirect ($b) +{ + // if we have a logged in user, don't throw her out + if (DI::userSession()->getLocalUserId()) { return true; + } - // else... - $mystart = Config::get('blackout','begindate'); - $myend = Config::get('blackout','enddate'); - $myurl = Config::get('blackout','url'); - $now = time(); - $date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart); - $date2 = DateTime::createFromFormat('Y-m-d G:i', $myend); - if ( $date1 && $date2 ) { - $date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart)->format('U'); - $date2 = DateTime::createFromFormat('Y-m-d G:i', $myend)->format('U'); - } else { - $date1 = 0; - $date2 = 0; - } - if (( $date1 <= $now ) && ( $now <= $date2 )) { - Logger::log('redirecting user to blackout page'); - System::externalRedirect($myurl); - } -} + // else... + $mystart = DI::config()->get('blackout','begindate'); + $myend = DI::config()->get('blackout','enddate'); + $myurl = DI::config()->get('blackout','url'); + $now = time(); + $date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart); + $date2 = DateTime::createFromFormat('Y-m-d G:i', $myend); + if ($date1 && $date2) { + $date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart)->format('U'); + $date2 = DateTime::createFromFormat('Y-m-d G:i', $myend)->format('U'); + } else { + $date1 = 0; + $date2 = 0; + } -function blackout_addon_admin(&$a, &$o) { - $mystart = Config::get('blackout','begindate'); - if (! is_string($mystart)) { $mystart = "YYYY-MM-DD:hhmm"; } - $myend = Config::get('blackout','enddate'); - if (! is_string($myend)) { $myend = "YYYY-MM-DD:hhmm"; } - $myurl = Config::get('blackout','url'); - if (! is_string($myurl)) { $myurl = "http://www.example.com"; } - $t = Renderer::getMarkupTemplate( "admin.tpl", "addon/blackout/" ); + if (( $date1 <= $now ) && ( $now <= $date2 )) { + Logger::notice('redirecting user to blackout page'); + System::externalRedirect($myurl); + } +} - $o = Renderer::replaceMacros($t, [ - '$submit' => L10n::t('Save Settings'), - '$rurl' => ["rurl", "Redirect URL", $myurl, "all your visitors from the web will be redirected to this URL"], - '$startdate' => ["startdate", "Begin of the Blackout
(YYYY-MM-DD hh:mm)", $mystart, "format is YYYY year, MM month, DD day, hh hour and mm minute"], - '$enddate' => ["enddate", "End of the Blackout
(YYYY-MM-DD hh:mm)", $myend, ""], +function blackout_addon_admin(string &$o) +{ + $mystart = DI::config()->get('blackout','begindate'); + if (! is_string($mystart)) { $mystart = 'YYYY-MM-DD hh:mm'; } + $myend = DI::config()->get('blackout','enddate'); + if (! is_string($myend)) { $myend = 'YYYY-MM-DD hh:mm'; } + $myurl = DI::config()->get('blackout','url'); + if (! is_string($myurl)) { $myurl = 'https://www.example.com'; } + $t = Renderer::getMarkupTemplate( 'admin.tpl', 'addon/blackout/' ); - ]); - $date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart); - $date2 = DateTime::createFromFormat('Y-m-d G:i', $myend); - if ($date2 < $date1) { - $o = "
The end-date is prior to the start-date of the blackout, you should fix this.
" . $o; - } else { - $o = '

Please double check that the current settings for the blackout. Begin will be '.$mystart.' and it will end '.$myend.'.

' . $o; - } + $date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart); + $date2 = DateTime::createFromFormat('Y-m-d G:i', $myend); + // a note for the admin + $adminnote = ''; + if ($date2 < $date1) { + $adminnote = DI::l10n()->t("The end-date is prior to the start-date of the blackout, you should fix this."); + } else { + $adminnote = DI::l10n()->t("Please double check the current settings for the blackout. It will begin on %s and end on %s.", $mystart, $myend); + } + $o = Renderer::replaceMacros($t, [ + '$submit' => DI::l10n()->t('Save Settings'), + '$rurl' => ['rurl', DI::l10n()->t("Redirect URL"), $myurl, DI::l10n()->t("All your visitors from the web will be redirected to this URL."), '', '', 'url'], + '$startdate' => ['startdate', DI::l10n()->t("Begin of the Blackout"), $mystart, DI::l10n()->t("Format is YYYY-MM-DD hh:mm; YYYY year, MM month, DD day, hh hour and mm minute.")], + '$enddate' => ['enddate', DI::l10n()->t("End of the Blackout"), $myend, ''], + '$adminnote' => $adminnote, + '$aboutredirect' => DI::l10n()->t("Note: The redirect will be active from the moment you press the submit button. Users currently logged in will not be thrown out but can't login again after logging out while the blackout is still in place."), + ]); } -function blackout_addon_admin_post (&$a) { - $begindate = trim($_POST['startdate']); - $enddate = trim($_POST['enddate']); - $url = trim($_POST['rurl']); - Config::set('blackout','begindate',$begindate); - Config::set('blackout','enddate',$enddate); - Config::set('blackout','url',$url); + +function blackout_addon_admin_post () +{ + DI::config()->set('blackout', 'begindate', trim($_POST['startdate'])); + DI::config()->set('blackout', 'enddate', trim($_POST['enddate'])); + DI::config()->set('blackout', 'url', trim($_POST['rurl'])); }