Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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":"d6e8377314743b0306a045ec165b99ea","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