use SVG icon and anonymous functions

master
Jean-Christian Paul Denis 2022-11-25 23:11:54 +01:00
parent 945b9403b6
commit fb95e17566
Signed by: JcDenis
GPG Key ID: 1B5B8C5B90B6C951
4 changed files with 78 additions and 70 deletions

View File

@ -18,34 +18,30 @@ require_once __DIR__ . '/_widgets.php';
dcCore::app()->menu[dcAdmin::MENU_PLUGINS]->addItem(
__('My cinecturlink'),
dcCore::app()->adminurl->get('admin.plugin.cinecturlink2'),
dcPage::getPF('cinecturlink2/icon.png'),
preg_match(
'/' . preg_quote(dcCore::app()->adminurl->get('admin.plugin.cinecturlink2')) . '(&.*)?$/',
$_SERVER['REQUEST_URI']
),
dcCore::app()->auth->check(dcAuth::PERMISSION_CONTENT_ADMIN, dcCore::app()->blog->id)
cinecturlink2AdminUrl(),
cinecturlink2AdminIcon(),
preg_match('/' . preg_quote(cinecturlink2AdminUrl()) . '(&.*)?$/', $_SERVER['REQUEST_URI']),
cinecturlink2AdmiPerm(),
);
dcCore::app()->addBehavior(
'adminColumnsListsV2',
['cinecturlink2AdminBehaviors', 'adminColumnsLists']
);
dcCore::app()->addBehavior('adminColumnsListsV2', function (ArrayObject $cols) {
$cols['c2link'] = [
__('Cinecturlink'),
[
'date' => [true, __('Date')],
'cat' => [true, __('Category')],
'author' => [true, __('Author')],
'desc' => [false, __('Description')],
'link' => [true, __('Liens')],
'note' => [true, __('Rating')],
],
];
});
dcCore::app()->addBehavior(
'adminFiltersListsV2',
['cinecturlink2AdminBehaviors', 'adminFiltersLists']
);
dcCore::app()->addBehavior(
'adminDashboardFavoritesV2',
['cinecturlink2AdminBehaviors', 'adminDashboardFavorites']
);
class cinecturlink2AdminBehaviors
{
public static function adminSortbyCombo()
{
return [
dcCore::app()->addBehavior('adminFiltersListsV2', function (ArrayObject $sorts) {
$sorts['c2link'] = [
__('Cinecturlink'),
[
__('Date') => 'link_upddt',
__('Title') => 'link_title',
__('Category') => 'cat_id',
@ -53,51 +49,34 @@ class cinecturlink2AdminBehaviors
__('Description') => 'link_desc',
__('Link') => 'link_url',
__('Rating') => 'link_note',
];
}
],
'link_upddt',
'desc',
[__('Links per page'), 30],
];
});
public static function adminColumnsLists($cols)
{
$cols['c2link'] = [
__('Cinecturlink'),
[
'date' => [true, __('Date')],
'cat' => [true, __('Category')],
'author' => [true, __('Author')],
'desc' => [false, __('Description')],
'link' => [true, __('Liens')],
'note' => [true, __('Rating')],
],
];
}
dcCore::app()->addBehavior('adminDashboardFavoritesV2', function (dcFavorites $favs) {
$favs->register('cinecturlink2', [
'title' => __('My cinecturlink'),
'url' => cinecturlink2AdminUrl() . '#links',
'small-icon' => cinecturlink2AdminIcon(),
'large-icon' => cinecturlink2AdminIcon(),
'permissions' => cinecturlink2AdmiPerm(),
]);
});
public static function adminFiltersLists($sorts)
{
$sorts['c2link'] = [
__('Cinecturlink'),
self::adminSortbyCombo(),
'link_upddt',
'desc',
[__('Links per page'), 30],
];
}
public static function adminDashboardFavorites($favs)
{
$favs->register('cinecturlink2', [
'title' => __('My cinecturlink'),
'url' => dcCore::app()->adminurl->get('admin.plugin.cinecturlink2') . '#links',
'small-icon' => dcPage::getPF('cinecturlink2/icon.png'),
'large-icon' => dcPage::getPF('cinecturlink2/icon-big.png'),
'permissions' => dcCore::app()->auth->check('contentadmin', dcCore::app()->blog->id),
'active_cb' => ['cinecturlink2AdminBehaviors', 'adminDashboardFavoritesActive'],
]);
}
public static function adminDashboardFavoritesActive($request, $params)
{
return $request == 'plugin.php'
&& isset($params['p'])
&& $params['p'] == 'cinecturlink2';
}
function cinecturlink2AdminUrl(): string
{
return dcCore::app()->adminurl->get('admin.plugin.cinecturlink2');
}
function cinecturlink2AdminIcon(): string
{
return urldecode(dcPage::getPF('cinecturlink2/icon.svg'));
}
function cinecturlink2AdmiPerm(): bool
{
return dcCore::app()->auth->check(dcAuth::PERMISSION_CONTENT_ADMIN, dcCore::app()->blog->id);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

BIN
icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 708 B

29
icon.svg 100644
View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="64px" height="64px" viewBox="0 0 64 64" enable-background="new 0 0 64 64" xml:space="preserve"> <image id="image0" width="64" height="64" x="0" y="0"
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA81BMVEUAAAACPWIHWIsKbakO
fcERi9YUmOloIiiSND2yQErLTFjgVWL0XmsJWIgThMgAGCoMYJIDM1IOZp0GSHARdLEFQ2gEPmEA
ChQIT3nivqwDOlsOaqLkysoNZZv////k1+X////k3fH////j2vHi1vHh0/H///3hzeXhv8oIUYjg
s6YAGj0FQ3MNZZsAAxQGR3MAHj0KWIgDOlsPbqkPbacABhQAJT0EOlwXo/oarf8cuP//ZXT/bXz/
c4MWjtkZmegbo/cZmukYk98SebkXidAUf8ETersXjtcVhcoWidAUgcoTfsoRc7sPbKwQcKwYkNr/
//8ebNpyAAAAOHRSTlMAKVV/qdT+KVV/qdT+f/4pqVXUf/5/fxupDXH+YvAquFTwYvDw8Cq4YsYN
R6n+KalV1H/+1ClVVUzuRQAAAAABYktHRB5yCiArAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAB3RJ
TUUH5gsZFyIg072oJgAAAxBJREFUWMPll9la6jAUhS0tnagjxXkAxVlQcAIBhaq1OL7/25xkp5lK
S8P5vDond9lk/VlrtwkwN/fvDq2gC6Ogzaw2iqYwisYsDK2A1J3ugzC6HXUGlstqztAVCJrO5EgC
g+G6ppFnAm1vMjkyDcMQkDkm6PZ47yLbDXoS++ia0wiabsarDPnJ4WdqmLmEWJ/hk7nLJFB9Vqdo
fzIJhWJX0WKxkPqp0VFtUsfQsj6brp+6CgLk6RlhMgQEyNdTwmQIMJCaLX2rpIVk1bId2+Ifoymf
p+4lFy3bLXklhxEsp+TxeaoF3URPx9TZ+l5/0PfceFPL8foDNKcEaXEa1C6h9UjRc22uFwgpGaSS
5fYGZPRci/MQoWRnZZBMMUGscLyBBEzLMG8KSC4YeI40pxbAsDmfALBQ3AEBJOdxBhmwIFiiTaMC
3hMKgAwLmQBBQQTcQhZgcelRaortel6vzwTwHkFBBDwuLTLB8srTUATgN9f1uIDOaRMxYPi0sswE
ZX80TLxa4JsJ4jl9jAAY+eVcABPEfaEJUgBBEiALkoYwIBAAFT8YyS83PEohAfCYIfwejAK/IgGG
4nVEXgWeQObhS2k4CRAutPj8MgNETw8jXGoyYNUPUBMS55mf/4QfOAnDIPBXqX5t/RkAtA0QOKnn
AeD7AwGe19dIZWNz64UAiAXZ8IQf8gWGAC9bmxtQ2d55DXAP6BnHBgQ9HGdhDpcB7kHwurONC7t7
4RsCPHCAI92ocDKEOQGgxxi8hXu7qFCtRTJg6p0uAaJaFRX2a9FYipAzeIRxVNtngGBWQPCrgOjv
ABEH0C6qA6CHMeAgYl1UBpAeRge/A6hHkGE2ACSI6hhQrb+zJigDSAve61UMOPxgGVQBcYKPQww4
Ov5kGZQBJMHn8RGunJx+hdjCbIBxFH6dnkDl7PyiEUKGjJ+g8kD3ASQIGxfnZ3GtefkNGVR/pUGC
78smL161sIUfFQPYwg820LoSas12q3Ht36j8JcK38o1/3Wi1m2Lx9q5dKd8r/rHT7suV9t2t2uL/
YfwBJP7235/iqlEAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjItMTEtMjVUMjI6MzQ6MzIrMDE6MDCO
u5+PAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTExLTI1VDIyOjM0OjMyKzAxOjAw/+YnMwAAABp0
RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTFH80I3AAAAAElFTkSuQmCC" />
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB