44 * @package Joomla.Plugin
55 * @subpackage Editors-xtd.weblink
66 *
7- * @copyright Copyright (C) 2005 - 2026 Open Source Matters, Inc. All rights reserved.
7+ * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
88 * @license GNU General Public License version 2 or later; see LICENSE.txt
99 */
1010
1414\defined ('_JEXEC ' ) or die;
1515// phpcs:enable PSR1.Files.SideEffects
1616
17- use Joomla \CMS \Editor \Button \Button ;
18- use Joomla \CMS \Event \Editor \EditorButtonsSetupEvent ;
17+ use Joomla \CMS \Application \CMSApplicationInterface ;
1918use Joomla \CMS \Language \Text ;
2019use Joomla \CMS \Plugin \CMSPlugin ;
2120use Joomla \CMS \Session \Session ;
22- use Joomla \Event \SubscriberInterface ;
21+ use Joomla \Database \DatabaseInterface ;
22+ use Joomla \Event \DispatcherInterface ;
2323
2424/**
2525 * Editor Web Link button
2626 *
2727 * @since 5.1.0
2828 */
29- final class Weblink extends CMSPlugin implements SubscriberInterface
29+ final class Weblink extends CMSPlugin
3030{
3131 /**
3232 * Load the language file on instantiation.
@@ -37,39 +37,19 @@ final class Weblink extends CMSPlugin implements SubscriberInterface
3737 protected $ autoloadLanguage = true ;
3838
3939 /**
40- * Returns an array of events this subscriber will listen to.
40+ * Constructor
4141 *
42- * @return array
43- *
44- * @since 5.2.0
45- */
46- public static function getSubscribedEvents (): array
47- {
48- return ['onEditorButtonsSetup ' => 'onEditorButtonsSetup ' ];
49- }
50-
51- /**
52- * @param EditorButtonsSetupEvent $event
53- * @return void
54- *
55- * @since 5.2.0
42+ * @param DispatcherInterface $dispatcher
43+ * @param array $config
44+ * @param DatabaseInterface $database
5645 */
57- public function onEditorButtonsSetup ( EditorButtonsSetupEvent $ event ): void
46+ public function __construct ( DispatcherInterface $ dispatcher , array $ config , CMSApplicationInterface $ application )
5847 {
59- $ subject = $ event ->getButtonsRegistry ();
60- $ disabled = $ event ->getDisabledButtons ();
48+ parent ::__construct ($ dispatcher , $ config );
6149
62- if (\in_array ($ this ->_name , $ disabled )) {
63- return ;
64- }
65-
66- $ button = $ this ->onDisplay ($ event ->getEditorId ());
67-
68- if ($ button ) {
69- $ subject ->add ($ button );
70- }
50+ $ this ->setApplication ($ application );
7151 }
72-
52+
7353 /**
7454 * Display the button
7555 *
@@ -92,21 +72,27 @@ public function onDisplay($name): ?object
9272 $ link = 'index.php?option=com_weblinks&view=weblinks&layout=modal&tmpl=component& '
9373 . Session::getFormToken () . '=1&editor= ' . $ name ;
9474
95- $ button = new Button (
96- $ this -> _name ,
97- [
98- ' action ' => ' modal ' ,
99- ' link ' => $ link ,
100- ' text ' => Text:: _ ( ' PLG_EDITORS-XTD_WEBLINK_BUTTON_WEBLINK ' ),
101- ' icon ' => ' globe ' ,
102- ' iconSVG ' => '<svg xmlns="http://www.w3.org/2000/svg" width="24 height="24" fill="currentColor" class="bi bi-globe" viewBox="0 0 16 16">
75+ $ button = new \ stdClass ();
76+ $ button -> modal = true ;
77+ $ button -> link = $ link ;
78+ $ button -> text = Text:: _ ( ' PLG_EDITORS-XTD_WEBLINK_BUTTON_WEBLINK ' );
79+ $ button -> name = $ this -> _type . ' _ ' . $ this -> _name ;
80+ $ button -> icon = ' globe ' ;
81+ // phpcs:disable Generic.Files.LineLength
82+ $ button -> iconSVG = '<svg xmlns="http://www.w3.org/2000/svg" width="24 height="24" fill="currentColor" class="bi bi-globe" viewBox="0 0 16 16">
10383 <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm7.5-6.923c-.67.204-1.335.82-1.887 1.855A7.97 7.97 0 0 0 5.145 4H7.5V1.077zM4.09 4a9.267 9.267 0 0 1 .64-1.539 6.7 6.7 0 0 1 .597-.933A7.025 7.025 0 0 0 2.255 4H4.09zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a6.958 6.958 0 0 0-.656 2.5h2.49zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5H4.847zM8.5 5v2.5h2.99a12.495 12.495 0 0 0-.337-2.5H8.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5H4.51zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5H8.5zM5.145 12c.138.386.295.744.468 1.068.552 1.035 1.218 1.65 1.887 1.855V12H5.145zm.182 2.472a6.696 6.696 0 0 1-.597-.933A9.268 9.268 0 0 1 4.09 12H2.255a7.024 7.024 0 0 0 3.072 2.472zM3.82 11a13.652 13.652 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5H3.82zm6.853 3.472A7.024 7.024 0 0 0 13.745 12H11.91a9.27 9.27 0 0 1-.64 1.539 6.688 6.688 0 0 1-.597.933zM8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855.173-.324.33-.682.468-1.068H8.5zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.65 13.65 0 0 1-.312 2.5zm2.802-3.5a6.959 6.959 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5h2.49zM11.27 2.461c.247.464.462.98.64 1.539h1.835a7.024 7.024 0 0 0-3.072-2.472c.218.284.418.598.597.933zM10.855 4a7.966 7.966 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4h2.355z"/>
104- </svg> ' ,
105- // This is whole Plugin name, it is needed for keeping backward compatibility
106- 'name ' => $ this ->_type . '_ ' . $ this ->_name ,
107- ]
108- );
109- return $ button ;
110- }
84+ </svg> ' ;
85+ // phpcs:enable Generic.Files.LineLength
86+ $ button ->options = [
87+ 'height ' => '300px ' ,
88+ 'width ' => '800px ' ,
89+ 'bodyHeight ' => '70 ' ,
90+ 'modalWidth ' => '80 ' ,
91+ ];
92+
93+ return $ button ;
94+ }
95+
96+ return null ; // return null if conditions are not met
11197 }
11298}
0 commit comments