X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FContent%2FWidget.php;h=ce4548d1ad02ea73ba42e39d7292f6c4414da82a;hb=ddc3c0db03267d29ace272b504dc6f803fa02990;hp=b5ccd6f14db7640fa1561cccd3b0d6118f15b280;hpb=e56a53647bd5469551bf4f9ef2df50a5dd16b943;p=friendica.git
diff --git a/src/Content/Widget.php b/src/Content/Widget.php
index b5ccd6f14d..ce4548d1ad 100644
--- a/src/Content/Widget.php
+++ b/src/Content/Widget.php
@@ -1,6 +1,6 @@
DI::l10n()->t('Add New Contact'),
@@ -56,13 +58,15 @@ class Widget
/**
* Return Find People widget
+ *
+ * @return string HTML code representing "People Widget"
*/
- public static function findPeople()
+ public static function findPeople(): string
{
- $global_dir = DI::config()->get('system', 'directory');
+ $global_dir = Search::getGlobalDirectory();
if (DI::config()->get('system', 'invitation_only')) {
- $x = intval(DI::pConfig()->get(local_user(), 'system', 'invites_remaining'));
+ $x = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining'));
if ($x || DI::app()->isSiteAdmin()) {
DI::page()['aside'] .= '
'
. DI::l10n()->tt('%d invitation available', '%d invitations available', $x)
@@ -81,7 +85,7 @@ class Widget
$nv['random'] = DI::l10n()->t('Random Profile');
$nv['inv'] = DI::l10n()->t('Invite Friends');
$nv['directory'] = DI::l10n()->t('Global Directory');
- $nv['global_dir'] = $global_dir;
+ $nv['global_dir'] = Profile::zrl($global_dir, true);
$nv['local_directory'] = DI::l10n()->t('Local Directory');
$aside = [];
@@ -95,10 +99,10 @@ class Widget
*
* @return array Unsupported networks
*/
- public static function unavailableNetworks()
+ public static function unavailableNetworks(): array
{
// Always hide content from these networks
- $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET, Protocol::ZOT];
+ $networks = [Protocol::PHANTOM, Protocol::FACEBOOK, Protocol::APPNET, Protocol::TWITTER, Protocol::ZOT];
if (!Addon::isEnabled("discourse")) {
$networks[] = Protocol::DISCOURSE;
@@ -112,8 +116,8 @@ class Widget
$networks[] = Protocol::PUMPIO;
}
- if (!Addon::isEnabled("twitter")) {
- $networks[] = Protocol::TWITTER;
+ if (!Addon::isEnabled("tumblr")) {
+ $networks[] = Protocol::TUMBLR;
}
if (DI::config()->get("system", "ostatus_disabled")) {
@@ -152,7 +156,7 @@ class Widget
* @return string
* @throws \Exception
*/
- private static function filter($type, $title, $desc, $all, $baseUrl, array $options, $selected = null)
+ private static function filter(string $type, string $title, string $desc, string $all, string $baseUrl, array $options, string $selected = null): string
{
$queryString = parse_url($baseUrl, PHP_URL_QUERY);
$queryArray = [];
@@ -170,6 +174,10 @@ class Widget
$baseUrl = trim($baseUrl, '?') . '?';
}
+ array_walk($options, function (&$value) {
+ $value['ref'] = rawurlencode($value['ref']);
+ });
+
return Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/filter.tpl'), [
'$type' => $type,
'$title' => $title,
@@ -182,29 +190,29 @@ class Widget
}
/**
- * Return group membership widget
+ * Return circle membership widget
*
* @param string $baseurl
* @param string $selected
* @return string
* @throws \Exception
*/
- public static function groups($baseurl, $selected = '')
+ public static function circles(string $baseurl, string $selected = ''): string
{
- if (!local_user()) {
+ if (!DI::userSession()->getLocalUserId()) {
return '';
}
- $options = array_map(function ($group) {
+ $options = array_map(function ($circle) {
return [
- 'ref' => $group['id'],
- 'name' => $group['name']
+ 'ref' => $circle['id'],
+ 'name' => $circle['name']
];
- }, Group::getByUserId(local_user()));
+ }, Circle::getByUserId(DI::userSession()->getLocalUserId()));
return self::filter(
- 'group',
- DI::l10n()->t('Groups'),
+ 'circle',
+ DI::l10n()->t('Circles'),
'',
DI::l10n()->t('Everyone'),
$baseurl,
@@ -221,9 +229,9 @@ class Widget
* @return string
* @throws \Exception
*/
- public static function contactRels($baseurl, $selected = '')
+ public static function contactRels(string $baseurl, string $selected = ''): string
{
- if (!local_user()) {
+ if (!DI::userSession()->getLocalUserId()) {
return '';
}
@@ -231,6 +239,7 @@ class Widget
['ref' => 'followers', 'name' => DI::l10n()->t('Followers')],
['ref' => 'following', 'name' => DI::l10n()->t('Following')],
['ref' => 'mutuals', 'name' => DI::l10n()->t('Mutual friends')],
+ ['ref' => 'nothing', 'name' => DI::l10n()->t('No relationship')],
];
return self::filter(
@@ -252,19 +261,19 @@ class Widget
* @return string
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public static function networks($baseurl, $selected = '')
+ public static function networks(string $baseurl, string $selected = ''): string
{
- if (!local_user()) {
+ if (!DI::userSession()->getLocalUserId()) {
return '';
}
$networks = self::unavailableNetworks();
$query = "`uid` = ? AND NOT `deleted` AND `network` != '' AND NOT `network` IN (" . substr(str_repeat("?, ", count($networks)), 0, -2) . ")";
- $condition = array_merge([$query], array_merge([local_user()], $networks));
+ $condition = array_merge([$query], array_merge([DI::userSession()->getLocalUserId()], $networks));
$r = DBA::select('contact', ['network'], $condition, ['group_by' => ['network'], 'order' => ['network']]);
- $nets = array();
+ $nets = [];
while ($rr = DBA::fetch($r)) {
$nets[] = ['ref' => $rr['network'], 'name' => ContactSelector::networkToName($rr['network'])];
}
@@ -290,17 +299,17 @@ class Widget
*
* @param string $baseurl baseurl
* @param string $selected optional, default empty
- * @return string|void
+ * @return string
* @throws \Exception
*/
- public static function fileAs($baseurl, $selected = '')
+ public static function fileAs(string $baseurl, string $selected = ''): string
{
- if (!local_user()) {
+ if (!DI::userSession()->getLocalUserId()) {
return '';
}
$terms = [];
- foreach (Post\Category::getArray(local_user(), Post\Category::FILE) as $savedFolderName) {
+ foreach (Post\Category::getArray(DI::userSession()->getLocalUserId(), Post\Category::FILE) as $savedFolderName) {
$terms[] = ['ref' => $savedFolderName, 'name' => $savedFolderName];
}
@@ -318,23 +327,20 @@ class Widget
/**
* Return categories widget
*
- * @param string $baseurl baseurl
- * @param string $selected optional, default empty
- * @return string|void
+ * @param int $uid Id of the user owning the categories
+ * @param string $baseurl Base page URL
+ * @param string $selected Selected category
+ * @return string
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public static function categories($baseurl, $selected = '')
+ public static function categories(int $uid, string $baseurl, string $selected = ''): string
{
- $a = DI::app();
-
- $uid = intval($a->getProfileOwner());
-
if (!Feature::isEnabled($uid, 'categories')) {
return '';
}
- $terms = array();
- foreach (Post\Category::getArray(local_user(), Post\Category::CATEGORY) as $savedFolderName) {
+ $terms = [];
+ foreach (Post\Category::getArray($uid, Post\Category::CATEGORY) as $savedFolderName) {
$terms[] = ['ref' => $savedFolderName, 'name' => $savedFolderName];
}
@@ -354,17 +360,17 @@ class Widget
*
* @param int $uid Viewed profile user ID
* @param string $nickname Viewed profile user nickname
- * @return string|void
+ * @return string
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
- public static function commonFriendsVisitor(int $uid, string $nickname)
+ public static function commonFriendsVisitor(int $uid, string $nickname): string
{
- if (local_user() == $uid) {
+ if (DI::userSession()->getLocalUserId() == $uid) {
return '';
}
- $visitorPCid = local_user() ? Contact::getPublicIdByUserId(local_user()) : remote_user();
+ $visitorPCid = DI::userSession()->getPublicContactId() ?: DI::userSession()->getRemoteUserId();
if (!$visitorPCid) {
return '';
}
@@ -415,7 +421,7 @@ class Widget
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException
*/
- public static function tagCloud(int $uid, int $limit = 50)
+ public static function tagCloud(int $uid, int $limit = 50): string
{
if (empty($uid)) {
return '';
@@ -440,7 +446,7 @@ class Widget
* @return string
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- public static function postedByYear(string $url, int $uid, bool $wall)
+ public static function postedByYear(string $url, int $uid, bool $wall): string
{
$o = '';
@@ -460,6 +466,10 @@ class Widget
if ($dthen) {
// Set the start and end date to the beginning of the month
+ $cutoffday = $dthen;
+ $thisday = substr($dnow, 4);
+ $nextday = date('Y-m-d', strtotime($dnow . ' + 1 day'));
+ $nextday = substr($nextday, 4);
$dnow = substr($dnow, 0, 8) . '01';
$dthen = substr($dthen, 0, 8) . '01';
@@ -492,7 +502,7 @@ class Widget
$cutoff_year = intval(DateTimeFormat::localNow('Y')) - $visible_years;
$cutoff = array_key_exists($cutoff_year, $ret);
- $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/posted_date.tpl'),[
+ $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('widget/posted_date.tpl'), [
'$title' => DI::l10n()->t('Archives'),
'$size' => $visible_years,
'$cutoff_year' => $cutoff_year,
@@ -500,7 +510,11 @@ class Widget
'$url' => $url,
'$dates' => $ret,
'$showless' => DI::l10n()->t('show less'),
- '$showmore' => DI::l10n()->t('show more')
+ '$showmore' => DI::l10n()->t('show more'),
+ '$onthisdate' => DI::l10n()->t('On this date'),
+ '$thisday' => $thisday,
+ '$nextday' => $nextday,
+ '$cutoffday' => $cutoffday
]);
return $o;
@@ -511,19 +525,26 @@ class Widget
* The account type value is added as a parameter to the url
*
* @param string $base Basepath
- * @param int $accounttype Acount type
+ * @param string $accounttype Account type
* @return string
*/
- public static function accounttypes(string $base, $accounttype)
+ public static function accountTypes(string $base, string $accounttype): string
{
$accounts = [
['ref' => 'person', 'name' => DI::l10n()->t('Persons')],
['ref' => 'organisation', 'name' => DI::l10n()->t('Organisations')],
['ref' => 'news', 'name' => DI::l10n()->t('News')],
- ['ref' => 'community', 'name' => DI::l10n()->t('Forums')],
+ ['ref' => 'community', 'name' => DI::l10n()->t('Groups')],
];
- return self::filter('accounttype', DI::l10n()->t('Account Types'), '',
- DI::l10n()->t('All'), $base, $accounts, $accounttype);
+ return self::filter(
+ 'accounttype',
+ DI::l10n()->t('Account Types'),
+ '',
+ DI::l10n()->t('All'),
+ $base,
+ $accounts,
+ $accounttype
+ );
}
}