<?php
/**
- * @file mod/cal.php
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
* The calendar module
*
* This calendar is for profile visitors and contains only the events
use Friendica\App;
use Friendica\Content\Feature;
use Friendica\Content\Nav;
+use Friendica\Content\Text\BBCode;
use Friendica\Content\Widget;
use Friendica\Core\Renderer;
use Friendica\Core\Session;
use Friendica\Model\Item;
use Friendica\Model\Profile;
use Friendica\Module\BaseProfile;
+use Friendica\Network\HTTPException;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Temporal;
function cal_init(App $a)
{
if (DI::config()->get('system', 'block_public') && !Session::isAuthenticated()) {
- throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
+ throw new HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
}
if ($a->argc < 2) {
- throw new \Friendica\Network\HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
+ throw new HTTPException\ForbiddenException(DI::l10n()->t('Access denied.'));
}
Nav::setSelected('events');
$nick = $a->argv[1];
$user = DBA::selectFirst('user', [], ['nickname' => $nick, 'blocked' => false]);
if (!DBA::isResult($user)) {
- throw new \Friendica\Network\HTTPException\NotFoundException();
+ throw new HTTPException\NotFoundException();
}
$a->data['user'] = $user;
return;
}
- $profile = Profile::getByNickname($nick, $a->profile_uid);
+ $a->profile = Profile::getByNickname($nick, $a->profile_uid);
+
+ if (empty($a->profile)) {
+ throw new HTTPException\NotFoundException(DI::l10n()->t('User not found.'));
+ }
- $account_type = Contact::getAccountType($profile);
+ $account_type = Contact::getAccountType($a->profile);
- $tpl = Renderer::getMarkupTemplate("widget/vcard.tpl");
+ $tpl = Renderer::getMarkupTemplate('widget/vcard.tpl');
$vcard_widget = Renderer::replaceMacros($tpl, [
- '$name' => $profile['name'],
- '$photo' => $profile['photo'],
- '$addr' => $profile['addr'] ?: '',
+ '$name' => $a->profile['name'],
+ '$photo' => $a->profile['photo'],
+ '$addr' => $a->profile['addr'] ?: '',
'$account_type' => $account_type,
- '$about' => $profile['about'] ?: '',
+ '$about' => BBCode::convert($a->profile['about']),
]);
$cal_widget = Widget\CalendarExport::getHTML();