kopia lustrzana https://github.com/friendica/friendica
Porównaj commity
29 Commity
0ccb3e7efe
...
31b74b1c8a
Autor | SHA1 | Data |
---|---|---|
Hypolite Petovan | 31b74b1c8a | |
Michael | 0fde21ff28 | |
Hypolite Petovan | 53a2fb648f | |
Hannes Heute | 13b890605b | |
Hypolite Petovan | 97f7a99382 | |
Hannes Heute | e602b16dfb | |
Hannes Heute | 5c7dd34fba | |
Hannes Heute | 4b647d288a | |
Hannes Heute | 71a9e6112e | |
Hannes Heute | 0fd5c00010 | |
Hypolite Petovan | 250b3b813c | |
Michael | f537d7a64f | |
Hypolite Petovan | 5ec445e90b | |
Michael | 67e0b6357e | |
Tobias Diekershoff | f928372266 | |
Michael | 200cf29a8d | |
Michael Vogel | f78b0e7c51 | |
Hypolite Petovan | b21604a720 | |
Hypolite Petovan | c67225c62d | |
Michael Vogel | 449464a2b1 | |
Michael | c041c65c1d | |
Hypolite Petovan | e293de04f5 | |
Hypolite Petovan | b4d71f1855 | |
Tobias Diekershoff | d824bb536f | |
Tobias Diekershoff | 1b9fa0fe00 | |
Michael | b72e32a842 | |
Michael | b39c48fb02 | |
Hypolite Petovan | b5a69da872 | |
Michael | 618a3153ab |
|
@ -850,10 +850,6 @@ Here is a complete list of all hook callbacks with file locations (as of 24-Sep-
|
|||
Hook::callAll('register_account', $uid);
|
||||
Hook::callAll('remove_user', $user);
|
||||
|
||||
### src/Module/Notifications/Ping.php
|
||||
|
||||
Hook::callAll('network_ping', $arr);
|
||||
|
||||
### src/Module/PermissionTooltip.php
|
||||
|
||||
Hook::callAll('lockview_content', $item);
|
||||
|
|
|
@ -418,10 +418,6 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
|
|||
Hook::callAll('storage_instance', $data);
|
||||
Hook::callAll('storage_config', $data);
|
||||
|
||||
### src/Module/Notifications/Ping.php
|
||||
|
||||
Hook::callAll('network_ping', $arr);
|
||||
|
||||
### src/Module/PermissionTooltip.php
|
||||
|
||||
Hook::callAll('lockview_content', $item);
|
||||
|
|
|
@ -332,7 +332,6 @@ class Conversation
|
|||
$tpl = Renderer::getMarkupTemplate('jot-header.tpl');
|
||||
$this->page['htmlhead'] .= Renderer::replaceMacros($tpl, [
|
||||
'$newpost' => 'true',
|
||||
'$baseurl' => $this->baseURL,
|
||||
'$geotag' => $geotag,
|
||||
'$nickname' => $x['nickname'],
|
||||
'$ispublic' => $this->l10n->t('Visible to <strong>everybody</strong>'),
|
||||
|
@ -389,7 +388,7 @@ class Conversation
|
|||
'$title' => $x['title'] ?? '',
|
||||
'$placeholdertitle' => $this->l10n->t('Set title'),
|
||||
'$category' => $x['category'] ?? '',
|
||||
'$placeholdercategory' => Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->l10n->t("Categories \x28comma-separated list\x29") : '',
|
||||
'$placeholdercategory' => Feature::isEnabled($this->session->getLocalUserId(), Feature::CATEGORIES) ? $this->l10n->t("Categories \x28comma-separated list\x29") : '',
|
||||
'$scheduled_at' => Temporal::getDateTimeField(
|
||||
new \DateTime(),
|
||||
new \DateTime('now + 6 months'),
|
||||
|
@ -405,7 +404,6 @@ class Conversation
|
|||
'$posttype' => $notes_cid ? ItemModel::PT_PERSONAL_NOTE : ItemModel::PT_ARTICLE,
|
||||
'$content' => $x['content'] ?? '',
|
||||
'$post_id' => $x['post_id'] ?? '',
|
||||
'$baseurl' => $this->baseURL,
|
||||
'$defloc' => $x['default_location'],
|
||||
'$visitor' => $x['visitor'],
|
||||
'$pvisit' => $notes_cid ? 'none' : $x['visitor'],
|
||||
|
@ -591,7 +589,6 @@ class Conversation
|
|||
}
|
||||
|
||||
$o = Renderer::replaceMacros($page_template, [
|
||||
'$baseurl' => $this->baseURL,
|
||||
'$return_path' => $this->args->getQueryString(),
|
||||
'$live_update' => $live_update_div,
|
||||
'$remove' => $this->l10n->t('remove'),
|
||||
|
|
|
@ -26,6 +26,25 @@ use Friendica\DI;
|
|||
|
||||
class Feature
|
||||
{
|
||||
const ACCOUNTS = 'accounts';
|
||||
const ADD_ABSTRACT = 'add_abstract';
|
||||
const ARCHIVE = 'archive';
|
||||
const CATEGORIES = 'categories';
|
||||
const CHANNELS = 'channels';
|
||||
const CIRCLES = 'circles';
|
||||
const COMMUNITY = 'community';
|
||||
const EXPLICIT_MENTIONS = 'explicit_mentions';
|
||||
const FOLDERS = 'folders';
|
||||
const GROUPS = 'forumlist_profile';
|
||||
const MEMBER_SINCE = 'profile_membersince';
|
||||
const NETWORKS = 'networks';
|
||||
const NOSHARER = 'nosharer';
|
||||
const PHOTO_LOCATION = 'photo_location';
|
||||
const PUBLIC_CALENDAR = 'public_calendar';
|
||||
const SEARCHES = 'searches';
|
||||
const TAGCLOUD = 'tagadelic';
|
||||
const TRENDING_TAGS = 'trending_tags';
|
||||
|
||||
/**
|
||||
* check if feature is enabled
|
||||
*
|
||||
|
@ -34,25 +53,18 @@ class Feature
|
|||
* @return boolean
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
*/
|
||||
public static function isEnabled(int $uid, $feature)
|
||||
public static function isEnabled(int $uid, $feature): bool
|
||||
{
|
||||
$x = DI::config()->get('feature_lock', $feature, false);
|
||||
|
||||
if ($x === false) {
|
||||
$x = DI::pConfig()->get($uid, 'feature', $feature, false);
|
||||
if (!DI::config()->get('feature_lock', $feature, false)) {
|
||||
$enabled = DI::config()->get('feature', $feature) ?? self::getDefault($feature);
|
||||
$enabled = DI::pConfig()->get($uid, 'feature', $feature) ?? $enabled;
|
||||
} else {
|
||||
$enabled = true;
|
||||
}
|
||||
|
||||
if ($x === false) {
|
||||
$x = DI::config()->get('feature', $feature, false);
|
||||
}
|
||||
|
||||
if ($x === false) {
|
||||
$x = self::getDefault($feature);
|
||||
}
|
||||
|
||||
$arr = ['uid' => $uid, 'feature' => $feature, 'enabled' => $x];
|
||||
$arr = ['uid' => $uid, 'feature' => $feature, 'enabled' => $enabled];
|
||||
Hook::callAll('isEnabled', $arr);
|
||||
return($arr['enabled']);
|
||||
return (bool)$arr['enabled'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -64,8 +76,7 @@ class Feature
|
|||
*/
|
||||
private static function getDefault($feature)
|
||||
{
|
||||
$f = self::get();
|
||||
foreach ($f as $cat) {
|
||||
foreach (self::get() as $cat) {
|
||||
foreach ($cat as $feat) {
|
||||
if (is_array($feat) && $feat[0] === $feature) {
|
||||
return $feat[3];
|
||||
|
@ -95,36 +106,49 @@ class Feature
|
|||
'general' => [
|
||||
DI::l10n()->t('General Features'),
|
||||
//array('expire', DI::l10n()->t('Content Expiration'), DI::l10n()->t('Remove old posts/comments after a period of time')),
|
||||
['photo_location', DI::l10n()->t('Photo Location'), DI::l10n()->t("Photo metadata is normally stripped. This extracts the location \x28if present\x29 prior to stripping metadata and links it to a map."), false, DI::config()->get('feature_lock', 'photo_location', false)],
|
||||
['trending_tags', DI::l10n()->t('Trending Tags'), DI::l10n()->t('Show a community page widget with a list of the most popular tags in recent public posts.'), false, DI::config()->get('feature_lock', 'trending_tags', false)],
|
||||
[self::PHOTO_LOCATION, DI::l10n()->t('Photo Location'), DI::l10n()->t("Photo metadata is normally stripped. This extracts the location \x28if present\x29 prior to stripping metadata and links it to a map."), false, DI::config()->get('feature_lock', self::PHOTO_LOCATION, false)],
|
||||
[self::COMMUNITY, DI::l10n()->t('Display the community in the navigation'), DI::l10n()->t('If enabled, the community can be accessed via the navigation menu. Independent from this setting, the community timelines can always be accessed via the channels.'), true, DI::config()->get('feature_lock', self::COMMUNITY, false)],
|
||||
],
|
||||
|
||||
// Post composition
|
||||
'composition' => [
|
||||
DI::l10n()->t('Post Composition Features'),
|
||||
['aclautomention', DI::l10n()->t('Auto-mention Groups'), DI::l10n()->t('Add/remove mention when a group page is selected/deselected in ACL window.'), false, DI::config()->get('feature_lock', 'aclautomention', false)],
|
||||
['explicit_mentions', DI::l10n()->t('Explicit Mentions'), DI::l10n()->t('Add explicit mentions to comment box for manual control over who gets mentioned in replies.'), false, DI::config()->get('feature_lock', 'explicit_mentions', false)],
|
||||
['add_abstract', DI::l10n()->t('Add an abstract from ActivityPub content warnings'), DI::l10n()->t('Add an abstract when commenting on ActivityPub posts with a content warning. Abstracts are displayed as content warning on systems like Mastodon or Pleroma.'), false, DI::config()->get('feature_lock', 'add_abstract', false)],
|
||||
[self::EXPLICIT_MENTIONS, DI::l10n()->t('Explicit Mentions'), DI::l10n()->t('Add explicit mentions to comment box for manual control over who gets mentioned in replies.'), false, DI::config()->get('feature_lock', Feature::EXPLICIT_MENTIONS, false)],
|
||||
[self::ADD_ABSTRACT, DI::l10n()->t('Add an abstract from ActivityPub content warnings'), DI::l10n()->t('Add an abstract when commenting on ActivityPub posts with a content warning. Abstracts are displayed as content warning on systems like Mastodon or Pleroma.'), false, DI::config()->get('feature_lock', self::ADD_ABSTRACT, false)],
|
||||
],
|
||||
|
||||
// Item tools
|
||||
'tools' => [
|
||||
DI::l10n()->t('Post/Comment Tools'),
|
||||
['categories', DI::l10n()->t('Post Categories'), DI::l10n()->t('Add categories to your posts'), false, DI::config()->get('feature_lock', 'categories', false)],
|
||||
[self::CATEGORIES, DI::l10n()->t('Post Categories'), DI::l10n()->t('Add categories to your posts'), false, DI::config()->get('feature_lock', self::CATEGORIES, false)],
|
||||
],
|
||||
|
||||
// Widget visibility on the network stream
|
||||
'network' => [
|
||||
DI::l10n()->t('Network Widgets'),
|
||||
[self::CIRCLES, DI::l10n()->t('Circles'), DI::l10n()->t('Display posts that have been created by accounts of the selected circle.'), true, DI::config()->get('feature_lock', self::CIRCLES, false)],
|
||||
[self::GROUPS, DI::l10n()->t('Groups'), DI::l10n()->t('Display posts that have been distributed by the selected group.'), true, DI::config()->get('feature_lock', self::GROUPS, false)],
|
||||
[self::ARCHIVE, DI::l10n()->t('Archives'), DI::l10n()->t('Display an archive where posts can be selected by month and year.'), true, DI::config()->get('feature_lock', self::ARCHIVE, false)],
|
||||
[self::NETWORKS, DI::l10n()->t('Protocols'), DI::l10n()->t('Display posts with the selected protocols.'), true, DI::config()->get('feature_lock', self::NETWORKS, false)],
|
||||
[self::ACCOUNTS, DI::l10n()->t('Account Types'), DI::l10n()->t('Display posts done by accounts with the selected account type.'), true, DI::config()->get('feature_lock', self::ACCOUNTS, false)],
|
||||
[self::CHANNELS, DI::l10n()->t('Channels'), DI::l10n()->t('Display posts in the system channels and user defined channels.'), true, DI::config()->get('feature_lock', self::CHANNELS, false)],
|
||||
[self::SEARCHES, DI::l10n()->t('Saved Searches'), DI::l10n()->t('Display posts that contain subscribed hashtags.'), true, DI::config()->get('feature_lock', self::SEARCHES, false)],
|
||||
[self::FOLDERS, DI::l10n()->t('Saved Folders'), DI::l10n()->t('Display a list of folders in which posts are stored.'), true, DI::config()->get('feature_lock', self::FOLDERS, false)],
|
||||
[self::NOSHARER, DI::l10n()->t('Own Contacts'), DI::l10n()->t('Include or exclude posts from subscribed accounts. This widget is not visible on all channels.'), true, DI::config()->get('feature_lock', self::NOSHARER, false)],
|
||||
[self::TRENDING_TAGS, DI::l10n()->t('Trending Tags'), DI::l10n()->t('Display a list of the most popular tags in recent public posts.'), false, DI::config()->get('feature_lock', self::TRENDING_TAGS, false)],
|
||||
],
|
||||
|
||||
// Advanced Profile Settings
|
||||
'advanced_profile' => [
|
||||
DI::l10n()->t('Advanced Profile Settings'),
|
||||
['forumlist_profile', DI::l10n()->t('List Groups'), DI::l10n()->t('Show visitors public groups at the Advanced Profile Page'), false, DI::config()->get('feature_lock', 'forumlist_profile', false)],
|
||||
['tagadelic', DI::l10n()->t('Tag Cloud'), DI::l10n()->t('Provide a personal tag cloud on your profile page'), false, DI::config()->get('feature_lock', 'tagadelic', false)],
|
||||
['profile_membersince', DI::l10n()->t('Display Membership Date'), DI::l10n()->t('Display membership date in profile'), false, DI::config()->get('feature_lock', 'profile_membersince', false)],
|
||||
[self::TAGCLOUD, DI::l10n()->t('Tag Cloud'), DI::l10n()->t('Provide a personal tag cloud on your profile page'), false, DI::config()->get('feature_lock', self::TAGCLOUD, false)],
|
||||
[self::MEMBER_SINCE, DI::l10n()->t('Display Membership Date'), DI::l10n()->t('Display membership date in profile'), false, DI::config()->get('feature_lock', self::MEMBER_SINCE, false)],
|
||||
],
|
||||
|
||||
//Advanced Calendar Settings
|
||||
'advanced_calendar' => [
|
||||
DI::l10n()->t('Advanced Calendar Settings'),
|
||||
['public_calendar', DI::l10n()->t('Allow anonymous access to your calendar'), DI::l10n()->t('Allows anonymous visitors to consult your calendar and your public events. Contact birthday events are private to you.'), false, DI::config()->get('feature_lock', 'public_calendar', false)],
|
||||
[self::PUBLIC_CALENDAR, DI::l10n()->t('Allow anonymous access to your calendar'), DI::l10n()->t('Allows anonymous visitors to consult your calendar and your public events. Contact birthday events are private to you.'), false, DI::config()->get('feature_lock', self::PUBLIC_CALENDAR, false)],
|
||||
]
|
||||
];
|
||||
|
||||
|
|
|
@ -172,8 +172,7 @@ class GroupManager
|
|||
*/
|
||||
public static function profileAdvanced($uid)
|
||||
{
|
||||
$profile = intval(Feature::isEnabled($uid, 'forumlist_profile'));
|
||||
if (!$profile) {
|
||||
if (!Feature::isEnabled($uid, Feature::GROUPS)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
|
|
@ -800,14 +800,14 @@ class Item
|
|||
*/
|
||||
public function addShareLink(string $body, int $quote_uri_id): string
|
||||
{
|
||||
$post = Post::selectFirstPost(['uri', 'plink'], ['uri-id' => $quote_uri_id]);
|
||||
$post = Post::selectFirstPost(['uri'], ['uri-id' => $quote_uri_id]);
|
||||
if (empty($post)) {
|
||||
return $body;
|
||||
}
|
||||
|
||||
$body = BBCode::removeSharedData($body);
|
||||
|
||||
$body .= "\n♲ " . ($post['plink'] ?: $post['uri']);
|
||||
$body .= "\nRE: " . $post['uri'];
|
||||
|
||||
return $body;
|
||||
}
|
||||
|
@ -1045,7 +1045,7 @@ class Item
|
|||
|
||||
public function postProcessPost(array $post, array $recipients = [])
|
||||
{
|
||||
if (!\Friendica\Content\Feature::isEnabled($post['uid'], 'explicit_mentions') && ($post['gravity'] == ItemModel::GRAVITY_COMMENT)) {
|
||||
if (!Feature::isEnabled($post['uid'], Feature::EXPLICIT_MENTIONS) && ($post['gravity'] == ItemModel::GRAVITY_COMMENT)) {
|
||||
Tag::createImplicitMentions($post['uri-id'], $post['thr-parent-id']);
|
||||
}
|
||||
|
||||
|
|
|
@ -284,8 +284,8 @@ class Nav
|
|||
$gdirpath = Profile::zrl($this->config->get('system', 'directory'), true);
|
||||
}
|
||||
|
||||
if (($this->session->getLocalUserId() || $this->config->get('system', 'community_page_style') != Community::DISABLED_VISITOR) &&
|
||||
!($this->config->get('system', 'community_page_style') == Community::DISABLED)) {
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::COMMUNITY) && (($this->session->getLocalUserId() || $this->config->get('system', 'community_page_style') != Community::DISABLED_VISITOR) &&
|
||||
!($this->config->get('system', 'community_page_style') == Community::DISABLED))) {
|
||||
$nav['community'] = ['community', $this->l10n->t('Community'), '', $this->l10n->t('Conversations on this and other servers')];
|
||||
}
|
||||
|
||||
|
|
|
@ -336,7 +336,7 @@ class Widget
|
|||
*/
|
||||
public static function categories(int $uid, string $baseurl, string $selected = ''): string
|
||||
{
|
||||
if (!Feature::isEnabled($uid, 'categories')) {
|
||||
if (!Feature::isEnabled($uid, Feature::CATEGORIES)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
|
@ -428,7 +428,7 @@ class Widget
|
|||
return '';
|
||||
}
|
||||
|
||||
if (Feature::isEnabled($uid, 'tagadelic')) {
|
||||
if (Feature::isEnabled($uid, Feature::TAGCLOUD)) {
|
||||
$owner_id = Contact::getPublicIdByUserId($uid);
|
||||
|
||||
if (!$owner_id) {
|
||||
|
@ -598,4 +598,4 @@ class Widget
|
|||
$channelname
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -75,8 +75,11 @@ class Renderer
|
|||
{
|
||||
DI::profiler()->startRecording('rendering');
|
||||
|
||||
// pass $baseurl to all templates if it isn't set
|
||||
$vars = array_merge(['$baseurl' => DI::baseUrl(), '$APP' => DI::app()], $vars);
|
||||
// Default template variables
|
||||
$vars = array_merge([
|
||||
'$baseurl' => DI::baseUrl(),
|
||||
'$VERSION' => \Friendica\App::VERSION,
|
||||
], $vars);
|
||||
|
||||
$t = self::getTemplateEngine();
|
||||
|
||||
|
|
|
@ -516,7 +516,7 @@ class Event
|
|||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Access to this profile has been restricted.'));
|
||||
}
|
||||
|
||||
if (!DI::userSession()->isAuthenticated() && !Feature::isEnabled($owner['uid'], 'public_calendar')) {
|
||||
if (!DI::userSession()->isAuthenticated() && !Feature::isEnabled($owner['uid'], Feature::PUBLIC_CALENDAR)) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('Permission denied.'));
|
||||
}
|
||||
|
||||
|
|
|
@ -3861,6 +3861,11 @@ class Item
|
|||
$preview_mode = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'preview_mode', BBCode::PREVIEW_LARGE);
|
||||
if ($preview_mode != BBCode::PREVIEW_NONE) {
|
||||
$rendered = BBCode::convertAttachment('', BBCode::INTERNAL, false, $data, $uriid, $preview_mode);
|
||||
} elseif (!self::containsLink($content, $data['url'], Post\Media::HTML)) {
|
||||
$rendered = Renderer::replaceMacros(Renderer::getMarkupTemplate('content/link.tpl'), [
|
||||
'$url' => $data['url'],
|
||||
'$title' => $data['title'],
|
||||
]);
|
||||
} else {
|
||||
$rendered = '';
|
||||
}
|
||||
|
|
|
@ -34,25 +34,24 @@ class Features extends BaseAdmin
|
|||
|
||||
self::checkFormSecurityTokenRedirectOnError('/admin/features', 'admin_manage_features');
|
||||
|
||||
$features = Feature::get(false);
|
||||
|
||||
foreach ($features as $fname => $fdata) {
|
||||
foreach (Feature::get(false) as $fdata) {
|
||||
foreach (array_slice($fdata, 1) as $f) {
|
||||
$feature = $f[0];
|
||||
$feature_state = 'feature_' . $feature;
|
||||
$featurelock = 'featurelock_' . $feature;
|
||||
switch ($_POST['featureselect_' . $feature]) {
|
||||
case 0:
|
||||
DI::config()->set('feature', $feature, false);
|
||||
DI::config()->delete('feature_lock', $feature);
|
||||
break;
|
||||
|
||||
if (!empty($_POST[$feature_state])) {
|
||||
$val = intval($_POST[$feature_state]);
|
||||
} else {
|
||||
$val = 0;
|
||||
}
|
||||
DI::config()->set('feature', $feature, $val);
|
||||
case 1:
|
||||
DI::config()->set('feature', $feature, true);
|
||||
DI::config()->delete('feature_lock', $feature);
|
||||
break;
|
||||
|
||||
if (!empty($_POST[$featurelock])) {
|
||||
DI::config()->set('feature_lock', $feature, 1);
|
||||
} else {
|
||||
DI::config()->delete('feature_lock', $feature);
|
||||
case 2:
|
||||
DI::config()->delete('feature', $feature);
|
||||
DI::config()->set('feature_lock', $feature, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,17 +63,15 @@ class Features extends BaseAdmin
|
|||
{
|
||||
parent::content();
|
||||
|
||||
$features = [];
|
||||
|
||||
$features = [];
|
||||
$selection = [DI::l10n()->t('No'), DI::l10n()->t('Yes'), DI::l10n()->t('Locked')];
|
||||
foreach (Feature::get(false) as $fname => $fdata) {
|
||||
$features[$fname] = [];
|
||||
$features[$fname][0] = $fdata[0];
|
||||
foreach (array_slice($fdata, 1) as $f) {
|
||||
$set = DI::config()->get('feature', $f[0], $f[3]);
|
||||
$features[$fname][1][] = [
|
||||
['feature_' . $f[0], $f[1], $set, $f[2]],
|
||||
['featurelock_' . $f[0], DI::l10n()->t('Lock feature %s', $f[1]), $f[4], '']
|
||||
];
|
||||
$selected = $f[4] ? 2 : (int)$set;
|
||||
$features[$fname][1][] = ['featureselect_' . $f[0], $f[1], $selected, $f[2], $selection];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -221,7 +221,6 @@ class Federation extends BaseAdmin
|
|||
'$page' => DI::l10n()->t('Federation Statistics'),
|
||||
'$intro' => $intro,
|
||||
'$counts' => $counts,
|
||||
'$version' => App::VERSION,
|
||||
'$legendtext' => DI::l10n()->tt('Currently this node is aware of %2$s node (%3$s active users last month, %4$s active users last six months, %5$s registered users in total) from the following platforms:', 'Currently this node is aware of %2$s nodes (%3$s active users last month, %4$s active users last six months, %5$s registered users in total) from the following platforms:', $total, number_format($total), number_format($month), number_format($halfyear), number_format($users)),
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -196,7 +196,7 @@ class Summary extends BaseAdmin
|
|||
'$title' => DI::l10n()->t('Administration'),
|
||||
'$page' => DI::l10n()->t('Summary'),
|
||||
'$queues' => $queues,
|
||||
'$version' => [DI::l10n()->t('Version'), App::VERSION],
|
||||
'$version_label' => DI::l10n()->t('Version'),
|
||||
'$platform' => App::PLATFORM,
|
||||
'$codename' => App::CODENAME,
|
||||
'$build' => DI::config()->get('system', 'build'),
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
|
||||
namespace Friendica\Module\Api\Mastodon\Statuses;
|
||||
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Model\Item;
|
||||
|
@ -54,7 +53,7 @@ class Bookmark extends BaseApi
|
|||
if ($item['uid'] == 0) {
|
||||
$stored = Item::storeForUserByUriId($item['uri-id'], $uid, ['post-reason' => Item::PR_ACTIVITY]);
|
||||
if (!empty($stored)) {
|
||||
$item = Post::selectFirst(['id', 'gravity'], ['id' => $stored]);
|
||||
$item = Post::selectFirst(['id', 'uri-id', 'gravity'], ['id' => $stored]);
|
||||
if (!DBA::isResult($item)) {
|
||||
$this->logAndJsonError(404, $this->errorFactory->RecordNotFound());
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ class BaseProfile extends BaseModule
|
|||
];
|
||||
} else {
|
||||
$owner = User::getByNickname($nickname, ['uid']);
|
||||
if(DI::userSession()->isAuthenticated() || $owner && Feature::isEnabled($owner['uid'], 'public_calendar')) {
|
||||
if(DI::userSession()->isAuthenticated() || $owner && Feature::isEnabled($owner['uid'], Feature::PUBLIC_CALENDAR)) {
|
||||
$tabs[] = [
|
||||
'label' => DI::l10n()->t('Calendar'),
|
||||
'url' => DI::baseUrl() . '/calendar/show/' . $nickname,
|
||||
|
|
|
@ -78,7 +78,7 @@ class Export extends BaseModule
|
|||
$this->baseUrl->redirect('profile/' . $nickname . '/restricted');
|
||||
}
|
||||
|
||||
if (!$this->session->isAuthenticated() && !Feature::isEnabled($owner['uid'], 'public_calendar')) {
|
||||
if (!$this->session->isAuthenticated() && !Feature::isEnabled($owner['uid'], Feature::PUBLIC_CALENDAR)) {
|
||||
$this->sysMessages->addNotice($this->t('Permission denied.'));
|
||||
$this->baseUrl->redirect('profile/' . $nickname);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ class Show extends BaseModule
|
|||
$this->baseUrl->redirect('profile/' . $nickname . '/restricted');
|
||||
}
|
||||
|
||||
if (!$this->session->isAuthenticated() && !Feature::isEnabled($owner['uid'], 'public_calendar')) {
|
||||
if (!$this->session->isAuthenticated() && !Feature::isEnabled($owner['uid'], Feature::PUBLIC_CALENDAR)) {
|
||||
$this->sysMessages->addNotice($this->t('Permission denied.'));
|
||||
return Login::form();
|
||||
}
|
||||
|
|
|
@ -119,7 +119,7 @@ class Channel extends Timeline
|
|||
$this->page['aside'] .= $this->getNoSharerWidget('channel');
|
||||
}
|
||||
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), 'trending_tags')) {
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::TRENDING_TAGS)) {
|
||||
$this->page['aside'] .= TrendingTags::getHTML($this->selectedTab);
|
||||
}
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ class Community extends Timeline
|
|||
$this->page['aside'] .= $this->getNoSharerWidget('community');
|
||||
}
|
||||
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), 'trending_tags')) {
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::TRENDING_TAGS)) {
|
||||
$this->page['aside'] .= TrendingTags::getHTML($this->selectedTab);
|
||||
}
|
||||
|
||||
|
|
|
@ -130,21 +130,35 @@ class Network extends Timeline
|
|||
|
||||
$o = '';
|
||||
|
||||
$this->page['aside'] .= Circle::sidebarWidget($module, $module . '/circle', 'standard', $this->circleId);
|
||||
$this->page['aside'] .= GroupManager::widget($this->session->getLocalUserId());
|
||||
$this->page['aside'] .= Widget::postedByYear($module . '/archive', $this->session->getLocalUserId(), false);
|
||||
$this->page['aside'] .= Widget::networks($module, $this->network);
|
||||
$this->page['aside'] .= Widget::accountTypes($module, $this->accountTypeString);
|
||||
$this->page['aside'] .= Widget::channels($module, $this->selectedTab, $this->session->getLocalUserId());
|
||||
$this->page['aside'] .= Widget\SavedSearches::getHTML($this->args->getQueryString());
|
||||
$this->page['aside'] .= Widget::fileAs('filed', '');
|
||||
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::CIRCLES)) {
|
||||
$this->page['aside'] .= Circle::sidebarWidget($module, $module . '/circle', 'standard', $this->circleId);
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::GROUPS)) {
|
||||
$this->page['aside'] .= GroupManager::widget($this->session->getLocalUserId());
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::ARCHIVE)) {
|
||||
$this->page['aside'] .= Widget::postedByYear($module . '/archive', $this->session->getLocalUserId(), false);
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::NETWORKS)) {
|
||||
$this->page['aside'] .= Widget::networks($module, $this->network);
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::ACCOUNTS)) {
|
||||
$this->page['aside'] .= Widget::accountTypes($module, $this->accountTypeString);
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::CHANNELS)) {
|
||||
$this->page['aside'] .= Widget::channels($module, $this->selectedTab, $this->session->getLocalUserId());
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::SEARCHES)) {
|
||||
$this->page['aside'] .= Widget\SavedSearches::getHTML($this->args->getQueryString());
|
||||
}
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::FOLDERS)) {
|
||||
$this->page['aside'] .= Widget::fileAs('filed', '');
|
||||
}
|
||||
if (($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId())) &&
|
||||
!in_array($this->selectedTab, [Channel::FOLLOWERS, Channel::FORYOU, Channel::DISCOVER])) {
|
||||
!in_array($this->selectedTab, [Channel::FOLLOWERS, Channel::FORYOU, Channel::DISCOVER]) && Feature::isEnabled($this->session->getLocalUserId(), Feature::NOSHARER)) {
|
||||
$this->page['aside'] .= $this->getNoSharerWidget('network');
|
||||
}
|
||||
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), 'trending_tags')) {
|
||||
if (Feature::isEnabled($this->session->getLocalUserId(), Feature::TRENDING_TAGS)) {
|
||||
$this->page['aside'] .= TrendingTags::getHTML($this->selectedTab);
|
||||
}
|
||||
|
||||
|
@ -295,7 +309,7 @@ class Network extends Timeline
|
|||
$this->circleId = (int)($this->parameters['circle_id'] ?? 0);
|
||||
|
||||
if (!$this->selectedTab) {
|
||||
$this->selectedTab = self::getTimelineOrderBySession($this->session, $this->pConfig);
|
||||
$this->selectedTab = $this->getTimelineOrderBySession();
|
||||
} elseif (!$this->networkFactory->isTimeline($this->selectedTab) && !$this->channel->isTimeline($this->selectedTab) && !$this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId()) && !$this->community->isTimeline($this->selectedTab)) {
|
||||
throw new HTTPException\BadRequestException($this->l10n->t('Network feed not available.'));
|
||||
}
|
||||
|
@ -357,6 +371,11 @@ class Network extends Timeline
|
|||
$this->dateTo = $this->parameters['to'] ?? '';
|
||||
|
||||
$this->setMaxMinByOrder($request);
|
||||
|
||||
if (is_null($this->maxId) && !is_null($this->minId)) {
|
||||
$this->session->set('network-request', $request);
|
||||
$this->pConfig->set($this->session->getLocalUserId(), 'network.view', 'request', $request);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getItems()
|
||||
|
@ -469,14 +488,24 @@ class Network extends Timeline
|
|||
/**
|
||||
* Returns the selected network tab of the currently logged-in user
|
||||
*
|
||||
* @param IHandleUserSessions $session
|
||||
* @param IManagePersonalConfigValues $pconfig
|
||||
* @return string
|
||||
*/
|
||||
public static function getTimelineOrderBySession(IHandleUserSessions $session, IManagePersonalConfigValues $pconfig): string
|
||||
private function getTimelineOrderBySession(): string
|
||||
{
|
||||
return $session->get('network-tab')
|
||||
?? $pconfig->get($session->getLocalUserId(), 'network.view', 'selected_tab')
|
||||
return $this->session->get('network-tab')
|
||||
?? $this->pConfig->get($this->session->getLocalUserId(), 'network.view', 'selected_tab')
|
||||
?? '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the lst request parameters of the currently logged-in user
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getTimelineRequestBySession(): array
|
||||
{
|
||||
return $this->session->get('network-request')
|
||||
?? $this->pConfig->get($this->session->getLocalUserId(), 'network.view', 'request')
|
||||
?? [];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -235,6 +235,7 @@ class Timeline extends BaseModule
|
|||
protected function getChannelItems(array $request)
|
||||
{
|
||||
$items = $this->getRawChannelItems($request);
|
||||
$total = min(count($items), $this->itemsPerPage);
|
||||
|
||||
$contacts = $this->database->selectToArray('user-contact', ['cid'], ['channel-frequency' => Contact\User::FREQUENCY_REDUCED, 'cid' => array_column($items, 'owner-id')]);
|
||||
$reduced = array_column($contacts, 'cid');
|
||||
|
@ -246,8 +247,8 @@ class Timeline extends BaseModule
|
|||
$owner_posts = [];
|
||||
$selected_items = [];
|
||||
|
||||
while (count($selected_items) < $this->itemsPerPage && ++$count < 50 && count($items) > 0) {
|
||||
$maxposts = round((count($items) / $this->itemsPerPage) * $maxpostperauthor);
|
||||
while (count($selected_items) < $total && ++$count < 50 && count($items) > 0) {
|
||||
$maxposts = round((count($items) / $total) * $maxpostperauthor);
|
||||
$minId = $items[array_key_first($items)][$this->order];
|
||||
$maxId = $items[array_key_last($items)][$this->order];
|
||||
|
||||
|
@ -279,7 +280,7 @@ class Timeline extends BaseModule
|
|||
$this->maxId = $maxId;
|
||||
}
|
||||
|
||||
if (count($selected_items) < $this->itemsPerPage) {
|
||||
if (count($selected_items) < $total) {
|
||||
$items = $this->getRawChannelItems($request);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -205,7 +205,7 @@ class Compose extends BaseModule
|
|||
'location_disabled' => $this->l10n->t('Location services are disabled. Please check the website\'s permissions on your device'),
|
||||
'wait' => $this->l10n->t('Please wait'),
|
||||
'placeholdertitle' => $this->l10n->t('Set title'),
|
||||
'placeholdercategory' => Feature::isEnabled(DI::userSession()->getLocalUserId(),'categories') ? $this->l10n->t('Categories (comma-separated list)') : '',
|
||||
'placeholdercategory' => Feature::isEnabled(DI::userSession()->getLocalUserId(), Feature::CATEGORIES) ? $this->l10n->t('Categories (comma-separated list)') : '',
|
||||
'always_open_compose' => $this->pConfig->get(DI::userSession()->getLocalUserId(), 'frio', 'always_open_compose',
|
||||
$this->config->get('frio', 'always_open_compose', false)) ? '' :
|
||||
$this->l10n->t('You can make this page always open when you use the New Post button in the <a href="/settings/display">Theme Customization settings</a>.'),
|
||||
|
|
|
@ -124,8 +124,6 @@ class Contact extends BaseModeration
|
|||
'$form_security_token' => self::getFormSecurityToken('moderation_contactblock'),
|
||||
|
||||
// values //
|
||||
'$baseurl' => $this->baseUrl,
|
||||
|
||||
'$contacts' => $contacts,
|
||||
'$total_contacts' => $this->tt('%s total blocked contact', '%s total blocked contacts', $total),
|
||||
'$paginate' => $pager->renderFull($total),
|
||||
|
|
|
@ -138,7 +138,6 @@ class Add extends BaseModeration
|
|||
'$newreason' => ['reason', $this->t('Block reason'), $request['reason'] ?? '', $this->t('The reason why you blocked this server domain pattern. This reason will be shown publicly in the server information page.'), $this->t('Required'), '', ''],
|
||||
'$pattern' => $pattern,
|
||||
'$gservers' => $gservers,
|
||||
'$baseurl' => $this->baseUrl,
|
||||
'$form_security_token' => self::getFormSecurityToken('moderation_blocklist_add')
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -130,7 +130,6 @@ class Import extends \Friendica\Module\BaseModeration
|
|||
'$mode_append' => ['mode', $this->t('Append'), 'append', $this->t('Imports patterns from the file that weren\'t already existing in the current blocklist.'), 'checked="checked"'],
|
||||
'$mode_replace' => ['mode', $this->t('Replace'), 'replace', $this->t('Replaces the current blocklist by the imported patterns.')],
|
||||
'$blocklist' => $this->blocklist,
|
||||
'$baseurl' => $this->baseUrl,
|
||||
'$form_security_token' => self::getFormSecurityToken('moderation_blocklist_import')
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -115,7 +115,6 @@ class Index extends BaseModeration
|
|||
'$listfile' => ['listfile', $this->t('Server domain pattern blocklist CSV file'), '', '', $this->t('Required'), '', 'file'],
|
||||
'$newdomain' => ['pattern', $this->t('Server Domain Pattern'), '', $this->t('The domain pattern of the new server to add to the blocklist. Do not include the protocol.'), $this->t('Required'), '', ''],
|
||||
'$entries' => $blocklistform,
|
||||
'$baseurl' => $this->baseUrl,
|
||||
|
||||
'$form_security_token' => self::getFormSecurityToken('moderation_blocklist'),
|
||||
'$form_security_token_import' => self::getFormSecurityToken('moderation_blocklist_import'),
|
||||
|
|
|
@ -95,8 +95,6 @@ class Reports extends BaseModeration
|
|||
'$th_reports' => [$this->t('Created'), $this->t('Photo'), $this->t('Name'), $this->t('Comment'), $this->t('Category')],
|
||||
|
||||
// values //
|
||||
'$baseurl' => $this->baseUrl,
|
||||
|
||||
'$reports' => $reports,
|
||||
'$total_reports' => $this->tt('%s total report', '%s total reports', $total),
|
||||
'$paginate' => $pager->renderFull($total),
|
||||
|
|
|
@ -150,7 +150,6 @@ class Active extends BaseUsers
|
|||
'$form_security_token' => self::getFormSecurityToken('moderation_users_active'),
|
||||
|
||||
// values //
|
||||
'$baseurl' => $this->baseUrl,
|
||||
'$query_string' => $this->args->getQueryString(),
|
||||
|
||||
'$users' => $users,
|
||||
|
|
|
@ -105,7 +105,6 @@ class Ping extends BaseModule
|
|||
$intro_count = 0;
|
||||
$mail_count = 0;
|
||||
$home_count = 0;
|
||||
$network_count = 0;
|
||||
$register_count = 0;
|
||||
$sysnotify_count = 0;
|
||||
$circles_unseen = [];
|
||||
|
@ -125,34 +124,13 @@ class Ping extends BaseModule
|
|||
}
|
||||
|
||||
$condition = [
|
||||
"`unseen` AND `uid` = ? AND NOT `origin` AND (`vid` != ? OR `vid` IS NULL)",
|
||||
"`unseen` AND `uid` = ? AND NOT `origin` AND `wall` AND (`vid` != ? OR `vid` IS NULL)",
|
||||
$this->session->getLocalUserId(), Verb::getID(Activity::FOLLOW)
|
||||
];
|
||||
|
||||
// No point showing counts for non-top-level posts when the network page is ordered by received field
|
||||
if (Network::getTimelineOrderBySession($this->session, $this->pconfig) == 'received') {
|
||||
$condition = DBA::mergeConditions($condition, ["`parent` = `id`"]);
|
||||
}
|
||||
$home_count = Post::count($condition);
|
||||
|
||||
$items_unseen = $this->database->toArray(Post::selectForUser(
|
||||
$this->session->getLocalUserId(),
|
||||
['wall', 'uid', 'uri-id'],
|
||||
$condition,
|
||||
['limit' => 1000],
|
||||
));
|
||||
$arr = ['items' => $items_unseen];
|
||||
Hook::callAll('network_ping', $arr);
|
||||
|
||||
foreach ($items_unseen as $item) {
|
||||
if ($item['wall']) {
|
||||
$home_count++;
|
||||
} else {
|
||||
$network_count++;
|
||||
}
|
||||
}
|
||||
|
||||
$compute_circle_counts = $this->config->get('system','compute_circle_counts');
|
||||
if ($network_count && $compute_circle_counts) {
|
||||
if ($this->config->get('system','compute_circle_counts')) {
|
||||
// Find out how unseen network posts are spread across circles
|
||||
foreach (Circle::countUnseen($this->session->getLocalUserId()) as $circle_count) {
|
||||
if ($circle_count['count'] > 0) {
|
||||
|
@ -281,7 +259,6 @@ class Ping extends BaseModule
|
|||
$data = [];
|
||||
$data['intro'] = $intro_count;
|
||||
$data['mail'] = $mail_count;
|
||||
$data['net'] = ($network_count < 1000) ? $network_count : '999+';
|
||||
$data['home'] = ($home_count < 1000) ? $home_count : '999+';
|
||||
$data['register'] = $register_count;
|
||||
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
/**
|
||||
* @copyright Copyright (C) 2010-2024, the Friendica project
|
||||
*
|
||||
* @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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace Friendica\Module\Ping;
|
||||
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Module\Conversation\Network as NetworkModule;
|
||||
|
||||
class Network extends NetworkModule
|
||||
{
|
||||
protected function rawContent(array $request = [])
|
||||
{
|
||||
if (!$this->session->getLocalUserId()) {
|
||||
System::exit();
|
||||
}
|
||||
|
||||
if (!empty($request['ping'])) {
|
||||
$request = $this->getTimelineRequestBySession();
|
||||
}
|
||||
|
||||
if (!isset($request['p']) || !isset($request['item'])) {
|
||||
System::exit();
|
||||
}
|
||||
|
||||
$this->parseRequest($request);
|
||||
|
||||
if ($this->force || !is_null($this->maxId)) {
|
||||
System::httpExit('');
|
||||
}
|
||||
|
||||
$this->itemsPerPage = 100;
|
||||
|
||||
if ($this->channel->isTimeline($this->selectedTab) || $this->userDefinedChannel->isTimeline($this->selectedTab, $this->session->getLocalUserId())) {
|
||||
$items = $this->getChannelItems($request);
|
||||
} elseif ($this->community->isTimeline($this->selectedTab)) {
|
||||
$items = $this->getCommunityItems();
|
||||
} else {
|
||||
$items = $this->getItems();
|
||||
}
|
||||
$count = count($items);
|
||||
System::httpExit(($count < 100) ? $count : '99+');
|
||||
}
|
||||
}
|
|
@ -156,7 +156,7 @@ class Edit extends BaseModule
|
|||
'$title' => $item['title'],
|
||||
'$placeholdertitle' => $this->t('Set title'),
|
||||
'$category' => Post\Category::getCSVByURIId($item['uri-id'], $this->session->getLocalUserId(), Post\Category::CATEGORY),
|
||||
'$placeholdercategory' => (Feature::isEnabled($this->session->getLocalUserId(), 'categories') ? $this->t("Categories \x28comma-separated list\x29") : ''),
|
||||
'$placeholdercategory' => (Feature::isEnabled($this->session->getLocalUserId(), Feature::CATEGORIES) ? $this->t("Categories \x28comma-separated list\x29") : ''),
|
||||
'$emtitle' => $this->t('Example: bob@example.com, mary@example.com'),
|
||||
'$lockstate' => $lockstate,
|
||||
'$acl' => '',
|
||||
|
|
|
@ -240,7 +240,7 @@ class Photos extends \Friendica\Module\BaseProfile
|
|||
|
||||
// Create item container
|
||||
$lat = $lon = null;
|
||||
if (!empty($exif['GPS']) && Feature::isEnabled($this->owner['uid'], 'photo_location')) {
|
||||
if (!empty($exif['GPS']) && Feature::isEnabled($this->owner['uid'], Feature::PHOTO_LOCATION)) {
|
||||
$lat = Photo::getGps($exif['GPS']['GPSLatitude'], $exif['GPS']['GPSLatitudeRef']);
|
||||
$lon = Photo::getGps($exif['GPS']['GPSLongitude'], $exif['GPS']['GPSLongitudeRef']);
|
||||
}
|
||||
|
|
|
@ -166,7 +166,7 @@ class Profile extends BaseProfile
|
|||
|
||||
$basic_fields += self::buildField('fullname', $this->t('Full Name:'), $profile['name']);
|
||||
|
||||
if (Feature::isEnabled($profile['uid'], 'profile_membersince')) {
|
||||
if (Feature::isEnabled($profile['uid'], Feature::MEMBER_SINCE)) {
|
||||
$basic_fields += self::buildField(
|
||||
'membersince',
|
||||
$this->t('Member since:'),
|
||||
|
@ -255,7 +255,7 @@ class Profile extends BaseProfile
|
|||
}
|
||||
|
||||
//show subscribed group if it is enabled in the usersettings
|
||||
if (Feature::isEnabled($profile['uid'], 'forumlist_profile')) {
|
||||
if (Feature::isEnabled($profile['uid'], Feature::GROUPS)) {
|
||||
$custom_fields += self::buildField(
|
||||
'group_list',
|
||||
$this->t('Groups:'),
|
||||
|
|
|
@ -228,7 +228,6 @@ class Channels extends BaseSettings
|
|||
'confirm_delete' => $this->t('Delete entry from the channel list?'),
|
||||
],
|
||||
'$entries' => $channels,
|
||||
'$baseurl' => $this->baseUrl,
|
||||
|
||||
'$form_security_token' => self::getFormSecurityToken('settings_channels'),
|
||||
]);
|
||||
|
|
|
@ -49,7 +49,7 @@ class Features extends BaseSettings
|
|||
BaseSettings::checkFormSecurityTokenRedirectOnError('/settings/features', 'settings_features');
|
||||
foreach ($request as $k => $v) {
|
||||
if (strpos($k, 'feature_') === 0) {
|
||||
$this->pConfig->set($this->session->getLocalUserId(), 'feature', substr($k, 8), ((intval($v)) ? 1 : 0));
|
||||
$this->pConfig->set($this->session->getLocalUserId(), 'feature', substr($k, 8), (bool)$v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -58,9 +58,8 @@ class Features extends BaseSettings
|
|||
{
|
||||
parent::content($request);
|
||||
|
||||
$arr = [];
|
||||
$features = Feature::get();
|
||||
foreach ($features as $name => $feature) {
|
||||
$arr = [];
|
||||
foreach (Feature::get() as $name => $feature) {
|
||||
$arr[$name] = [];
|
||||
$arr[$name][0] = $feature[0];
|
||||
foreach (array_slice($feature, 1) as $f) {
|
||||
|
|
|
@ -1079,13 +1079,13 @@ class Post
|
|||
$owner = User::getOwnerDataById($a->getLoggedInUserId());
|
||||
$item = $this->getData();
|
||||
|
||||
if (!empty($item['content-warning']) && Feature::isEnabled(DI::userSession()->getLocalUserId(), 'add_abstract')) {
|
||||
if (!empty($item['content-warning']) && Feature::isEnabled(DI::userSession()->getLocalUserId(), Feature::ADD_ABSTRACT)) {
|
||||
$text = '[abstract=' . Protocol::ACTIVITYPUB . ']' . $item['content-warning'] . "[/abstract]\n";
|
||||
} else {
|
||||
$text = '';
|
||||
}
|
||||
|
||||
if (!Feature::isEnabled(DI::userSession()->getLocalUserId(), 'explicit_mentions')) {
|
||||
if (!Feature::isEnabled(DI::userSession()->getLocalUserId(), Feature::EXPLICIT_MENTIONS)) {
|
||||
return $text;
|
||||
}
|
||||
|
||||
|
|
|
@ -1577,7 +1577,8 @@ class Receiver
|
|||
$element = [
|
||||
'type' => str_replace('as:', '', JsonLD::fetchElement($tag, '@type') ?? ''),
|
||||
'href' => JsonLD::fetchElement($tag, 'as:href', '@id'),
|
||||
'name' => JsonLD::fetchElement($tag, 'as:name', '@value')
|
||||
'name' => JsonLD::fetchElement($tag, 'as:name', '@value'),
|
||||
'mediaType' => JsonLD::fetchElement($tag, 'as:mediaType', '@value')
|
||||
];
|
||||
|
||||
if (empty($element['type'])) {
|
||||
|
@ -2094,12 +2095,18 @@ class Receiver
|
|||
}
|
||||
|
||||
// Support for quoted posts (Pleroma, Fedibird and Misskey)
|
||||
$object_data['quote-url'] = JsonLD::fetchElement($object, 'as:quoteUrl', '@value');
|
||||
$object_data['quote-url'] = JsonLD::fetchElement($object, 'as:quoteUrl', '@id');
|
||||
if (empty($object_data['quote-url'])) {
|
||||
$object_data['quote-url'] = JsonLD::fetchElement($object, 'fedibird:quoteUri', '@value');
|
||||
$object_data['quote-url'] = JsonLD::fetchElement($object, 'fedibird:quoteUri', '@id');
|
||||
}
|
||||
if (empty($object_data['quote-url'])) {
|
||||
$object_data['quote-url'] = JsonLD::fetchElement($object, 'misskey:_misskey_quote', '@value');
|
||||
$object_data['quote-url'] = JsonLD::fetchElement($object, 'misskey:_misskey_quote', '@id');
|
||||
}
|
||||
|
||||
foreach ($object_data['tags'] as $tag) {
|
||||
if (HTTPSignature::isValidContentType($tag['mediaType'] ?? '', $tag['href'])) {
|
||||
$object_data['quote-url'] = $tag['href'];
|
||||
}
|
||||
}
|
||||
|
||||
// Misskey adds some data to the standard "content" value for quoted posts for backwards compatibility.
|
||||
|
|
|
@ -1589,15 +1589,14 @@ class Transmitter
|
|||
$tags[] = ['type' => 'Mention', 'href' => $announce['actor']['url'], 'name' => '@' . $announce['actor']['addr']];
|
||||
}
|
||||
|
||||
// @see https://codeberg.org/fediverse/fep/src/branch/main/feps/fep-e232.md
|
||||
// @see https://codeberg.org/fediverse/fep/src/branch/main/fep/e232/fep-e232.md
|
||||
if (!empty($quote_url)) {
|
||||
// Currently deactivated because of compatibility issues with Pleroma
|
||||
//$tags[] = [
|
||||
// 'type' => 'Link',
|
||||
// 'mediaType' => 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
|
||||
// 'href' => $quote_url,
|
||||
// 'name' => '♲ ' . BBCode::convertForUriId($item['uri-id'], $quote_url, BBCode::ACTIVITYPUB)
|
||||
//];
|
||||
$tags[] = [
|
||||
'type' => 'Link',
|
||||
'mediaType' => 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
|
||||
'href' => $quote_url,
|
||||
'name' => 'RE: ' . $quote_url,
|
||||
];
|
||||
}
|
||||
|
||||
return $tags;
|
||||
|
@ -1837,7 +1836,7 @@ class Transmitter
|
|||
* }
|
||||
*/
|
||||
|
||||
if (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions')) {
|
||||
if (empty($item['uid']) || !Feature::isEnabled($item['uid'], Feature::EXPLICIT_MENTIONS)) {
|
||||
$body = self::prependMentions($body, $item['uri-id'], $item['author-link']);
|
||||
}
|
||||
|
||||
|
@ -1862,6 +1861,7 @@ class Transmitter
|
|||
if (!empty($item['quote-uri-id']) && ($item['quote-uri-id'] != $item['uri-id'])) {
|
||||
if (Post::exists(['uri-id' => $item['quote-uri-id'], 'network' => [Protocol::ACTIVITYPUB, Protocol::DFRN]])) {
|
||||
$real_quote = true;
|
||||
$data['_misskey_content'] = BBCode::removeSharedData($body);
|
||||
$data['quoteUrl'] = $item['quote-uri'];
|
||||
$body = DI::contentItem()->addShareLink($body, $item['quote-uri-id']);
|
||||
} else {
|
||||
|
|
|
@ -3618,7 +3618,7 @@ class Diaspora
|
|||
if (
|
||||
$item['author-id'] != $thread_parent_item['author-id']
|
||||
&& ($thread_parent_item['gravity'] != Item::GRAVITY_PARENT)
|
||||
&& (empty($item['uid']) || !Feature::isEnabled($item['uid'], 'explicit_mentions'))
|
||||
&& (empty($item['uid']) || !Feature::isEnabled($item['uid'], Feature::EXPLICIT_MENTIONS))
|
||||
&& !DI::config()->get('system', 'disable_implicit_mentions')
|
||||
) {
|
||||
$body = self::prependParentAuthorMention($body, $thread_parent_item['author-link']);
|
||||
|
|
|
@ -674,6 +674,13 @@ return [
|
|||
'/toggle_mobile' => [Module\ToggleMobile::class, [R::GET]],
|
||||
'/tos' => [Module\Tos::class, [R::GET]],
|
||||
|
||||
'/ping_network' => [
|
||||
'[/]' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/archive/{from:\d\d\d\d-\d\d-\d\d}[/{to:\d\d\d\d-\d\d-\d\d}]' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/group/{contact_id:\d+}' => [Module\Ping\Network::class, [R::GET]],
|
||||
'/circle/{circle_id:\d+}' => [Module\Ping\Network::class, [R::GET]],
|
||||
],
|
||||
|
||||
'/update_channel[/{content}]' => [Module\Update\Channel::class, [R::GET]],
|
||||
'/update_community[/{content}]' => [Module\Update\Community::class, [R::GET]],
|
||||
|
||||
|
|
|
@ -260,15 +260,9 @@ $(function() {
|
|||
document.title = originalTitle;
|
||||
}
|
||||
|
||||
['net', 'home', 'intro', 'mail', 'events', 'birthdays', 'notification'].forEach(function(type) {
|
||||
['home', 'intro', 'mail', 'events', 'birthdays', 'notification'].forEach(function(type) {
|
||||
var number = data[type];
|
||||
if (number == 0) {
|
||||
number = '';
|
||||
$('#' + type + '-update').removeClass('show');
|
||||
} else {
|
||||
$('#' + type + '-update').addClass('show');
|
||||
}
|
||||
$('#' + type + '-update').text(number);
|
||||
updateCounter(type, number);
|
||||
});
|
||||
|
||||
var intro = data['intro'];
|
||||
|
@ -505,6 +499,14 @@ function NavUpdate() {
|
|||
liveUpdate(src);
|
||||
}
|
||||
});
|
||||
|
||||
if (!$('#live-network').length) {
|
||||
var update_url = 'ping_network?ping=1';
|
||||
$.get(update_url, function(net) {
|
||||
updateCounter('net', net);
|
||||
});
|
||||
}
|
||||
|
||||
if ($('#live-photos').length) {
|
||||
if (liking) {
|
||||
liking = 0;
|
||||
|
@ -586,7 +588,7 @@ function liveUpdate(src) {
|
|||
|
||||
var udargs = ((netargs.length) ? '/' + netargs : '');
|
||||
|
||||
var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&force=' + (force ? 1 : 0) + '&item=' + update_item;
|
||||
var update_url = src + udargs + '&p=' + profile_uid + '&force=' + (force ? 1 : 0) + '&item=' + update_item;
|
||||
|
||||
if (force_update) {
|
||||
force_update = false;
|
||||
|
@ -622,7 +624,7 @@ function liveUpdate(src) {
|
|||
update_url += '&first_uriid=' + match[0].innerHTML;
|
||||
}
|
||||
|
||||
$.get(update_url, function(data) {
|
||||
$.get('update_' + update_url, function(data) {
|
||||
in_progress = false;
|
||||
update_item = 0;
|
||||
|
||||
|
@ -639,6 +641,26 @@ function liveUpdate(src) {
|
|||
$(window).scrollTop($(window).scrollTop() + $("section").height() - orgHeight);
|
||||
});
|
||||
});
|
||||
|
||||
if (src == 'network') {
|
||||
$.get('ping_' + update_url, function(net) {
|
||||
updateCounter('net', net);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function updateCounter(type, counter) {
|
||||
if (counter < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (counter == 0) {
|
||||
counter = '';
|
||||
$('#' + type + '-update').removeClass('show');
|
||||
} else {
|
||||
$('#' + type + '-update').addClass('show');
|
||||
}
|
||||
$('#' + type + '-update').text(counter);
|
||||
}
|
||||
|
||||
function updateItem(itemNo) {
|
||||
|
|
Plik diff jest za duży
Load Diff
|
@ -10,8 +10,7 @@
|
|||
<div class="settings-content-block">
|
||||
{{foreach $f.1 as $fcat}}
|
||||
<div class="settings-block">
|
||||
{{include file="field_checkbox.tpl" field=$fcat.0}}
|
||||
{{include file="field_checkbox.tpl" field=$fcat.1}}
|
||||
{{include file="field_select.tpl" field=$fcat}}
|
||||
</div>
|
||||
{{/foreach}}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<script src="{{$baseurl}}/view/asset/Chart-js/dist/Chart.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script src="{{$baseurl}}/view/asset/Chart-js/dist/Chart.min.js?v={{$VERSION}}"></script>
|
||||
<div id="adminpage">
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
||||
|
@ -115,7 +115,7 @@
|
|||
<ul class="federation-stats">
|
||||
{{foreach $c[1] as $v}}
|
||||
<li>
|
||||
{{if ($c[0]['platform']==='Friendica' and $version===$v['version']) }}
|
||||
{{if $c[0]['platform'] === 'Friendica' && $VERSION === $v['version']}}
|
||||
<span class="version-match">{{$v['version']}}</span>
|
||||
{{else}}
|
||||
{{$v['version']}}
|
||||
|
|
|
@ -16,16 +16,16 @@
|
|||
|
||||
<dl>
|
||||
<dt>{{$addons.0}}</dt>
|
||||
|
||||
|
||||
{{foreach $addons.1 as $p}}
|
||||
<dd><a href="{{$baseurl}}/admin/addons/{{$p}}/">{{$p}}</a></dd>
|
||||
{{/foreach}}
|
||||
|
||||
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
<dt>{{$version.0}}</dt>
|
||||
<dd> {{$platform}} '{{$codename}}' {{$version.1}} - {{$build}}</dt>
|
||||
<dt>{{$version_label}}</dt>
|
||||
<dd> {{$platform}} '{{$codename}}' {{$VERSION}} - {{$build}}</dt>
|
||||
</dl>
|
||||
|
||||
<dl>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="{{$baseurl}}/view/asset/fullcalendar/dist/fullcalendar.min.css?v={{constant('\Friendica\App::VERSION')}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$baseurl}}/view/asset/fullcalendar/dist/fullcalendar.print.min.css?v={{constant('\Friendica\App::VERSION')}}" media="print" />
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/asset/moment/min/moment-with-locales.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/asset/fullcalendar/dist/fullcalendar.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" type="text/css" href="{{$baseurl}}/view/asset/fullcalendar/dist/fullcalendar.min.css?v={{$VERSION}}" />
|
||||
<link rel="stylesheet" type="text/css" href="{{$baseurl}}/view/asset/fullcalendar/dist/fullcalendar.print.min.css?v={{$VERSION}}" media="print" />
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/asset/moment/min/moment-with-locales.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/asset/fullcalendar/dist/fullcalendar.min.js?v={{$VERSION}}"></script>
|
||||
|
||||
<script>
|
||||
function showEvent(eventid) {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
As a result, we need to add a wrapping element for non-flex (non-image grid) environments, mostly single-image cases.
|
||||
*}}
|
||||
{{if $allocated_max_width}}
|
||||
<div style="max-width: {{$allocated_max_width|default:"auto"}};">
|
||||
<div class="img-allocated-max-width" style="max-width: {{$allocated_max_width|default:"auto"}};">
|
||||
{{/if}}
|
||||
|
||||
<figure class="img-allocated-height" style="width: {{$allocated_width|default:"auto"}}; padding-bottom: {{$allocated_height}}">
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<base href="{{$baseurl}}/" />
|
||||
<meta name="generator" content="{{$generator}}" />
|
||||
<link rel="stylesheet" href="view/global.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="all" />
|
||||
<link rel="stylesheet" href="view/asset/jquery-colorbox/example5/colorbox.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/jgrowl/jquery.jgrowl.min.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.min.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/perfect-scrollbar/dist/css/perfect-scrollbar.min.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/js/fancybox/jquery.fancybox.min.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/global.css?v={{$VERSION}}" type="text/css" media="all" />
|
||||
<link rel="stylesheet" href="view/asset/jquery-colorbox/example5/colorbox.css?v={{$VERSION}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/jgrowl/jquery.jgrowl.min.css?v={{$VERSION}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.min.css?v={{$VERSION}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/perfect-scrollbar/dist/css/perfect-scrollbar.min.css?v={{$VERSION}}" type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/js/fancybox/jquery.fancybox.min.css?v={{$VERSION}}" type="text/css" media="screen" />
|
||||
|
||||
{{foreach $stylesheets as $stylesheetUrl => $media}}
|
||||
<link rel="stylesheet" href="{{$stylesheetUrl}}" type="text/css" media="{{$media}}" />
|
||||
|
@ -30,23 +30,23 @@
|
|||
title="Search in Friendica" />
|
||||
|
||||
<!--[if IE]>
|
||||
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js?v={{$VERSION}}"></script>
|
||||
<![endif]-->
|
||||
<script type="text/javascript" src="view/js/modernizr.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery/dist/jquery.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/jquery.textinputs.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/textcomplete/dist/textcomplete.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/autocomplete.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery-colorbox/jquery.colorbox-min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jgrowl/jquery.jgrowl.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.full.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/perfect-scrollbar/dist/js/perfect-scrollbar.jquery.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/imagesloaded/imagesloaded.pkgd.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/base64/base64.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/jquery.fancybox.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/fancybox.config.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/vanillaEmojiPicker/vanillaEmojiPicker.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/modernizr.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery/dist/jquery.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/jquery.textinputs.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/textcomplete/dist/textcomplete.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/autocomplete.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery-colorbox/jquery.colorbox-min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jgrowl/jquery.jgrowl.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.full.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/perfect-scrollbar/dist/js/perfect-scrollbar.jquery.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/imagesloaded/imagesloaded.pkgd.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/base64/base64.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/jquery.fancybox.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/fancybox.config.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/vanillaEmojiPicker/vanillaEmojiPicker.min.js?v={{$VERSION}}"></script>
|
||||
<script>
|
||||
window.onload = function(){
|
||||
new EmojiPicker({
|
||||
|
@ -68,7 +68,7 @@ window.onload = function(){
|
|||
const updateInterval = {{$update_interval}};
|
||||
const localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
|
||||
</script>
|
||||
<script type="text/javascript" src="view/js/main.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/main.js?v={{$VERSION}}"></script>
|
||||
<script>
|
||||
// Lifted from https://css-tricks.com/snippets/jquery/move-cursor-to-end-of-textarea-or-input/
|
||||
jQuery.fn.putCursorAtEnd = function() {
|
||||
|
|
|
@ -45,7 +45,7 @@ function enableOnUser(){
|
|||
}
|
||||
|
||||
</script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{$VERSION}}"></script>
|
||||
<script>
|
||||
var ispublic = '{{$ispublic nofilter}}';
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
This is the template used by mod/fbrowser.php
|
||||
-->
|
||||
<script type="text/javascript" src="view/js/ajaxupload.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/module/media/browser.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/ajaxupload.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/module/media/browser.js?v={{$VERSION}}"></script>
|
||||
<script>
|
||||
$(function() {
|
||||
Browser.init("{{$nickname}}", "{{$type}}");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<script language="javascript" type="text/javascript">
|
||||
$("#prvmail-text").editor_autocomplete(baseurl + '/search/acl');
|
||||
</script>
|
||||
<script type="text/javascript" src="view/js/ajaxupload.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/ajaxupload.js?v={{$VERSION}}"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
var uploader = new window.AjaxUpload(
|
||||
|
|
|
@ -1 +1 @@
|
|||
<script type="text/javascript" src="view/js/country.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/country.js?v={{$VERSION}}"></script>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
<script type="text/javascript" src="view/asset/cropperjs/dist/cropper.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/asset/cropperjs/dist/cropper.min.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" />
|
||||
<script type="text/javascript" src="view/asset/cropperjs/dist/cropper.min.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/asset/cropperjs/dist/cropper.min.css?v={{$VERSION}}" type="text/css" />
|
||||
|
|
|
@ -17,8 +17,7 @@
|
|||
<div class="panel-body">
|
||||
{{foreach $f.1 as $fcat}}
|
||||
<div class="settings-block">
|
||||
{{include file="field_checkbox.tpl" field=$fcat.0}}
|
||||
{{include file="field_checkbox.tpl" field=$fcat.1}}
|
||||
{{include file="field_select.tpl" field=$fcat}}
|
||||
</div>
|
||||
{{/foreach}}
|
||||
</div>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
});
|
||||
});
|
||||
</script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="adminpage" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="adminpage" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
|
|
@ -31,8 +31,8 @@
|
|||
{{* The Friendica version. *}}
|
||||
<div id="admin-summary-version" class="col-lg-12 col-md-12 col-sm-12 col-xs-12 admin-summary">
|
||||
<hr class="admin-summary-separator">
|
||||
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 admin-summary-label-name text-muted">{{$version.0}}</div>
|
||||
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 admin-summary-entry">{{$platform}} '{{$codename}}' {{$version.1}} - {{$build}}</div>
|
||||
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 admin-summary-label-name text-muted">{{$version_label}}</div>
|
||||
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-12 admin-summary-entry">{{$platform}} '{{$codename}}' {{$VERSION}} - {{$build}}</div>
|
||||
</div>
|
||||
|
||||
{{* Server Settings. *}}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_events.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_events.js?v={{$VERSION}}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
// pass php translation strings to js variables/arrays so we can make use of it in js files
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
add or remove contacts to the contact circle.
|
||||
*}}
|
||||
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_circle.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_circle.js?v={{$VERSION}}"></script>
|
||||
|
||||
<div class="generic-page-wrapper">
|
||||
{{if $editable == 1}}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_contacts.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_contacts.js?v={{$VERSION}}"></script>
|
||||
|
|
|
@ -6,56 +6,56 @@
|
|||
<meta name="viewport" content="initial-scale=1.0">
|
||||
|
||||
{{* All needed css files - Note: css must be inserted before js files *}}
|
||||
<link rel="stylesheet" href="view/global.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="all" />
|
||||
<link rel="stylesheet" href="view/asset/jquery-colorbox/example5/colorbox.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
<link rel="stylesheet" href="view/global.css?v={{$VERSION}}" type="text/css" media="all" />
|
||||
<link rel="stylesheet" href="view/asset/jquery-colorbox/example5/colorbox.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/jgrowl/jquery.jgrowl.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
<link rel="stylesheet" href="view/asset/jgrowl/jquery.jgrowl.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/asset/perfect-scrollbar/dist/css/perfect-scrollbar.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/asset/perfect-scrollbar/dist/css/perfect-scrollbar.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/bootstrap/css/bootstrap.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/bootstrap/css/bootstrap.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/asset/fork-awesome/css/fork-awesome.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
<link rel="stylesheet" href="view/asset/fork-awesome/css/fork-awesome.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/jasny/css/jasny-bootstrap.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/jasny/css/jasny-bootstrap.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/bootstrap-select/css/bootstrap-select.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/bootstrap-select/css/bootstrap-select.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/ekko-lightbox/ekko-lightbox.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/ekko-lightbox/ekko-lightbox.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/justifiedGallery/justifiedGallery.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/justifiedGallery/justifiedGallery.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/bootstrap-colorpicker/css/bootstrap-colorpicker.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet"
|
||||
href="view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
href="view/theme/frio/frameworks/bootstrap-toggle/css/bootstrap-toggle.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/theme/frio/font/open_sans/open-sans.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
<link rel="stylesheet" href="view/theme/frio/font/open_sans/open-sans.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
<link rel="stylesheet" href="view/js/fancybox/jquery.fancybox.min.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
<link rel="stylesheet" href="view/js/fancybox/jquery.fancybox.min.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
|
||||
{{* own css files *}}
|
||||
<link rel="stylesheet" href="view/theme/frio/css/hovercard.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css"
|
||||
<link rel="stylesheet" href="view/theme/frio/css/hovercard.css?v={{$VERSION}}" type="text/css"
|
||||
media="screen" />
|
||||
<link rel="stylesheet" href="view/theme/frio/css/font-awesome.custom.css?v={{constant('\Friendica\App::VERSION')}}"
|
||||
<link rel="stylesheet" href="view/theme/frio/css/font-awesome.custom.css?v={{$VERSION}}"
|
||||
type="text/css" media="screen" />
|
||||
|
||||
{{foreach $stylesheets as $stylesheetUrl => $media}}
|
||||
|
@ -81,74 +81,74 @@
|
|||
|
||||
{{* The js files we use *}}
|
||||
<!--[if IE]>
|
||||
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="https://html5shiv.googlecode.com/svn/trunk/html5.js?v={{$VERSION}}"></script>
|
||||
<![endif]-->
|
||||
<script type="text/javascript" src="view/js/modernizr.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery/dist/jquery.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
<script type="text/javascript" src="view/js/modernizr.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jquery/dist/jquery.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript" src="view/js/jquery.textinputs.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/jquery.textinputs.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/asset/textcomplete/dist/textcomplete.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/autocomplete.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/asset/textcomplete/dist/textcomplete.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/autocomplete.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/asset/jquery-colorbox/jquery.colorbox-min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jgrowl/jquery.jgrowl.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/asset/jquery-colorbox/jquery.colorbox-min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/jgrowl/jquery.jgrowl.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.full.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/asset/jquery-datetimepicker/build/jquery.datetimepicker.full.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/asset/perfect-scrollbar/dist/js/perfect-scrollbar.jquery.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/asset/perfect-scrollbar/dist/js/perfect-scrollbar.jquery.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/asset/imagesloaded/imagesloaded.pkgd.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/base64/base64.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/asset/imagesloaded/imagesloaded.pkgd.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/base64/base64.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/asset/dompurify/dist/purify.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
const updateInterval = {{$update_interval}};
|
||||
const localUser = {{if $local_user}}{{$local_user}}{{else}}false{{/if}};
|
||||
</script>
|
||||
<script type="text/javascript" src="view/js/main.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/main.js?v={{$VERSION}}"></script>
|
||||
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/bootstrap/js/bootstrap.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/theme/frio/frameworks/bootstrap/js/bootstrap.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/jasny/js/jasny-bootstrap.custom.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/theme/frio/frameworks/jasny/js/jasny-bootstrap.custom.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/bootstrap-select/js/bootstrap-select.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/theme/frio/frameworks/bootstrap-select/js/bootstrap-select.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/ekko-lightbox/ekko-lightbox.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/theme/frio/frameworks/ekko-lightbox/ekko-lightbox.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/justifiedGallery/jquery.justifiedGallery.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/theme/frio/frameworks/justifiedGallery/jquery.justifiedGallery.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/theme/frio/frameworks/bootstrap-colorpicker/js/bootstrap-colorpicker.min.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/flexMenu/flexmenu.custom.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/theme/frio/frameworks/flexMenu/flexmenu.custom.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/jquery-scrollspy/jquery-scrollspy.js?v={{constant('\Friendica\App::VERSION')}}">
|
||||
src="view/theme/frio/frameworks/jquery-scrollspy/jquery-scrollspy.js?v={{$VERSION}}">
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/autosize/autosize.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/theme/frio/frameworks/autosize/autosize.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"
|
||||
src="view/theme/frio/frameworks/sticky-kit/jquery.sticky-kit.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
src="view/theme/frio/frameworks/sticky-kit/jquery.sticky-kit.min.js?v={{$VERSION}}"></script>
|
||||
|
||||
{{* own js files *}}
|
||||
<script type="text/javascript" src="view/theme/frio/js/theme.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/modal.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/theme.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/modal.js?v={{$VERSION}}"></script>
|
||||
{{if ! $block_public}}
|
||||
<script type="text/javascript" src="view/theme/frio/js/hovercard.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/hovercard.js?v={{$VERSION}}"></script>
|
||||
{{/if}}
|
||||
<script type="text/javascript" src="view/theme/frio/js/textedit.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="vendor/enyo/dropzone/dist/min/dropzone.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/dropzone-factory.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/textedit.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="vendor/enyo/dropzone/dist/min/dropzone.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/dropzone-factory.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript"> const dzFactory = new DzFactory({{$max_imagesize}});</script>
|
||||
<script type="text/javascript" src="view/js/fancybox/jquery.fancybox.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/fancybox.config.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/vanillaEmojiPicker/vanillaEmojiPicker.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/jquery.fancybox.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/fancybox/fancybox.config.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="view/js/vanillaEmojiPicker/vanillaEmojiPicker.min.js?v={{$VERSION}}"></script>
|
||||
<script>
|
||||
window.onload = function(){
|
||||
new EmojiPicker({
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/linkPreview.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/theme/frio/js/jot.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/linkPreview.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/theme/frio/js/jot.js?v={{$VERSION}}"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var editor = false;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="admin-contactblock" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}}</h1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="admin-users" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}} ({{$count}})</h1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="admin-users-blocked" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}} ({{$count}})</h1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="admin-users" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}} ({{$count}})</h1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="admin-users" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}} ({{$count}})</h1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{constant('\Friendica\App::VERSION')}}" type="text/css" media="screen"/>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_admin.js?v={{$VERSION}}"></script>
|
||||
<link rel="stylesheet" href="view/theme/frio/css/mod_admin.css?v={{$VERSION}}" type="text/css" media="screen"/>
|
||||
|
||||
<div id="admin-users" class="adminpage generic-page-wrapper">
|
||||
<h1>{{$title}} - {{$page}} ({{$count}})</h1>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script type="text/javascript" src="../../frameworks/jquery-color/jquery.color.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="../../js/mod_notifications.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="../../frameworks/jquery-color/jquery.color.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="../../js/mod_notifications.js?v={{$VERSION}}"></script>
|
||||
|
||||
<div class="generic-page-wrapper">
|
||||
{{include file="section_title.tpl" title=$header}}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_photos.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="view/theme/frio/js/mod_photos.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript">
|
||||
var ispublic = "{{$ispublic nofilter}}";
|
||||
</script>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script src="{{$baseurl}}/view/theme/frio/js/jquery.tools.min.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{constant('\Friendica\App::VERSION')}}"></script>
|
||||
<script src="{{$baseurl}}/view/theme/frio/js/jquery.tools.min.js?v={{$VERSION}}"></script>
|
||||
<script type="text/javascript" src="{{$baseurl}}/view/js/ajaxupload.js?v={{$VERSION}}"></script>
|
||||
|
||||
<div class="form-group field select">
|
||||
<label for="id_{{$scheme.0}}">{{$scheme.1}}</label>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{{if !$update}}<script type="text/javascript" src="view/theme/frio/frameworks/jquery-color/jquery.color.js?v={{constant('\Friendica\App::VERSION')}}"></script>{{/if}}
|
||||
{{if $mode == display}}<script type="text/javascript" src="view/theme/frio/js/mod_display.js?v={{constant('\Friendica\App::VERSION')}}"></script>{{/if}}
|
||||
{{if !$update}}<script type="text/javascript" src="view/theme/frio/frameworks/jquery-color/jquery.color.js?v={{$VERSION}}"></script>{{/if}}
|
||||
{{if $mode == display}}<script type="text/javascript" src="view/theme/frio/js/mod_display.js?v={{$VERSION}}"></script>{{/if}}
|
||||
{{$live_update nofilter}}
|
||||
{{foreach $threads as $thread}}
|
||||
<hr class="sr-only" />
|
||||
|
|
Ładowanie…
Reference in New Issue