[Favourite] Make twig event operate on array rather than string
This commit is contained in:
parent
7a90e844b7
commit
8dff0b1d0c
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// {{{ License
|
// {{{ License
|
||||||
|
|
||||||
// This file is part of GNU social - https://www.gnu.org/software/social
|
// This file is part of GNU social - https://www.gnu.org/software/social
|
||||||
//
|
//
|
||||||
// GNU social is free software: you can redistribute it and/or modify
|
// GNU social is free software: you can redistribute it and/or modify
|
||||||
@ -15,6 +16,7 @@
|
|||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
|
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// }}}
|
// }}}
|
||||||
|
|
||||||
namespace Plugin\Favourite;
|
namespace Plugin\Favourite;
|
||||||
@ -75,7 +77,7 @@ class Favourite extends Plugin
|
|||||||
|
|
||||||
public function onInsertLeftPanelLink(string $user_nickname, &$res)
|
public function onInsertLeftPanelLink(string $user_nickname, &$res)
|
||||||
{
|
{
|
||||||
$res .= Formatting::twigRender(<<<END
|
$res[] = Formatting::twigRender(<<<END
|
||||||
<a href="{{ path("favourites", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("favourites") }}'>Favourites</a>
|
<a href="{{ path("favourites", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("favourites") }}'>Favourites</a>
|
||||||
<a href="{{ path("reverse_favourites", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("reverse_favourites") }}'>Reverse Favs</a>
|
<a href="{{ path("reverse_favourites", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("reverse_favourites") }}'>Reverse Favs</a>
|
||||||
END, ['user_nickname' => $user_nickname]);
|
END, ['user_nickname' => $user_nickname]);
|
||||||
|
@ -55,7 +55,7 @@ class Extension extends AbstractExtension
|
|||||||
new TwigFunction('is_route', [Runtime::class, 'isCurrentRoute']),
|
new TwigFunction('is_route', [Runtime::class, 'isCurrentRoute']),
|
||||||
new TwigFunction('get_note_actions', [Runtime::class, 'getNoteActions']),
|
new TwigFunction('get_note_actions', [Runtime::class, 'getNoteActions']),
|
||||||
new TwigFunction('get_note_other_content', [Runtime::class, 'getNoteOtherContent']),
|
new TwigFunction('get_note_other_content', [Runtime::class, 'getNoteOtherContent']),
|
||||||
new TwigFunction('get_show_styles', [Runtime::class, 'getShowStyles']),
|
new TwigFunction('show_stylesheets', [Runtime::class, 'getShowStylesheets']),
|
||||||
new TwigFunction('handle_event', [Runtime::class, 'handleEvent']),
|
new TwigFunction('handle_event', [Runtime::class, 'handleEvent']),
|
||||||
new TwigFunction('config', [Runtime::class, 'getConfig']),
|
new TwigFunction('config', [Runtime::class, 'getConfig']),
|
||||||
new TwigFunction('icon', [Runtime::class, 'embedSvgIcon'], ['needs_environment' => true]),
|
new TwigFunction('icon', [Runtime::class, 'embedSvgIcon'], ['needs_environment' => true]),
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
// {{{ License
|
// {{{ License
|
||||||
|
|
||||||
// This file is part of GNU social - https://www.gnu.org/software/social
|
// This file is part of GNU social - https://www.gnu.org/software/social
|
||||||
//
|
//
|
||||||
// GNU social is free software: you can redistribute it and/or modify
|
// GNU social is free software: you can redistribute it and/or modify
|
||||||
@ -16,7 +15,6 @@
|
|||||||
//
|
//
|
||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
|
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// }}}
|
// }}}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -95,16 +93,16 @@ class Runtime implements RuntimeExtensionInterface, EventSubscriberInterface
|
|||||||
*
|
*
|
||||||
* @return array|mixed
|
* @return array|mixed
|
||||||
*/
|
*/
|
||||||
public function getShowStyles()
|
public function getShowStylesheets()
|
||||||
{
|
{
|
||||||
$styles = [];
|
$styles = [];
|
||||||
Event::handle('start_show_styles',[&$styles]);
|
Event::handle('ShowStyles', [&$styles]);
|
||||||
return $styles;
|
return implode("\n", $styles);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleEvent(string $event, ...$args)
|
public function handleEvent(string $event, ...$args)
|
||||||
{
|
{
|
||||||
$res = '';
|
$res = [];
|
||||||
$args[] = &$res;
|
$args[] = &$res;
|
||||||
Event::handle($event, $args);
|
Event::handle($event, $args);
|
||||||
return $res;
|
return $res;
|
||||||
|
@ -14,10 +14,13 @@
|
|||||||
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base_mid.css') }}" media="screen and (max-width: 1300px)">
|
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base_mid.css') }}" media="screen and (max-width: 1300px)">
|
||||||
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base_small.css') }}" media="screen and (max-width: 750px)">
|
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/base_small.css') }}" media="screen and (max-width: 750px)">
|
||||||
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/reset.css') }}">
|
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/reset.css') }}">
|
||||||
{% for stylesheet in get_show_styles() %}
|
{% for stylesheet in show_stylesheets() %}
|
||||||
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/' ~ stylesheet) }}">
|
<link rel='stylesheet' type='text/css' href="{{ asset('assets/css/' ~ stylesheet) }}">
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
{% for type, element in handle_event('ShowHeadElements', app.request) %}
|
||||||
|
<{{type}} rel="{{element['rel']}}" type="{{element['type']}}" href="{{element['href']}}" title="{{element['title']}}">
|
||||||
|
{% endfor %}
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
@ -44,7 +44,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<a href='#'>Messages</a>
|
<a href='#'>Messages</a>
|
||||||
<a href="{{ path("replies", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("replies") }}'>Replies</a>
|
<a href="{{ path("replies", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("replies") }}'>Replies</a>
|
||||||
{{ handle_event('InsertLeftPanelLink', user_nickname) | raw }}
|
{% for link in handle_event('InsertLeftPanelLink', user_nickname) %}
|
||||||
|
{{ link | raw }}
|
||||||
|
{% endfor %}
|
||||||
<a href="{{ path('settings_personal_info') }}" class='hover-effect {{ active('settings_') }}'>Settings</a>
|
<a href="{{ path('settings_personal_info') }}" class='hover-effect {{ active('settings_') }}'>Settings</a>
|
||||||
<a href='{{ path('logout') }}'>Logout</a>
|
<a href='{{ path('logout') }}'>Logout</a>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user