theme infos are now bundled in a single array

This commit is contained in:
Michael 2021-07-25 19:07:03 +00:00
parent 0551648399
commit c52b8595e8
9 changed files with 22 additions and 21 deletions

View file

@ -255,7 +255,7 @@ function events_content(App $a)
); );
} }
if ($a->theme_events_in_profile) { if ($a->theme_info['events_in_profile']) {
Nav::setSelected('home'); Nav::setSelected('home');
} else { } else {
Nav::setSelected('events'); Nav::setSelected('events');
@ -279,7 +279,7 @@ function events_content(App $a)
$o = ''; $o = '';
$tabs = ''; $tabs = '';
// tabs // tabs
if ($a->theme_events_in_profile) { if ($a->theme_info['events_in_profile']) {
$tabs = BaseProfile::getTabsHTML($a, 'events', true, $a->user); $tabs = BaseProfile::getTabsHTML($a, 'events', true, $a->user);
} }

View file

@ -57,13 +57,14 @@ use Psr\Log\LoggerInterface;
class App class App
{ {
public $user; public $user;
public $theme_info = [];
// Allow themes to control internal parameters // Allow themes to control internal parameters
// by changing App values in theme.php // by changing App values in theme.php
public $theme_info = [
public $videowidth = 425; 'videowidth' => 425,
public $videoheight = 350; 'videoheight' => 350,
public $theme_events_in_profile = true; 'events_in_profile' => true
];
private $timezone = ''; private $timezone = '';
private $profile_owner = 0; private $profile_owner = 0;

View file

@ -73,9 +73,9 @@ class OEmbed
$a = DI::app(); $a = DI::app();
$cache_key = 'oembed:' . $a->videowidth . ':' . $embedurl; $cache_key = 'oembed:' . $a->theme_info['videowidth'] . ':' . $embedurl;
$condition = ['url' => Strings::normaliseLink($embedurl), 'maxwidth' => $a->videowidth]; $condition = ['url' => Strings::normaliseLink($embedurl), 'maxwidth' => $a->theme_info['videowidth']];
$oembed_record = DBA::selectFirst('oembed', ['content'], $condition); $oembed_record = DBA::selectFirst('oembed', ['content'], $condition);
if (DBA::isResult($oembed_record)) { if (DBA::isResult($oembed_record)) {
$json_string = $oembed_record['content']; $json_string = $oembed_record['content'];
@ -111,7 +111,7 @@ class OEmbed
// but their OEmbed endpoint is only accessible by HTTPS ¯\_(ツ)_/¯ // but their OEmbed endpoint is only accessible by HTTPS ¯\_(ツ)_/¯
$href = str_replace(['http://www.youtube.com/', 'http://player.vimeo.com/'], $href = str_replace(['http://www.youtube.com/', 'http://player.vimeo.com/'],
['https://www.youtube.com/', 'https://player.vimeo.com/'], $href); ['https://www.youtube.com/', 'https://player.vimeo.com/'], $href);
$result = DI::httpRequest()->fetchFull($href . '&maxwidth=' . $a->videowidth); $result = DI::httpRequest()->fetchFull($href . '&maxwidth=' . $a->theme_info['videowidth']);
if ($result->getReturnCode() === 200) { if ($result->getReturnCode() === 200) {
$json_string = $result->getBody(); $json_string = $result->getBody();
break; break;
@ -132,7 +132,7 @@ class OEmbed
if (!empty($oembed->type) && $oembed->type != 'error') { if (!empty($oembed->type) && $oembed->type != 'error') {
DBA::insert('oembed', [ DBA::insert('oembed', [
'url' => Strings::normaliseLink($embedurl), 'url' => Strings::normaliseLink($embedurl),
'maxwidth' => $a->videowidth, 'maxwidth' => $a->theme_info['videowidth'],
'content' => $json_string, 'content' => $json_string,
'created' => DateTimeFormat::utcNow() 'created' => DateTimeFormat::utcNow()
], Database::INSERT_UPDATE); ], Database::INSERT_UPDATE);

View file

@ -1729,7 +1729,7 @@ class BBCode
$text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); $text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text);
if ($try_oembed) { if ($try_oembed) {
$text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="https://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $text); $text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '<iframe width="' . $a->theme_info['videowidth'] . '" height="' . $a->theme_info['videoheight'] . '" src="https://www.youtube.com/embed/$1" frameborder="0" ></iframe>', $text);
} else { } else {
$text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", $text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism",
'<a href="https://www.youtube.com/watch?v=$1" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=$1</a>', $text); '<a href="https://www.youtube.com/watch?v=$1" target="_blank" rel="noopener noreferrer">https://www.youtube.com/watch?v=$1</a>', $text);
@ -1744,7 +1744,7 @@ class BBCode
$text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); $text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text);
if ($try_oembed) { if ($try_oembed) {
$text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->videowidth . '" height="' . $a->videoheight . '" src="https://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $text); $text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '<iframe width="' . $a->theme_info['videowidth'] . '" height="' . $a->theme_info['videoheight'] . '" src="https://player.vimeo.com/video/$1" frameborder="0" ></iframe>', $text);
} else { } else {
$text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", $text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism",
'<a href="https://vimeo.com/$1" target="_blank" rel="noopener noreferrer">https://vimeo.com/$1</a>', $text); '<a href="https://vimeo.com/$1" target="_blank" rel="noopener noreferrer">https://vimeo.com/$1</a>', $text);

View file

@ -81,7 +81,7 @@ class BaseProfile extends BaseModule
]; ];
// the calendar link for the full featured events calendar // the calendar link for the full featured events calendar
if ($is_owner && $a->theme_events_in_profile) { if ($is_owner && $a->theme_info['events_in_profile']) {
$tabs[] = [ $tabs[] = [
'label' => DI::l10n()->t('Events'), 'label' => DI::l10n()->t('Events'),
'url' => DI::baseUrl() . '/events', 'url' => DI::baseUrl() . '/events',

View file

@ -24,8 +24,8 @@ class SmiliesTest extends MockedTest
parent::setUp(); parent::setUp();
$this->setUpVfsDir(); $this->setUpVfsDir();
$this->mockApp($this->root); $this->mockApp($this->root);
$this->app->videowidth = 425; $this->app->theme_info['videowidth'] = 425;
$this->app->videoheight = 350; $this->app->theme_info['videoheight'] = 350;
$this->configMock->shouldReceive('get') $this->configMock->shouldReceive('get')
->with('system', 'no_smilies') ->with('system', 'no_smilies')
->andReturn(false); ->andReturn(false);

View file

@ -40,8 +40,8 @@ class BBCodeTest extends MockedTest
parent::setUp(); parent::setUp();
$this->setUpVfsDir(); $this->setUpVfsDir();
$this->mockApp($this->root); $this->mockApp($this->root);
$this->app->videowidth = 425; $this->app->theme_info['videowidth'] = 425;
$this->app->videoheight = 350; $this->app->theme_info['videoheight'] = 350;
$this->configMock->shouldReceive('get') $this->configMock->shouldReceive('get')
->with('system', 'remove_multiplicated_lines') ->with('system', 'remove_multiplicated_lines')
->andReturn(false); ->andReturn(false);

View file

@ -33,8 +33,8 @@ function frio_init(App $a)
$frio = 'view/theme/frio'; $frio = 'view/theme/frio';
// disable the events module link in the profile tab // disable the events module link in the profile tab
$a->theme_events_in_profile = false; $a->theme_info['events_in_profile'] = false;
$a->videowidth = 622; $a->theme_info['videowidth'] = 622;
Renderer::setActiveTemplateEngine('smarty3'); Renderer::setActiveTemplateEngine('smarty3');

View file

@ -21,7 +21,7 @@ use Friendica\Util\Strings;
function vier_init(App $a) function vier_init(App $a)
{ {
$a->theme_events_in_profile = false; $a->theme_info['events_in_profile'] = false;
Renderer::setActiveTemplateEngine('smarty3'); Renderer::setActiveTemplateEngine('smarty3');