forked from GNUsocial/gnu-social
[TWIG] Remove kludge event TwigPopulateVars
This commit is contained in:
parent
fda998e335
commit
67d62cf37b
@ -19,30 +19,8 @@
|
|||||||
|
|
||||||
namespace Component\Left;
|
namespace Component\Left;
|
||||||
|
|
||||||
use App\Core\Event;
|
|
||||||
use App\Core\Log;
|
|
||||||
use App\Core\Modules\Component;
|
use App\Core\Modules\Component;
|
||||||
use App\Util\Common;
|
|
||||||
use Exception;
|
|
||||||
|
|
||||||
class Left extends Component
|
class Left extends Component
|
||||||
{
|
{
|
||||||
public function onEndTwigPopulateVars(array &$vars)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
$user = Common::user();
|
|
||||||
if ($user != null) {
|
|
||||||
$actor = $user->getActor();
|
|
||||||
$vars['user_id'] = $user->getId();
|
|
||||||
$vars['user_nickname'] = $user->getNickname();
|
|
||||||
$vars['user_tags'] = $actor->getSelfTags();
|
|
||||||
$vars['user_followers'] = $actor->getFollowersCount();
|
|
||||||
$vars['user_followed'] = $actor->getFollowedCount();
|
|
||||||
$vars['user_avatar'] = $actor->getAvatarUrl();
|
|
||||||
}
|
|
||||||
} catch (Exception $e) {
|
|
||||||
Log::error('Got an exception while populating variables for the left panel: ' . $e);
|
|
||||||
}
|
|
||||||
return Event::next;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ class Posting extends Component
|
|||||||
* @throws RedirectException
|
* @throws RedirectException
|
||||||
* @throws ServerException
|
* @throws ServerException
|
||||||
*/
|
*/
|
||||||
public function onStartTwigPopulateVars(array &$vars): bool
|
public function onAppendRightPostingBlock(array $vars, array &$res): bool
|
||||||
{
|
{
|
||||||
if (($user = Common::user()) === null) {
|
if (($user = Common::user()) === null) {
|
||||||
return Event::next;
|
return Event::next;
|
||||||
@ -106,7 +106,7 @@ class Posting extends Component
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$vars['post_form'] = $form->createView();
|
$res = $form->createView();
|
||||||
|
|
||||||
return Event::next;
|
return Event::next;
|
||||||
}
|
}
|
||||||
|
@ -19,14 +19,8 @@
|
|||||||
|
|
||||||
namespace Component\Right;
|
namespace Component\Right;
|
||||||
|
|
||||||
use App\Core\Event;
|
|
||||||
use App\Core\Modules\Component;
|
use App\Core\Modules\Component;
|
||||||
use App\Util\Common;
|
|
||||||
|
|
||||||
class Right extends Component
|
class Right extends Component
|
||||||
{
|
{
|
||||||
public function onStartTwigPopulateVars(array &$vars)
|
|
||||||
{
|
|
||||||
return Event::next;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -71,19 +71,19 @@ class Cover extends Plugin
|
|||||||
* @param array $vars
|
* @param array $vars
|
||||||
*
|
*
|
||||||
* @return bool hook value; true means continue processing, false means stop.
|
* @return bool hook value; true means continue processing, false means stop.
|
||||||
*/
|
*
|
||||||
public function onStartTwigPopulateVars(array &$vars): bool
|
* public function onStartTwigPopulateVars(array &$vars): bool
|
||||||
{
|
* {
|
||||||
/*if (Common::user() != null) {
|
* if (Common::user() != null) {
|
||||||
$cover = DB::find('cover', ['actor_id' => Common::user()->getId()]);
|
* $cover = DB::find('cover', ['actor_id' => Common::user()->getId()]);
|
||||||
if ($cover != null) {
|
* if ($cover != null) {
|
||||||
$vars['profile_extras'][] = ['name' => 'cover', 'vars' => ['img' => '/cover']];
|
* $vars['profile_extras'][] = ['name' => 'cover', 'vars' => ['img' => '/cover']];
|
||||||
} else {
|
* } else {
|
||||||
$vars['profile_extras'][] = ['name' => 'cover', 'vars' => []];
|
* $vars['profile_extras'][] = ['name' => 'cover', 'vars' => []];
|
||||||
}
|
* }
|
||||||
}*/
|
* }
|
||||||
return Event::next;
|
* return Event::next;
|
||||||
}
|
* }*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Output our dedicated stylesheet
|
* Output our dedicated stylesheet
|
||||||
|
@ -24,6 +24,7 @@ namespace Plugin\Directory;
|
|||||||
use App\Core\Event;
|
use App\Core\Event;
|
||||||
use App\Core\Modules\Plugin;
|
use App\Core\Modules\Plugin;
|
||||||
use App\Core\Router\RouteLoader;
|
use App\Core\Router\RouteLoader;
|
||||||
|
use App\Core\Router\Router;
|
||||||
|
|
||||||
class Directory extends Plugin
|
class Directory extends Plugin
|
||||||
{
|
{
|
||||||
@ -39,17 +40,16 @@ class Directory extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Populate twig vars
|
* Add Links to menu
|
||||||
*
|
*
|
||||||
* @param array $vars
|
* @param array $res out menu items
|
||||||
*
|
*
|
||||||
* @return bool hook value; true means continue processing, false means stop.
|
* @return bool hook value; true means continue processing, false means stop.
|
||||||
*/
|
*/
|
||||||
public function onStartTwigPopulateVars(array &$vars): bool
|
public function onAddMainNavigationItem(array $vars, array &$res): bool
|
||||||
{
|
{
|
||||||
$vars['main_nav_tabs'][] = ['title' => 'Actors', 'route' => 'directory_actors'];
|
$res[] = ['title' => 'Actors', 'path' => Router::url('directory_actors', [])];
|
||||||
$vars['main_nav_tabs'][] = ['title' => 'Groups', 'route' => 'directory_groups'];
|
$res[] = ['title' => 'Groups', 'path' => Router::url('directory_groups', [])];
|
||||||
|
|
||||||
return Event::next;
|
return Event::next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,12 +27,12 @@ use App\Core\Form;
|
|||||||
use function App\Core\I18n\_m;
|
use function App\Core\I18n\_m;
|
||||||
use App\Core\Modules\NoteHandlerPlugin;
|
use App\Core\Modules\NoteHandlerPlugin;
|
||||||
use App\Core\Router\RouteLoader;
|
use App\Core\Router\RouteLoader;
|
||||||
|
use App\Core\Router\Router;
|
||||||
use App\Entity\Note;
|
use App\Entity\Note;
|
||||||
use App\Util\Common;
|
use App\Util\Common;
|
||||||
use App\Util\Exception\InvalidFormException;
|
use App\Util\Exception\InvalidFormException;
|
||||||
use App\Util\Exception\NoSuchNoteException;
|
use App\Util\Exception\NoSuchNoteException;
|
||||||
use App\Util\Exception\RedirectException;
|
use App\Util\Exception\RedirectException;
|
||||||
use App\Util\Formatting;
|
|
||||||
use App\Util\Nickname;
|
use App\Util\Nickname;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||||
@ -114,12 +114,10 @@ class Favourite extends NoteHandlerPlugin
|
|||||||
return Event::next;
|
return Event::next;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onInsertLeftPanelLink(string $user_nickname, &$res): bool
|
public function onAddProfileNavigationItem(array $vars, array &$res): bool
|
||||||
{
|
{
|
||||||
$res[] = Formatting::twigRenderString(<<<END
|
$res[] = ['title' => 'Favourites', 'path' => Router::url('actor_favourites_nickname', ['nickname' => $vars['nickname']])];
|
||||||
<a href="{{ path("actor_favourites_nickname", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("favourites") }}'>Favourites</a>
|
$res[] = ['title' => 'Reverse Favourites', 'path' => Router::url('actor_reverse_favourites_nickname', ['nickname' => $vars['nickname']])];
|
||||||
<a href="{{ path("actor_reverse_favourites_nickname", {'nickname' : user_nickname}) }}" class='hover-effect {{ active("reverse_favourites") }}'>Reverse Favs</a>
|
|
||||||
END, ['user_nickname' => $user_nickname]);
|
|
||||||
return Event::next;
|
return Event::next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,14 +70,14 @@ class Poll extends NoteHandlerPlugin
|
|||||||
* @param array $vars
|
* @param array $vars
|
||||||
*
|
*
|
||||||
* @return bool hook value; true means continue processing, false means stop.
|
* @return bool hook value; true means continue processing, false means stop.
|
||||||
*/
|
*
|
||||||
public function onStartTwigPopulateVars(array &$vars): bool
|
* public function onStartTwigPopulateVars(array &$vars): bool
|
||||||
{
|
* {
|
||||||
$vars['tabs'][] = ['title' => 'Poll',
|
* $vars['tabs'][] = ['title' => 'Poll',
|
||||||
'href' => 'newpoll',
|
* 'href' => 'newpoll',
|
||||||
];
|
* ];
|
||||||
return Event::next;
|
* return Event::next;
|
||||||
}
|
* }*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Output our dedicated stylesheet
|
* Output our dedicated stylesheet
|
||||||
|
@ -71,22 +71,22 @@ class ProfileColor extends Plugin
|
|||||||
* @param array $vars
|
* @param array $vars
|
||||||
*
|
*
|
||||||
* @return bool hook value; true means continue processing, false means stop.
|
* @return bool hook value; true means continue processing, false means stop.
|
||||||
*/
|
*
|
||||||
public function onStartTwigPopulateVars(array &$vars): bool
|
* public function onStartTwigPopulateVars(array &$vars): bool
|
||||||
{
|
* {
|
||||||
/*$vars['profile_tabs'][] = [
|
* /*$vars['profile_tabs'][] = [
|
||||||
'title' => 'Color',
|
* 'title' => 'Color',
|
||||||
'desc' => 'Change your profile color.',
|
* 'desc' => 'Change your profile color.',
|
||||||
'path' => 'profilecolor/profilecolor.html.twig',
|
* 'path' => 'profilecolor/profilecolor.html.twig',
|
||||||
];*/
|
* ];
|
||||||
if (Common::user() != null) {
|
* if (Common::user() != null) {
|
||||||
$color = DB::find('profile_color', ['actor_id' => Common::user()->getId()]);
|
* $color = DB::find('profile_color', ['actor_id' => Common::user()->getId()]);
|
||||||
if ($color != null) {
|
* if ($color != null) {
|
||||||
$vars['profile_extras'][] = ['name' => 'profilecolor', 'vars' => ['color' => $color->getColor()]];
|
* $vars['profile_extras'][] = ['name' => 'profilecolor', 'vars' => ['color' => $color->getColor()]];
|
||||||
}
|
* }
|
||||||
}
|
* }
|
||||||
return Event::next;
|
* return Event::next;
|
||||||
}
|
* }*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Output our dedicated stylesheet
|
* Output our dedicated stylesheet
|
||||||
|
@ -89,8 +89,12 @@ class Controller extends AbstractController implements EventSubscriberInterface
|
|||||||
$request = $event->getRequest();
|
$request = $event->getRequest();
|
||||||
|
|
||||||
$this->request = $request;
|
$this->request = $request;
|
||||||
$this->vars = ['controller' => $controller, 'request' => $request, 'have_user' => Common::user() !== null];
|
|
||||||
Event::handle('StartTwigPopulateVars', [&$this->vars]);
|
$this->vars = ['controller' => $controller, 'request' => $request];
|
||||||
|
$user = Common::user();
|
||||||
|
if ($user !== null) {
|
||||||
|
$this->vars['current_actor'] = $user->getActor();
|
||||||
|
}
|
||||||
|
|
||||||
$event->stopPropagation();
|
$event->stopPropagation();
|
||||||
return $event;
|
return $event;
|
||||||
@ -111,10 +115,9 @@ class Controller extends AbstractController implements EventSubscriberInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->vars = array_merge_recursive($this->vars, $response);
|
$this->vars = array_merge_recursive($this->vars, $response);
|
||||||
Event::handle('EndTwigPopulateVars', [&$this->vars]);
|
|
||||||
|
|
||||||
$template = $this->vars['_template'];
|
$template = $this->vars['_template'];
|
||||||
unset($this->vars['_template'], $this->vars['request'], $response['_template']);
|
unset($this->vars['_template'], $response['_template']);
|
||||||
|
|
||||||
// Respond in the most preferred acceptable content type
|
// Respond in the most preferred acceptable content type
|
||||||
$accept = $request->getAcceptableContentTypes() ?: ['text/html'];
|
$accept = $request->getAcceptableContentTypes() ?: ['text/html'];
|
||||||
|
@ -265,7 +265,7 @@ class Actor extends Entity
|
|||||||
Cache::delete('selftags-' . $this->id);
|
Cache::delete('selftags-' . $this->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFollowersCount()
|
public function getSubscribersCount()
|
||||||
{
|
{
|
||||||
return Cache::get('followers-' . $this->id,
|
return Cache::get('followers-' . $this->id,
|
||||||
function () {
|
function () {
|
||||||
@ -274,7 +274,7 @@ class Actor extends Entity
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFollowedCount()
|
public function getSubscriptionsCount()
|
||||||
{
|
{
|
||||||
return Cache::get('followed-' . $this->id,
|
return Cache::get('followed-' . $this->id,
|
||||||
function () {
|
function () {
|
||||||
|
@ -113,7 +113,7 @@ abstract class Common
|
|||||||
|
|
||||||
public static function actor(): ?Actor
|
public static function actor(): ?Actor
|
||||||
{
|
{
|
||||||
return self::user()->getActor();
|
return self::user()?->getActor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function userNickname(): ?string
|
public static function userNickname(): ?string
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<div class="h-feed hfeed notes">
|
<div class="h-feed hfeed notes">
|
||||||
{% if notes is defined and notes is not empty %}
|
{% if notes is defined and notes is not empty %}
|
||||||
{% for conversation in notes %}
|
{% for conversation in notes %}
|
||||||
{% include '/note/view.html.twig' with {'note': conversation['note'], 'have_user': have_user, 'replies': conversation['replies']} only %}
|
{% include '/note/view.html.twig' with {'note': conversation['note'], 'replies': conversation['replies']} only %}
|
||||||
<hr tabindex="0" title="{{ 'End of note and replies.' | trans }}">
|
<hr tabindex="0" title="{{ 'End of note and replies.' | trans }}">
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -16,21 +16,19 @@
|
|||||||
|
|
||||||
{% if app.user %}
|
{% if app.user %}
|
||||||
<div class="note-actions">
|
<div class="note-actions">
|
||||||
{% if have_user %}
|
{% for current_action in get_note_actions(note) %}
|
||||||
{% for current_action in get_note_actions(note) %}
|
{{ form_start(current_action) }}
|
||||||
{{ form_start(current_action) }}
|
{% if current_action.submit_favourite is defined %}
|
||||||
{% if current_action.submit_favourite is defined %}
|
{{ form_widget(current_action.submit_favourite) }}
|
||||||
{{ form_widget(current_action.submit_favourite) }}
|
{% endif %}
|
||||||
{% endif %}
|
{% if current_action.submit_repeat is defined %}
|
||||||
{% if current_action.submit_repeat is defined %}
|
{{ form_widget(current_action.submit_repeat) }}
|
||||||
{{ form_widget(current_action.submit_repeat) }}
|
{% endif %}
|
||||||
{% endif %}
|
{% if current_action.reply is defined %}
|
||||||
{% if current_action.reply is defined %}
|
{{ form_widget(current_action.reply) }}
|
||||||
{{ form_widget(current_action.reply) }}
|
{% endif %}
|
||||||
{% endif %}
|
{{ form_end(current_action) }}
|
||||||
{{ form_end(current_action) }}
|
{% endfor %}
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -6,12 +6,13 @@
|
|||||||
<aside class="panel-content accessibility-target">
|
<aside class="panel-content accessibility-target">
|
||||||
{% if app.user %}
|
{% if app.user %}
|
||||||
<section class='section-widget section-widget-padded' title="{{ 'Your profile information.' | trans }}">
|
<section class='section-widget section-widget-padded' title="{{ 'Your profile information.' | trans }}">
|
||||||
<a id="user" href="{{ path('actor_view_nickname', {'nickname' : user_nickname}) }}">
|
<a id="user" href="{{ path('actor_view_nickname', {'nickname' : current_actor.getNickname()}) }}">
|
||||||
<img src='{{ user_avatar }}' class="icon icon-avatar" alt="{{ 'Your account\'s avatar.' | trans }}">
|
<img src='{{ current_actor.getAvatarUrl() }}' class="icon icon-avatar" alt="{{ 'Your account\'s avatar.' | trans }}">
|
||||||
<div class="user-info">
|
<div class="user-info">
|
||||||
<strong id="user-nickname" title="{{ 'Your account\' nickname.' | trans }}">{{ user_nickname }}</strong>
|
<strong id="user-nickname" title="{{ 'Your account\' nickname.' | trans }}">{{ current_actor.getNickname() }}</strong>
|
||||||
|
|
||||||
<nav class="user-tags">
|
<nav class="user-tags">
|
||||||
|
{% set user_tags = current_actor.getSelfTags() %}
|
||||||
{% if user_tags %}
|
{% if user_tags %}
|
||||||
{% for tag in user_tags %}
|
{% for tag in user_tags %}
|
||||||
<a href='#'> #{{ tag }}</a>
|
<a href='#'> #{{ tag }}</a>
|
||||||
@ -22,28 +23,26 @@
|
|||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<section id="user-stats">
|
<section id="user-stats">
|
||||||
{% if user_followers %}<h2>{{ 'Followers' | trans }} {{ user_followers }}</h2> {% endif %}
|
<h2>{{ 'Subscriptions' | trans }} {{ current_actor.getSubscriptionsCount() }}</h2>
|
||||||
{% if user_followed %}<h2>{{ 'Followed' | trans }} {{ user_followed }}</h2> {% endif %}
|
<h2>{{ 'Subscribers' | trans }} {{ current_actor.getSubscribersCount() }}</h2>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
||||||
{# {% for extra in profile_extras %}
|
|
||||||
{% include '/'~ extra.name ~ '/view.html.twig' with {'vars': extra.vars} only %}
|
|
||||||
{% endfor %} #}
|
|
||||||
|
|
||||||
<nav tabindex="0" class="profile-navigation" title="{{ 'Navigate through account related pages.' | trans }}">
|
<nav tabindex="0" class="profile-navigation" title="{{ 'Navigate through account related pages.' | trans }}">
|
||||||
<a title='{{ 'Your messages.' | trans }}' href='{{ path('settings') }}' class='{{ active("replies") }}'>
|
<a title='{{ 'Your messages.' | trans }}' href='{{ path('settings') }}' class='{{ active("replies") }}'>
|
||||||
Messages
|
Messages
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a title='{{ 'Replies to your notes.' | trans }}' href="{{ path('replies', {'nickname' : user_nickname}) }}" class='{{ active("replies") }}'>
|
<a title='{{ 'Replies to your notes.' | trans }}' href="{{ path('replies', {'nickname' : current_actor.getNickname()}) }}" class='{{ active("replies") }}'>
|
||||||
Replies
|
Replies
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% for link in handle_event('InsertLeftPanelLink', user_nickname) %}
|
|
||||||
{{ link | raw }}
|
{% for tab in handle_event('AddProfileNavigationItem', {'nickname': current_actor.getNickname()}) %}
|
||||||
|
<a href="{{ tab['path'] }}">
|
||||||
|
{{ tab['title'] }}
|
||||||
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<a title='{{ 'Access your account settings.' | trans }}' href="{{ path('settings') }}" class='{{ active('settings') }}'>
|
<a title='{{ 'Access your account settings.' | trans }}' href="{{ path('settings') }}" class='{{ active('settings') }}'>
|
||||||
@ -85,8 +84,8 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
{% if user_nickname is defined %}
|
{% if app.user %}
|
||||||
<a href="{{ path("home_all", {'nickname' : user_nickname}) }}" class='{{ active("home_all") }}'>
|
<a href="{{ path("home_all", {'nickname' : current_actor.getNickname()}) }}" class='{{ active("home_all") }}'>
|
||||||
Home
|
Home
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -97,11 +96,11 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
{% if main_nav_tabs is defined %}
|
{% if app.user %}
|
||||||
{% for tab in main_nav_tabs %}
|
{% for link in handle_event('AddMainNavigationItem', {'nickname': current_actor.getNickname()}) %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ path(tab['route']) }}" class='{{ active(tab['route']) }}'>
|
<a href="{{ link['path'] }}">
|
||||||
{{ tab['title'] }}
|
{{ link['title'] }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -5,39 +5,34 @@
|
|||||||
<a id="anchor-right-panel" class="anchor-hidden" title="{{ 'Press tab to access selected region!' | trans }}"></a>
|
<a id="anchor-right-panel" class="anchor-hidden" title="{{ 'Press tab to access selected region!' | trans }}"></a>
|
||||||
<aside class="panel-content accessibility-target">
|
<aside class="panel-content accessibility-target">
|
||||||
|
|
||||||
{% if post_form is defined and not post_form.isRendered() %}
|
{% set post_form = handle_event('AppendRightPostingBlock', {'request': request}) %}
|
||||||
<section class="section-widget" title={{ 'Create a new note.' | trans }}>
|
<section class="section-widget" title={{ 'Create a new note.' | trans }}>
|
||||||
<details class="section-title-details" title={{ 'Expand if you want to access more options.' | trans }}>
|
<details class="section-title-details" title={{ 'Expand if you want to access more options.' | trans }}>
|
||||||
<summary class="section-title-summary">
|
<summary class="section-title-summary">
|
||||||
{{ "Create a note" | trans }}{{ icon('arrow-down', 'icon icon-details-open') | raw }}
|
{{ "Create a note" | trans }}{{ icon('arrow-down', 'icon icon-details-open') | raw }}
|
||||||
</summary>
|
</summary>
|
||||||
|
</details>
|
||||||
|
|
||||||
{% for tab in tabs %}
|
<div class="section-form">
|
||||||
<a class="section-title-menu-element" href={{ path(tab['href']) }}>{{ tab['title'] }}</a>
|
<fieldset>
|
||||||
{% endfor %}
|
{{ form_start(post_form) }}
|
||||||
</details>
|
|
||||||
|
|
||||||
<div class="section-form">
|
{{ form_row(post_form.to, {'attr': {'class': 'section-form-scope'}}) }}
|
||||||
<fieldset>
|
|
||||||
{{ form_start(post_form) }}
|
|
||||||
|
|
||||||
{{ form_row(post_form.to, {'attr': {'class': 'section-form-scope'}}) }}
|
{{ form_row(post_form.visibility, {'attr': {'class': 'section-form-scope'}}) }}
|
||||||
|
|
||||||
{{ form_row(post_form.visibility, {'attr': {'class': 'section-form-scope'}}) }}
|
{{ form_row(post_form.content, {'attr': {'class': 'section-form-textarea'}}) }}
|
||||||
|
|
||||||
{{ form_row(post_form.content, {'attr': {'class': 'section-form-textarea'}}) }}
|
<label for="{{ post_form.attachments.vars.id }}" class="section-form-options">
|
||||||
|
{{ form_widget(post_form.attachments) }}
|
||||||
|
</label>
|
||||||
|
|
||||||
<label for="{{ post_form.attachments.vars.id }}" class="section-form-options">
|
{{ form_row(post_form.post_note, {'attr': {'class': 'section-form-send'}}) }}
|
||||||
{{ form_widget(post_form.attachments) }}
|
|
||||||
</label>
|
|
||||||
|
|
||||||
{{ form_row(post_form.post_note, {'attr': {'class': 'section-form-send'}}) }}
|
{{ form_end(post_form) }}
|
||||||
|
</fieldset>
|
||||||
{{ form_end(post_form) }}
|
</div>
|
||||||
</fieldset>
|
</section>
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% set current_path = app.request.get('_route') %}
|
{% set current_path = app.request.get('_route') %}
|
||||||
{% if right_panel_vars is defined %}
|
{% if right_panel_vars is defined %}
|
||||||
|
Loading…
Reference in New Issue
Block a user