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:
@@ -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);
|
||||
};
|
||||
|
@@ -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 }}">
|
||||
|
48
site/plugins/admin/twig/IconAdminTwigExtension.php
Normal file
48
site/plugins/admin/twig/IconAdminTwigExtension.php
Normal 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user