Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/PHP-CS-Fixer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
run: composer install --prefer-dist --no-progress

- name: Run PHP CS Fixer
run: vendor/bin/php-cs-fixer fix . --diff --verbose
run: PHP_CS_FIXER_IGNORE_ENV=1 vendor/bin/php-cs-fixer fix . --diff --verbose

- name: Commit and push fixed files
uses: stefanzweifel/git-auto-commit-action@v4
Expand Down
2 changes: 1 addition & 1 deletion .php-cs-fixer.cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"php":"8.3.25","version":"3.64.0:v3.64.0#58dd9c931c785a79739310aef5178928305ffa67","indent":" ","lineEnding":"\n","rules":{"binary_operator_spaces":{"default":"at_least_single_space"},"blank_line_after_opening_tag":true,"blank_line_between_import_groups":true,"blank_lines_before_namespace":true,"braces_position":{"allow_single_line_empty_anonymous_classes":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_type_declaration":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_parentheses":true,"no_blank_lines_after_class_opening":true,"no_extra_blank_lines":{"tokens":["use"]},"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":{"imports_order":["class","function","const"],"sort_algorithm":"none"},"return_type_declaration":true,"short_scalar_cast":true,"single_import_per_statement":{"group_to_single_imports":false},"single_space_around_construct":{"constructs_followed_by_a_single_space":["abstract","as","case","catch","class","const_import","do","else","elseif","final","finally","for","foreach","function","function_import","if","insteadof","interface","namespace","new","private","protected","public","static","switch","trait","try","use","use_lambda","while"],"constructs_preceded_by_a_single_space":["as","else","elseif","use_lambda"]},"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"unary_operator_spaces":{"only_dec_inc":true},"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"control_structure_braces":true,"control_structure_continuation_position":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"attribute_placement":"ignore","on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_multiple_statements_per_line":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_after_imports":true,"spaces_inside_parentheses":true,"statement_indentation":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true},"hashes":{"boot.php":"500a96fae5d036cc7cace6094bdca28f","pages\/config.php":"cae53f73bf533cc8bb59dadf1cbdebe4","pages\/index.php":"daf2b1a819e7a27391553c599d053802","fragments\/QuickNavigation\/NoResult.php":"9b879a1abf902a8aa81cb9e6ce5d921a","fragments\/QuickNavigation\/Dropdown.php":"7cc52d767a1b8fa704e4d89c9a3e48a7","fragments\/QuickNavigation\/MinibarList.php":"6c40eb3f991f48d730f45b8d222914b1","fragments\/QuickNavigation\/List.php":"e90ddecd29ce153eec1083841a3088e2","update.php":"d6e8377314743b0306a045ec165b99ea","lib\/rex_api_quicknavigation_media_search.php":"76ec8e934d1525c986bee325bc37e954","lib\/QuickNavigation\/QuickNavigation.php":"e7879d206a5a091437921d1570285cd9","lib\/QuickNavigation\/ApiFunction\/MenuRender.php":"fa555351a229780f110eba970ed42a59","lib\/QuickNavigation\/ApiFunction\/MediaSearch.php":"b77c2fde9791ab25dfc9e6d7f5e8a329","lib\/QuickNavigation\/LinkMap\/QuickNavigationLinkMap.php":"3060d0975067e724f1dd427eadb02d47","lib\/QuickNavigation\/Button\/ArticleHistoryButton.php":"b60589453343c834038edfd26f3c7220","lib\/QuickNavigation\/Button\/ButtonInterface.php":"943bf3db82d39b6854401e16fe7e36b6","lib\/QuickNavigation\/Button\/ButtonRegistry.php":"0ecf7951feeb0b3524fa1b8c92ac6288","lib\/QuickNavigation\/Button\/FavoriteButton.php":"382a3446b216ca0aaef31fa2f21e82d4","lib\/QuickNavigation\/Button\/CategoryButton.php":"fa0637c3410b461739392b4f4aa50c9d","lib\/QuickNavigation\/Button\/ArticleNavigationButton.php":"0036d750da4417a5cf81bda896b01de7","lib\/QuickNavigation\/Button\/YformButton.php":"b44a64de32aef2e566d0febca56f6128","lib\/QuickNavigation\/Button\/WatsonButton.php":"ef0d3641591e83b6e7dfec54008e36a8","lib\/QuickNavigation\/QuickNavigationApi.php":"4eabc25eae94790b9095085102dc278a","lib\/QuickNavigation\/Utility\/BuildNavigationArray.php":"d2a23cc394de4fd4e83bb34da8b3c0bc","lib\/QuickNavigation\/Minibar\/ArticleHistoryElement.php":"fa606bdfb8e44afdcd46695f36b5d327","lib\/QuickNavigation\/Media\/MediaSorter.php":"161a68caa4895fe8887470db5265ea82","lib\/QuickNavigation\/Media\/QuickNavigationMedia.php":"624d087e36608a981f2276f37737c71a","lib\/QuickNavigation\/rex_api_quicknavigation_render.php":"bf8a3f8aa45712984014768a68ba441f","lib\/LinkMap\/QuickNavigationLinkMap.php":"3060d0975067e724f1dd427eadb02d47","lib\/Utility\/BuildNavigationArray.php":"d2a23cc394de4fd4e83bb34da8b3c0bc","lib\/Minibar\/ArticleHistoryElement.php":"fa606bdfb8e44afdcd46695f36b5d327","lib\/QuickNavigationApi.php":"4eabc25eae94790b9095085102dc278a","lib\/ApiFunction\/MenuRender.php":"fa555351a229780f110eba970ed42a59","lib\/ApiFunction\/MediaSearch.php":"b77c2fde9791ab25dfc9e6d7f5e8a329","lib\/Button\/FavoriteButton.php":"382a3446b216ca0aaef31fa2f21e82d4","lib\/Button\/ButtonRegistry.php":"0ecf7951feeb0b3524fa1b8c92ac6288","lib\/Button\/YformButton.php":"b44a64de32aef2e566d0febca56f6128","lib\/Button\/ArticleHistoryButton.php":"b60589453343c834038edfd26f3c7220","lib\/Button\/ButtonInterface.php":"943bf3db82d39b6854401e16fe7e36b6","lib\/Button\/ArticleNavigationButton.php":"0036d750da4417a5cf81bda896b01de7","lib\/Button\/WatsonButton.php":"ef0d3641591e83b6e7dfec54008e36a8","lib\/Button\/CategoryButton.php":"fa0637c3410b461739392b4f4aa50c9d","lib\/Media\/MediaSorter.php":"161a68caa4895fe8887470db5265ea82","lib\/Media\/QuickNavigationMedia.php":"624d087e36608a981f2276f37737c71a","lib\/QuickNavigation.php":"e7879d206a5a091437921d1570285cd9","lib\/rex_api_quicknavigation_render.php":"bf8a3f8aa45712984014768a68ba441f","lib\/QuickNavigation\/rex_api_quicknavigation_media_search.php":"76ec8e934d1525c986bee325bc37e954"}}
{"php":"8.3.25","version":"3.64.0:v3.64.0#58dd9c931c785a79739310aef5178928305ffa67","indent":" ","lineEnding":"\n","rules":{"binary_operator_spaces":{"default":"at_least_single_space"},"blank_line_after_opening_tag":true,"blank_line_between_import_groups":true,"blank_lines_before_namespace":true,"braces_position":{"allow_single_line_empty_anonymous_classes":true},"class_definition":{"inline_constructor_arguments":false,"space_before_parenthesis":true},"compact_nullable_type_declaration":true,"declare_equal_normalize":true,"lowercase_cast":true,"lowercase_static_reference":true,"new_with_parentheses":true,"no_blank_lines_after_class_opening":true,"no_extra_blank_lines":{"tokens":["use"]},"no_leading_import_slash":true,"no_whitespace_in_blank_line":true,"ordered_class_elements":{"order":["use_trait"]},"ordered_imports":true,"return_type_declaration":true,"short_scalar_cast":true,"single_import_per_statement":{"group_to_single_imports":false},"single_space_around_construct":{"constructs_followed_by_a_single_space":["abstract","as","case","catch","class","const_import","do","else","elseif","final","finally","for","foreach","function","function_import","if","insteadof","interface","namespace","new","private","protected","public","static","switch","trait","try","use","use_lambda","while"],"constructs_preceded_by_a_single_space":["as","else","elseif","use_lambda"]},"single_trait_insert_per_statement":true,"ternary_operator_spaces":true,"unary_operator_spaces":{"only_dec_inc":true},"visibility_required":true,"blank_line_after_namespace":true,"constant_case":true,"control_structure_braces":true,"control_structure_continuation_position":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":{"attribute_placement":"ignore","on_multiline":"ensure_fully_multiline"},"no_break_comment":true,"no_closing_tag":true,"no_multiple_statements_per_line":true,"no_space_around_double_colon":true,"no_spaces_after_function_name":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":{"elements":["property"]},"single_line_after_imports":true,"spaces_inside_parentheses":true,"statement_indentation":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"no_unused_imports":true,"single_quote":true,"trailing_comma_in_multiline":true},"hashes":{"fragments\/QuickNavigation\/Dropdown.php":"7cc52d767a1b8fa704e4d89c9a3e48a7","fragments\/QuickNavigation\/List.php":"e90ddecd29ce153eec1083841a3088e2","fragments\/QuickNavigation\/NoResult.php":"9b879a1abf902a8aa81cb9e6ce5d921a","fragments\/QuickNavigation\/MinibarList.php":"6c40eb3f991f48d730f45b8d222914b1","pages\/config.php":"cae53f73bf533cc8bb59dadf1cbdebe4","pages\/index.php":"daf2b1a819e7a27391553c599d053802","lib\/LinkMap\/QuickNavigationLinkMap.php":"3060d0975067e724f1dd427eadb02d47","lib\/Utility\/BuildNavigationArray.php":"d2a23cc394de4fd4e83bb34da8b3c0bc","lib\/Minibar\/ArticleHistoryElement.php":"fa606bdfb8e44afdcd46695f36b5d327","lib\/QuickNavigationApi.php":"4eabc25eae94790b9095085102dc278a","lib\/ApiFunction\/MenuRender.php":"fa555351a229780f110eba970ed42a59","lib\/ApiFunction\/MediaSearch.php":"04d4e816aa6766f1f2bf889482187287","lib\/Button\/FavoriteButton.php":"c8163f9adb12699453fe458de325515e","lib\/Button\/ButtonRegistry.php":"0ecf7951feeb0b3524fa1b8c92ac6288","lib\/Button\/YformButton.php":"cb3c1d7608735d18b5732b7425f3c14a","lib\/Button\/ArticleHistoryButton.php":"3851f59535b0647f184a5d706da08aba","lib\/Button\/ButtonInterface.php":"943bf3db82d39b6854401e16fe7e36b6","lib\/Button\/ArticleNavigationButton.php":"a81f2e97e73f235cba29ffcad4db1854","lib\/Button\/WatsonButton.php":"ef0d3641591e83b6e7dfec54008e36a8","lib\/Button\/CategoryButton.php":"3854696ad9b32dffad7d25d881fd2b18","lib\/Media\/MediaSorter.php":"4af98d56992a2e58b4d440ff1545af50","lib\/Media\/QuickNavigationMedia.php":"aa21d3042a12fc77d87e15ccb9c66319","lib\/QuickNavigation.php":"9a208b43632faa9d39923ff64c22f056","update.php":"599fd370563dc5811b440c0ae86309d7","boot.php":"85e4410621c51370487316f2c7de01b4"}}
19 changes: 19 additions & 0 deletions .php-cs-fixer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

$finder = (new PhpCsFixer\Finder())
->in(__DIR__)
->exclude(['vendor'])
->name('*.php')
->ignoreDotFiles(true)
->ignoreVCS(true);

return (new PhpCsFixer\Config())
->setRules([
'@PSR12' => true,
'array_syntax' => ['syntax' => 'short'],
'no_unused_imports' => true,
'ordered_imports' => true,
'single_quote' => true,
'trailing_comma_in_multiline' => true,
])
->setFinder($finder);
7 changes: 3 additions & 4 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@

namespace FriendsOfRedaxo\QuickNavigation;

use FriendsOfRedaxo\QuickNavigation\ApiFunction\MenuRender;
use FriendsOfRedaxo\QuickNavigation\ApiFunction\MediaSearch;
use FriendsOfRedaxo\QuickNavigation\ApiFunction\MenuRender;
use FriendsOfRedaxo\QuickNavigation\Button\ArticleHistoryButton;
use FriendsOfRedaxo\QuickNavigation\Button\ButtonRegistry;
use FriendsOfRedaxo\QuickNavigation\Button\ArticleNavigationButton;
use FriendsOfRedaxo\QuickNavigation\Button\ButtonRegistry;
use FriendsOfRedaxo\QuickNavigation\Button\CategoryButton;
use FriendsOfRedaxo\QuickNavigation\Button\FavoriteButton;
use FriendsOfRedaxo\QuickNavigation\Button\WatsonButton;
Expand All @@ -30,7 +30,6 @@
use rex_be_controller;
use rex_clang;
use rex_extension;
use rex_extension_point;
use rex_minibar;
use rex_perm;
use rex_url;
Expand All @@ -39,7 +38,7 @@
if (rex::isBackend() && rex::getUser() && rex_backend_login::hasSession() && rex_be_controller::getCurrentPage() != '2factor_auth_verify') {
if (rex::getUser()->hasPerm('quick_navigation[]')) {
rex_api_function::register('quicknavigation_api', MenuRender::class);
rex_api_function::register('quicknavigation_media_search', 'rex_api_quicknavigation_media_search');
rex_api_function::register('quicknavigation_media_search', MediaSearch::class);
rex_view::addCssFile(rex_addon::get('quick_navigation')->getAssetsUrl('quick-navigation.css'));
rex_view::addCssFile(rex_addon::get('quick_navigation')->getAssetsUrl('media-live-search.css'));
rex_view::addJsFile(rex_addon::get('quick_navigation')->getAssetsUrl('quick-navigation.js'));
Expand Down
34 changes: 15 additions & 19 deletions lib/ApiFunction/MediaSearch.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,14 @@

namespace FriendsOfRedaxo\QuickNavigation\ApiFunction;

use Exception;
use rex;
use rex_api_function;
use rex_api_result;
use rex_formatter;
use rex_media;
use rex_media_manager;
use rex_media_service;
use rex_request;
use rex_response;
use rex_formatter;
use rex_url;
use rex_sql;
use Exception;
use rex_url;

/**
* API function for media live search in Quick Navigation.
Expand Down Expand Up @@ -44,7 +40,7 @@ public function execute()
if (!rex::getUser()) {
$result = [
'success' => false,
'error' => 'Keine Berechtigung'
'error' => 'Keine Berechtigung',
];
echo json_encode($result);
exit;
Expand All @@ -53,7 +49,7 @@ public function execute()
if (strlen($searchTerm) < 2) {
$result = [
'success' => false,
'error' => 'Suchbegriff zu kurz'
'error' => 'Suchbegriff zu kurz',
];
echo json_encode($result);
exit;
Expand Down Expand Up @@ -118,15 +114,15 @@ public function execute()
'size' => $size,
'updatedate' => $updatedate,
'thumbnail' => $thumbnail,
'actions' => $actions
'actions' => $actions,
];
}
$sql->next();
}

$result = [
'success' => true,
'results' => array_slice($results, 0, 10) // Maximal 10 Ergebnisse
'results' => array_slice($results, 0, 10), // Maximal 10 Ergebnisse
];

echo json_encode($result);
Expand All @@ -135,7 +131,7 @@ public function execute()
} catch (Exception $e) {
$result = [
'success' => false,
'error' => 'Fehler bei der Suche: ' . $e->getMessage()
'error' => 'Fehler bei der Suche: ' . $e->getMessage(),
];
echo json_encode($result);
exit;
Expand Down Expand Up @@ -165,7 +161,7 @@ private function generateThumbnail($media)
return [
'type' => 'svg',
'svg' => $svg,
'alt' => $media->getTitle() ?: $media->getFilename()
'alt' => $media->getTitle() ?: $media->getFilename(),
];
}
}
Expand All @@ -181,7 +177,7 @@ private function generateThumbnail($media)
return [
'type' => 'image',
'src' => $thumbnailUrl,
'alt' => $media->getTitle() ?: $media->getFilename()
'alt' => $media->getTitle() ?: $media->getFilename(),
];
} catch (Exception $e) {
// Fallback zu Icon
Expand All @@ -194,7 +190,7 @@ private function generateThumbnail($media)
return [
'type' => 'icon',
'icon' => $icon,
'title' => strtoupper($media->getExtension()) . ' Datei'
'title' => strtoupper($media->getExtension()) . ' Datei',
];
}

Expand Down Expand Up @@ -265,8 +261,8 @@ private function generateActions($media, $openerInputField)
'url' => rex_url::backendPage('mediapool/media', [
'opener_input_field' => $openerInputField,
'file_id' => $media->getId(),
'file_category_id' => $media->getCategoryId()
])
'file_category_id' => $media->getCategoryId(),
]),
];

// Wenn opener_input_field gesetzt ist, dann Auswahl-Modus
Expand All @@ -277,15 +273,15 @@ private function generateActions($media, $openerInputField)
'type' => 'medialist',
'filename' => $media->getFilename(),
'title' => $media->getTitle() ?: $media->getFilename(),
'label' => 'Übernehmen'
'label' => 'Übernehmen',
];
} else {
// Einzelmedium
$actions['select'] = [
'type' => 'media',
'filename' => $media->getFilename(),
'title' => $media->getTitle() ?: $media->getFilename(),
'label' => 'Übernehmen'
'label' => 'Übernehmen',
];
}
}
Expand Down
4 changes: 2 additions & 2 deletions lib/Button/ArticleHistoryButton.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

namespace FriendsOfRedaxo\QuickNavigation\Button;

use function count;

use IntlDateFormatter;
use rex;
use rex_addon;
Expand All @@ -14,8 +16,6 @@
use rex_url;
use rex_yrewrite;

use function count;

class ArticleHistoryButton implements ButtonInterface
{
protected string $mode;
Expand Down
8 changes: 4 additions & 4 deletions lib/Button/ArticleNavigationButton.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

namespace FriendsOfRedaxo\QuickNavigation\Button;

use function count;

use rex_article;
use rex_be_controller;
use rex_category;
use rex_clang;
use rex_string;
use rex_url;

use function count;

class ArticleNavigationButton implements ButtonInterface
{
public function get(): string
Expand Down Expand Up @@ -41,7 +41,7 @@ public function get(): string
$attributes = [
'class' => 'btn btn-default',
'href' => rex_url::backendPage('content/edit', ['mode' => 'edit', 'clang' => rex_clang::getCurrentId(), 'category_id' => rex_request('category_id'), 'article_id' => $article->getId()]),
'title' => $article->getName()
'title' => $article->getName(),
];
$prev = '<a' . rex_string::buildAttributes($attributes). '><span class="fa fa-chevron-left"></span></a>';
}
Expand All @@ -52,7 +52,7 @@ public function get(): string
$attributes = [
'class' => 'btn btn-default',
'href' => rex_url::backendPage('content/edit', ['mode' => 'edit', 'clang' => rex_clang::getCurrentId(), 'category_id' => rex_request('category_id'), 'article_id' => $article->getId()]),
'title' => $article->getName()
'title' => $article->getName(),
];
$next = '<a' . rex_string::buildAttributes($attributes). '><span class="fa fa-chevron-right"></span></a>';
}
Expand Down
7 changes: 1 addition & 6 deletions lib/Button/CategoryButton.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,13 @@

namespace FriendsOfRedaxo\QuickNavigation\Button;

use FriendsOfRedaxo\QuickNavigation\Utility\BuildNavigationArray;
use rex;
use rex_addon;
use rex_article;
use rex_category;
use rex_clang;
use rex_context;
use rex_fragment;
use rex_i18n;
use rex_string;
use rex_url;
use rex_yrewrite;
use FriendsOfRedaxo\QuickNavigation\Utility\BuildNavigationArray;

class CategoryButton implements ButtonInterface
{
Expand Down
Loading