1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-21 20:35:12 +02:00

feat(admin-plugin): add IconTwigExtension

This commit is contained in:
Awilum
2020-01-28 19:17:26 +03:00
parent 220b29568c
commit d1fdd980e8
3 changed files with 58 additions and 4 deletions

View File

@@ -30,6 +30,10 @@ $flextype->registry->set('admin_navigation.settings.api', ['title' => __('admin_
// Add Global Vars Admin Twig Extension
$flextype->view->addExtension(new GlobalVarsAdminTwigExtension($flextype));
// Add Icon Admin Twig Extension
$flextype->view->addExtension(new IconAdminTwigExtension($flextype));
$flextype['DashboardController'] = static function ($container) {
return new DashboardController($container);
};

View File

@@ -42,13 +42,15 @@
</button>
<div class="js-dropdown dropdown">
<a class="dropdown__item" href="{{ path_for('admin.api_tokens.edit') }}?api={{ api }}&api_token={{ token.dirname }}">
<i class="dropdown__icon">{{ filesystem_read(PATH_PLUGINS ~ '/admin/assets/icons/solid/edit.svg')|raw }}</i>
{{ tr('admin_edit') }}</a>
<i class="dropdown__icon">{{ icon('fas fa-edit') }}</i>
{{ tr('admin_edit') }}
</a>
<div class="dropdown__divider"></div>
<a class="dropdown__item" href="javascript:;" onclick="event.preventDefault();
document.getElementById('delete-api-token-id-{{ token.dirname }}').submit();">
<i class="dropdown__icon">{{ filesystem_read(PATH_PLUGINS ~ '/admin/assets/icons/solid/trash-alt.svg')|raw }}</i>
{{ tr('admin_delete') }}</a>
<i class="dropdown__icon">{{ icon('fas fa-trash-alt') }}</i>
{{ tr('admin_delete') }}
</a>
<form id="delete-api-token-id-{{ token.dirname }}" action="{{ path_for('admin.api_tokens.deleteProcess') }}" method="POST" style="display: none;">
{{ csrf() }}
<input type="hidden" name="api" value="{{ api }}">

View File

@@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
/**
* Flextype (http://flextype.org)
* Founded by Sergey Romanenko and maintained by Flextype Community.
*/
namespace Flextype;
use Flextype\Component\Filesystem\Filesystem;
use Twig_Extension;
use Twig_SimpleFunction;
class IconAdminTwigExtension extends Twig_Extension
{
/**
* Callback for twig.
*
* @return array
*/
public function getFunctions() : array
{
return [
new Twig_SimpleFunction('icon', [$this, 'icon'], ['is_safe' => ['html']])
];
}
public function icon($value)
{
$icon_parts = explode(" ", $value);
if ($icon_parts[0] == 'fas') {
$icon_category = 'solid';
} elseif ($icon_parts[0] == 'fab') {
$icon_category = 'brands';
} elseif ($icon_parts[0] == 'far') {
$icon_category = 'regular';
}
$icon_name = str_replace("fa-", "", $icon_parts[1]);
$icon = Filesystem::read(PATH['plugins'] . '/admin/assets/icons/' . $icon_category . '/' . $icon_name . '.svg');
return $icon;
}
}