From e944860a365975cabeec28a82f2eadd20ba278d3 Mon Sep 17 00:00:00 2001 From: mexahotabop Date: Fri, 24 Jun 2022 21:17:31 +0300 Subject: [PATCH 1/5] Updatefor wiki 1.33+ --- DFDiagram.i18n.php | 17 -------------- DFDiagram.magic.php | 7 ++++++ DFDiagram.php | 54 --------------------------------------------- Diagram.php | 6 ++--- extension.json | 49 ++++++++++++++++++++++++++++++++++++++++ i18n/en.json | 11 +++++++++ i18n/qqq.json | 12 ++++++++++ i18n/ru.json | 12 ++++++++++ 8 files changed, 94 insertions(+), 74 deletions(-) delete mode 100644 DFDiagram.i18n.php create mode 100644 DFDiagram.magic.php delete mode 100644 DFDiagram.php create mode 100644 extension.json create mode 100644 i18n/en.json create mode 100644 i18n/qqq.json create mode 100644 i18n/ru.json diff --git a/DFDiagram.i18n.php b/DFDiagram.i18n.php deleted file mode 100644 index ed50667..0000000 --- a/DFDiagram.i18n.php +++ /dev/null @@ -1,17 +0,0 @@ - 'Diagrams', - 'prefs-dfdiagram-canvas' => 'Canvas options', - 'dfdiagram-use-canvas' => 'Enable canvas display (requires JavaScript)', -); - -# Documentation -$messages['qqq'] = array( - 'prefs-dfdiagram' => 'DFDiagram preferences title', - 'prefs-dfdiagram-canvas' => 'DFDiagram preferences canvas section title', - 'dfdiagram-use-canvas' => 'Toggle canvas-based display of diagrams', -); diff --git a/DFDiagram.magic.php b/DFDiagram.magic.php new file mode 100644 index 0000000..2c82c5e --- /dev/null +++ b/DFDiagram.magic.php @@ -0,0 +1,7 @@ + [ 0, 'diagram' ] +]; diff --git a/DFDiagram.php b/DFDiagram.php deleted file mode 100644 index e7878b9..0000000 --- a/DFDiagram.php +++ /dev/null @@ -1,54 +0,0 @@ - "modules/ext.DFDiagram.css", - 'localBasePath' => __DIR__, - 'remoteExtPath' => 'DFDiagram', - 'position' => 'top' -); - -$wgResourceModules['ext.DFDiagram.canvas'] = array( - 'scripts' => array( - 'modules/df-tileset/df-tileset.js', - 'modules/ext.DFDiagram.js', - ), - 'localBasePath' => __DIR__, - 'remoteExtPath' => 'DFDiagram' -); - -$wgHooks['BeforePageDisplay'][] = 'DFDMWHooks::includeModules'; - -$wgHooks['GetPreferences'][] = 'DFDMWHooks::getPreferences'; -$wgDefaultUserOptions['dfdiagram-use-canvas'] = true; - -/* - * Credits for Special:Version - */ - -$wgExtensionCredits['DFDiagram'][] = array( - 'path' => __FILE__, - 'name' => 'DFDiagram', - 'author' =>'Lethosor', - 'url' => 'https://github.com/lethosor/DFDiagram', - 'description' => 'Adds support for DF-style diagrams', - 'version' => '0.6.1', -); - diff --git a/Diagram.php b/Diagram.php index bd9b03e..332f7ab 100644 --- a/Diagram.php +++ b/Diagram.php @@ -324,7 +324,7 @@ class DFDMWHooks { /** * Hooks for integrating DFDiagram extension functionality with MediaWiki */ - static public function init($parser) { + static public function init(Parser $parser) { // Register the tag $parser->setHook('diagram', 'DFDMWHooks::create'); return true; @@ -342,7 +342,7 @@ static public function create($text, $args, $parser, $frame) { $diagram = new DFDiagram($text, $args); return $diagram->render(); } - static public function includeModules($outPage, $skin) { + static public function includeModules(OutputPage $outPage, Skin $skin) { /* * Include the resources in $wgResourceModules */ @@ -355,7 +355,7 @@ static public function includeModules($outPage, $skin) { return true; } - static public function getPreferences($user, &$preferences) { + static public function getPreferences(User $user, array &$preferences) { // Create preferences $preferences['dfdiagram-use-canvas'] = array( 'type' => 'toggle', diff --git a/extension.json b/extension.json new file mode 100644 index 0000000..ba3d807 --- /dev/null +++ b/extension.json @@ -0,0 +1,49 @@ +{ + "name": "DFDiagram", + "version": "0.6.2", + "author": "Lethosor", + "url": "https://github.com/lethosor/DFDiagram", + "description": "Adds support for DF-style diagram", + "type": "parserhook", + "requires": { + "MediaWiki": ">= 1.33" + }, + "Hooks": { + "ParserFirstCallInit": "DFDMWHooks::init", + "BeforePageDisplay": "DFDMWHooks::includeModules", + "GetPreferences": "DFDMWHooks::getPreferences" + }, + "AutoloadClasses": { + "DFDMWHooks": "Diagram.php" + }, + "ExtensionMessagesFiles": { + "DFDiagramMagic": "DFDiagram.magic.php" + }, + "config": { + "$DFDDefaultDiagramPath": { + "value": "dirname(__FILE__) .'/default_diagram.txt'" + } + }, + "DefaultUserOptions": { + "dfdiagram-use-canvas": true + }, + "ResourceModules": { + "ext.DFDiagram": { + "localBasePath": "__DIR__", + "remoteExtPath": "DFDiagram", + "styles": [ + "modules/ext.DFDiagram.css" + ], + "position": "top" + }, + "ext.DFDiagram.canvas": { + "localBasePath": "__DIR__", + "remoteExtPath": "DFDiagram", + "scripts": [ + "modules/df-tileset/df-tileset.js", + "modules/ext.DFDiagram.js" + ] + } + }, + "manifest_version": 2 +} diff --git a/i18n/en.json b/i18n/en.json new file mode 100644 index 0000000..7e13a90 --- /dev/null +++ b/i18n/en.json @@ -0,0 +1,11 @@ +{ + "@metadata": { + "authors": [ + "Lethosor" + ] + }, + "prefs-dfdiagram": "Diagrams", + "prefs-dfdiagram-canvas": "Canvas options", + "dfdiagram-use-canvas": "Enable canvas display (requires JavaScript)" +} + diff --git a/i18n/qqq.json b/i18n/qqq.json new file mode 100644 index 0000000..3a2c7f8 --- /dev/null +++ b/i18n/qqq.json @@ -0,0 +1,12 @@ +{ + "@metadata": { + "authors": [ + "Lethosor" + ] + }, + "prefs-dfdiagram": "DFDiagram preferences title", + "prefs-dfdiagram-canvas": "DFDiagram preferences canvas section title", + "dfdiagram-use-canvas": "Toggle canvas-based display of diagrams" +} + + diff --git a/i18n/ru.json b/i18n/ru.json new file mode 100644 index 0000000..1b17998 --- /dev/null +++ b/i18n/ru.json @@ -0,0 +1,12 @@ +{ + "@metadata": { + "authors": [ + "MEXAHOTABOP" + ] + }, + "prefs-dfdiagram": "Диаграммы", + "prefs-dfdiagram-canvas": "Настройки холста", + "dfdiagram-use-canvas": "Включить отображение холста (requires JavaScript)" +} + + From 9eee8699cddcc82c130661e23d4142e75c3d8b0d Mon Sep 17 00:00:00 2001 From: mexahotabop Date: Sun, 26 Jun 2022 16:09:17 +0300 Subject: [PATCH 2/5] Avoid using globals to fix: \n Color.php: PHP Notice: Trying to access array offset on value of type null \n Color.php: PHP Warning: Invalid argument supplied for foreach() on example, fix localization and extention.json --- Char.php | 523 ++++++++++++++++++++++++------------------------- Color.php | 272 +++++++++++++------------ extension.json | 9 +- i18n/ru.json | 2 +- 4 files changed, 401 insertions(+), 405 deletions(-) diff --git a/Char.php b/Char.php index 9afd2ca..7e8a678 100644 --- a/Char.php +++ b/Char.php @@ -1,275 +1,272 @@ "\u0", - 1 => "\u263A", - 2 => "\u263B", - 3 => "\u2665", - 4 => "\u2666", - 5 => "\u2663", - 6 => "\u2660", - 7 => "\u2022", - 8 => "\u25D8", - 9 => "\u25CB", - 10 => "\u25D9", - 11 => "\u2642", - 12 => "\u2640", - 13 => "\u266A", - 14 => "\u266B", - 15 => "\u263C", - 16 => "\u25BA", - 17 => "\u25C4", - 18 => "\u2195", - 19 => "\u203C", - 20 => "\u00B6", - 21 => "\u00A7", - 22 => "\u25AC", - 23 => "\u21A8", - 24 => "\u2191", - 25 => "\u2193", - 26 => "\u2192", - 27 => "\u2190", - 28 => "\u221F", - 29 => "\u2194", - 30 => "\u25B2", - 31 => "\u25BC", - 32 => "\u0020", - 33 => "\u0021", - 34 => "\u0022", - 35 => "\u0023", - 36 => "\u0024", - 37 => "\u0025", - 38 => "\u0026", - 39 => "\u0027", - 40 => "\u0028", - 41 => "\u0029", - 42 => "\u002A", - 43 => "\u002B", - 44 => "\u002C", - 45 => "\u002D", - 46 => "\u002E", - 47 => "\u002F", - 48 => "\u0030", - 49 => "\u0031", - 50 => "\u0032", - 51 => "\u0033", - 52 => "\u0034", - 53 => "\u0035", - 54 => "\u0036", - 55 => "\u0037", - 56 => "\u0038", - 57 => "\u0039", - 58 => "\u003A", - 59 => "\u003B", - 60 => "\u003C", - 61 => "\u003D", - 62 => "\u003E", - 63 => "\u003F", - 64 => "\u0040", - 65 => "\u0041", - 66 => "\u0042", - 67 => "\u0043", - 68 => "\u0044", - 69 => "\u0045", - 70 => "\u0046", - 71 => "\u0047", - 72 => "\u0048", - 73 => "\u0049", - 74 => "\u004A", - 75 => "\u004B", - 76 => "\u004C", - 77 => "\u004D", - 78 => "\u004E", - 79 => "\u004F", - 80 => "\u0050", - 81 => "\u0051", - 82 => "\u0052", - 83 => "\u0053", - 84 => "\u0054", - 85 => "\u0055", - 86 => "\u0056", - 87 => "\u0057", - 88 => "\u0058", - 89 => "\u0059", - 90 => "\u005A", - 91 => "\u005B", - 92 => "\u005C", - 93 => "\u005D", - 94 => "\u005E", - 95 => "\u005F", - 96 => "\u0060", - 97 => "\u0061", - 98 => "\u0062", - 99 => "\u0063", - 100 => "\u0064", - 101 => "\u0065", - 102 => "\u0066", - 103 => "\u0067", - 104 => "\u0068", - 105 => "\u0069", - 106 => "\u006A", - 107 => "\u006B", - 108 => "\u006C", - 109 => "\u006D", - 110 => "\u006E", - 111 => "\u006F", - 112 => "\u0070", - 113 => "\u0071", - 114 => "\u0072", - 115 => "\u0073", - 116 => "\u0074", - 117 => "\u0075", - 118 => "\u0076", - 119 => "\u0077", - 120 => "\u0078", - 121 => "\u0079", - 122 => "\u007A", - 123 => "\u007B", - 124 => "\u007C", - 125 => "\u007D", - 126 => "\u007E", - 127 => "\u2302", - 128 => "\u00C7", - 129 => "\u00FC", - 130 => "\u00E9", - 131 => "\u00E2", - 132 => "\u00E4", - 133 => "\u00E0", - 134 => "\u00E5", - 135 => "\u00E7", - 136 => "\u00EA", - 137 => "\u00EB", - 138 => "\u00E8", - 139 => "\u00EF", - 140 => "\u00EE", - 141 => "\u00EC", - 142 => "\u00C4", - 143 => "\u00C5", - 144 => "\u00C9", - 145 => "\u00E6", - 146 => "\u00C6", - 147 => "\u00F4", - 148 => "\u00F6", - 149 => "\u00F2", - 150 => "\u00FB", - 151 => "\u00F9", - 152 => "\u00FF", - 153 => "\u00D6", - 154 => "\u00DC", - 155 => "\u00A2", - 156 => "\u00A3", - 157 => "\u00A5", - 158 => "\u20A7", - 159 => "\u0192", - 160 => "\u00E1", - 161 => "\u00ED", - 162 => "\u00F3", - 163 => "\u00FA", - 164 => "\u00F1", - 165 => "\u00D1", - 166 => "\u00AA", - 167 => "\u00BA", - 168 => "\u00BF", - 169 => "\u2310", - 170 => "\u00AC", - 171 => "\u00BD", - 172 => "\u00BC", - 173 => "\u00A1", - 174 => "\u00AB", - 175 => "\u00BB", - 176 => "\u2591", - 177 => "\u2592", - 178 => "\u2593", - 179 => "\u2502", - 180 => "\u2524", - 181 => "\u2561", - 182 => "\u2562", - 183 => "\u2556", - 184 => "\u2555", - 185 => "\u2563", - 186 => "\u2551", - 187 => "\u2557", - 188 => "\u255D", - 189 => "\u255C", - 190 => "\u255B", - 191 => "\u2510", - 192 => "\u2514", - 193 => "\u2534", - 194 => "\u252C", - 195 => "\u251C", - 196 => "\u2500", - 197 => "\u253C", - 198 => "\u255E", - 199 => "\u255F", - 200 => "\u255A", - 201 => "\u2554", - 202 => "\u2569", - 203 => "\u2566", - 204 => "\u2560", - 205 => "\u2550", - 206 => "\u256C", - 207 => "\u2567", - 208 => "\u2568", - 209 => "\u2564", - 210 => "\u2565", - 211 => "\u2559", - 212 => "\u2558", - 213 => "\u2552", - 214 => "\u2553", - 215 => "\u256B", - 216 => "\u256A", - 217 => "\u2518", - 218 => "\u250C", - 219 => "\u2588", - 220 => "\u2584", - 221 => "\u258C", - 222 => "\u2590", - 223 => "\u2580", - 224 => "\u03B1", - 225 => "\u00DF", - 226 => "\u0393", - 227 => "\u03C0", - 228 => "\u03A3", - 229 => "\u03C3", - 230 => "\u00B5", - 231 => "\u03C4", - 232 => "\u03A6", - 233 => "\u0398", - 234 => "\u03A9", - 235 => "\u03B4", - 236 => "\u221E", - 237 => "\u03C6", - 238 => "\u03B5", - 239 => "\u2229", - 240 => "\u2261", - 241 => "\u00B1", - 242 => "\u2265", - 243 => "\u2264", - 244 => "\u2320", - 245 => "\u2321", - 246 => "\u00F7", - 247 => "\u2248", - 248 => "\u00B0", - 249 => "\u2219", - 250 => "\u00B7", - 251 => "\u221A", - 252 => "\u207F", - 253 => "\u00B2", - 254 => "\u25A0", - 255 => "\u00A0", -); - - class Char { + const DFCharacters = array( + 0 => "\u0", + 1 => "\u263A", + 2 => "\u263B", + 3 => "\u2665", + 4 => "\u2666", + 5 => "\u2663", + 6 => "\u2660", + 7 => "\u2022", + 8 => "\u25D8", + 9 => "\u25CB", + 10 => "\u25D9", + 11 => "\u2642", + 12 => "\u2640", + 13 => "\u266A", + 14 => "\u266B", + 15 => "\u263C", + 16 => "\u25BA", + 17 => "\u25C4", + 18 => "\u2195", + 19 => "\u203C", + 20 => "\u00B6", + 21 => "\u00A7", + 22 => "\u25AC", + 23 => "\u21A8", + 24 => "\u2191", + 25 => "\u2193", + 26 => "\u2192", + 27 => "\u2190", + 28 => "\u221F", + 29 => "\u2194", + 30 => "\u25B2", + 31 => "\u25BC", + 32 => "\u0020", + 33 => "\u0021", + 34 => "\u0022", + 35 => "\u0023", + 36 => "\u0024", + 37 => "\u0025", + 38 => "\u0026", + 39 => "\u0027", + 40 => "\u0028", + 41 => "\u0029", + 42 => "\u002A", + 43 => "\u002B", + 44 => "\u002C", + 45 => "\u002D", + 46 => "\u002E", + 47 => "\u002F", + 48 => "\u0030", + 49 => "\u0031", + 50 => "\u0032", + 51 => "\u0033", + 52 => "\u0034", + 53 => "\u0035", + 54 => "\u0036", + 55 => "\u0037", + 56 => "\u0038", + 57 => "\u0039", + 58 => "\u003A", + 59 => "\u003B", + 60 => "\u003C", + 61 => "\u003D", + 62 => "\u003E", + 63 => "\u003F", + 64 => "\u0040", + 65 => "\u0041", + 66 => "\u0042", + 67 => "\u0043", + 68 => "\u0044", + 69 => "\u0045", + 70 => "\u0046", + 71 => "\u0047", + 72 => "\u0048", + 73 => "\u0049", + 74 => "\u004A", + 75 => "\u004B", + 76 => "\u004C", + 77 => "\u004D", + 78 => "\u004E", + 79 => "\u004F", + 80 => "\u0050", + 81 => "\u0051", + 82 => "\u0052", + 83 => "\u0053", + 84 => "\u0054", + 85 => "\u0055", + 86 => "\u0056", + 87 => "\u0057", + 88 => "\u0058", + 89 => "\u0059", + 90 => "\u005A", + 91 => "\u005B", + 92 => "\u005C", + 93 => "\u005D", + 94 => "\u005E", + 95 => "\u005F", + 96 => "\u0060", + 97 => "\u0061", + 98 => "\u0062", + 99 => "\u0063", + 100 => "\u0064", + 101 => "\u0065", + 102 => "\u0066", + 103 => "\u0067", + 104 => "\u0068", + 105 => "\u0069", + 106 => "\u006A", + 107 => "\u006B", + 108 => "\u006C", + 109 => "\u006D", + 110 => "\u006E", + 111 => "\u006F", + 112 => "\u0070", + 113 => "\u0071", + 114 => "\u0072", + 115 => "\u0073", + 116 => "\u0074", + 117 => "\u0075", + 118 => "\u0076", + 119 => "\u0077", + 120 => "\u0078", + 121 => "\u0079", + 122 => "\u007A", + 123 => "\u007B", + 124 => "\u007C", + 125 => "\u007D", + 126 => "\u007E", + 127 => "\u2302", + 128 => "\u00C7", + 129 => "\u00FC", + 130 => "\u00E9", + 131 => "\u00E2", + 132 => "\u00E4", + 133 => "\u00E0", + 134 => "\u00E5", + 135 => "\u00E7", + 136 => "\u00EA", + 137 => "\u00EB", + 138 => "\u00E8", + 139 => "\u00EF", + 140 => "\u00EE", + 141 => "\u00EC", + 142 => "\u00C4", + 143 => "\u00C5", + 144 => "\u00C9", + 145 => "\u00E6", + 146 => "\u00C6", + 147 => "\u00F4", + 148 => "\u00F6", + 149 => "\u00F2", + 150 => "\u00FB", + 151 => "\u00F9", + 152 => "\u00FF", + 153 => "\u00D6", + 154 => "\u00DC", + 155 => "\u00A2", + 156 => "\u00A3", + 157 => "\u00A5", + 158 => "\u20A7", + 159 => "\u0192", + 160 => "\u00E1", + 161 => "\u00ED", + 162 => "\u00F3", + 163 => "\u00FA", + 164 => "\u00F1", + 165 => "\u00D1", + 166 => "\u00AA", + 167 => "\u00BA", + 168 => "\u00BF", + 169 => "\u2310", + 170 => "\u00AC", + 171 => "\u00BD", + 172 => "\u00BC", + 173 => "\u00A1", + 174 => "\u00AB", + 175 => "\u00BB", + 176 => "\u2591", + 177 => "\u2592", + 178 => "\u2593", + 179 => "\u2502", + 180 => "\u2524", + 181 => "\u2561", + 182 => "\u2562", + 183 => "\u2556", + 184 => "\u2555", + 185 => "\u2563", + 186 => "\u2551", + 187 => "\u2557", + 188 => "\u255D", + 189 => "\u255C", + 190 => "\u255B", + 191 => "\u2510", + 192 => "\u2514", + 193 => "\u2534", + 194 => "\u252C", + 195 => "\u251C", + 196 => "\u2500", + 197 => "\u253C", + 198 => "\u255E", + 199 => "\u255F", + 200 => "\u255A", + 201 => "\u2554", + 202 => "\u2569", + 203 => "\u2566", + 204 => "\u2560", + 205 => "\u2550", + 206 => "\u256C", + 207 => "\u2567", + 208 => "\u2568", + 209 => "\u2564", + 210 => "\u2565", + 211 => "\u2559", + 212 => "\u2558", + 213 => "\u2552", + 214 => "\u2553", + 215 => "\u256B", + 216 => "\u256A", + 217 => "\u2518", + 218 => "\u250C", + 219 => "\u2588", + 220 => "\u2584", + 221 => "\u258C", + 222 => "\u2590", + 223 => "\u2580", + 224 => "\u03B1", + 225 => "\u00DF", + 226 => "\u0393", + 227 => "\u03C0", + 228 => "\u03A3", + 229 => "\u03C3", + 230 => "\u00B5", + 231 => "\u03C4", + 232 => "\u03A6", + 233 => "\u0398", + 234 => "\u03A9", + 235 => "\u03B4", + 236 => "\u221E", + 237 => "\u03C6", + 238 => "\u03B5", + 239 => "\u2229", + 240 => "\u2261", + 241 => "\u00B1", + 242 => "\u2265", + 243 => "\u2264", + 244 => "\u2320", + 245 => "\u2321", + 246 => "\u00F7", + 247 => "\u2248", + 248 => "\u00B0", + 249 => "\u2219", + 250 => "\u00B7", + 251 => "\u221A", + 252 => "\u207F", + 253 => "\u00B2", + 254 => "\u25A0", + 255 => "\u00A0", + ); /* * Character - * Uses given ID from $DFCharacters (in decimal) + * Uses given ID from self::DFCharacters (in decimal) */ public function __construct($id) { - global $DFCharacters; // Remove leading zeros $id = preg_replace('/^0+/', '', $id); - $char = $DFCharacters[$id]; + $char = self::DFCharacters[$id]; // Using 'json_decode' converts \u literals into their corresponding characters. $this->text = json_decode('"'.$char.'"'); } diff --git a/Color.php b/Color.php index 023c9b9..4e604b3 100644 --- a/Color.php +++ b/Color.php @@ -1,155 +1,153 @@ '#000000', - '0:1' => '#505050', - '1:0' => '#000080', - '1:1' => '#0000ff', - '2:0' => '#008000', - '2:1' => '#00ff00', - '3:0' => '#008080', - '3:1' => '#00ffff', - '4:0' => '#800000', - '4:1' => '#ff0000', - '5:0' => '#800080', - '5:1' => '#ff00ff', - '6:0' => '#808000', - '6:1' => '#ffff00', - '7:0' => '#c0c0c0', - '7:1' => '#ffffff', - 'amber' => 'rgb(255,191,0)', - 'amethyst' => 'rgb(153,102,204)', - 'aqua' => 'rgb(0,255,255)', - 'aquamarine' => 'rgb(127,255,212)', - 'ash-gray' => 'rgb(178,190,181)', - 'auburn' => 'rgb(111,53,26)', - 'azure' => 'rgb(0,127,255)', - 'beige' => 'rgb(245,245,220)', - 'black' => 'rgb(0,0,0)', - 'blue' => 'rgb(0,0,255)', - 'brass' => 'rgb(181,166,66)', - 'bronze' => 'rgb(205,127,50)', - 'brown' => 'rgb(150,75,0)', - 'buff' => 'rgb(240,220,130)', - 'burnt-sienna' => 'rgb(233,116,81)', - 'burnt-umber' => 'rgb(138,51,36)', - 'cardinal' => 'rgb(196,30,58)', - 'carmine' => 'rgb(150,0,24)', - 'cerulean' => 'rgb(0,123,167)', - 'charcoal' => 'rgb(54,69,79)', - 'chartreuse' => 'rgb(127,255,0)', - 'chestnut' => 'rgb(205,92,92)', - 'chocolate' => 'rgb(210,105,30)', - 'cinnamon' => 'rgb(123,63,0)', - 'clear' => 'rgb(128,128,128)', - 'cobalt' => 'rgb(0,71,171)', - 'copper' => 'rgb(184,115,51)', - 'cream' => 'rgb(255,253,208)', - 'crimson' => 'rgb(220,20,60)', - 'dark-blue' => 'rgb(0,0,139)', - 'dark-brown' => 'rgb(101,67,33)', - 'dark-chestnut' => 'rgb(152,105,96)', - 'dark-green' => 'rgb(1,50,32)', - 'dark-indigo' => 'rgb(49,0,98)', - 'dark-olive' => 'rgb(85,104,50)', - 'dark-peach' => 'rgb(255,218,185)', - 'dark-pink' => 'rgb(231,84,128)', - 'dark-scarlet' => 'rgb(86,3,25)', - 'dark-tan' => 'rgb(145,129,81)', - 'dark-violet' => 'rgb(66,49,137)', - 'ecru' => 'rgb(194,178,128)', - 'emerald' => 'rgb(80,200,120)', - 'fern-green' => 'rgb(79,121,66)', - 'flax' => 'rgb(238,220,130)', - 'fuchsia' => 'rgb(244,0,161)', - 'gold' => 'rgb(212,175,55)', - 'golden-yellow' => 'rgb(255,223,0)', - 'goldenrod' => 'rgb(218,165,32)', - 'gray' => 'rgb(128,128,128)', - 'green' => 'rgb(0,255,0)', - 'green-yellow' => 'rgb(173,255,47)', - 'heliotrope' => 'rgb(223,115,255)', - 'indigo' => 'rgb(75,0,130)', - 'ivory' => 'rgb(255,255,240)', - 'jade' => 'rgb(0,168,107)', - 'lavender' => 'rgb(230,230,250)', - 'lavender-blush' => 'rgb(255,240,245)', - 'lemon' => 'rgb(253,233,16)', - 'light-blue' => 'rgb(173,216,230)', - 'light-brown' => 'rgb(205,133,63)', - 'lilac' => 'rgb(200,162,200)', - 'lime' => 'rgb(204,255,0)', - 'mahogany' => 'rgb(192,64,0)', - 'maroon' => 'rgb(128,0,0)', - 'mauve' => 'rgb(153,51,102)', - 'mauve-taupe' => 'rgb(145,95,109)', - 'midnight-blue' => 'rgb(0,51,102)', - 'mint-green' => 'rgb(152,255,152)', - 'moss-green' => 'rgb(173,223,173)', - 'ochre' => 'rgb(204,119,34)', - 'olive' => 'rgb(128,128,0)', - 'orange' => 'rgb(255,165,0)', - 'pale-blue' => 'rgb(175,238,238)', - 'pale-brown' => 'rgb(152,118,84)', - 'pale-chestnut' => 'rgb(221,173,175)', - 'pale-pink' => 'rgb(250,218,221)', - 'peach' => 'rgb(255,229,180)', - 'pearl' => 'rgb(240,234,214)', - 'periwinkle' => 'rgb(204,204,255)', - 'pine-green' => 'rgb(1,121,111)', - 'pink' => 'rgb(255,192,203)', - 'plum' => 'rgb(102,0,102)', - 'puce' => 'rgb(204,136,153)', - 'pumpkin' => 'rgb(255,117,24)', - 'purple' => 'rgb(102,0,153)', - 'raw-umber' => 'rgb(115,74,18)', - 'red' => 'rgb(255,0,0)', - 'russet' => 'rgb(117,90,87)', - 'rust' => 'rgb(183,65,14)', - 'saffron' => 'rgb(244,196,48)', - 'scarlet' => 'rgb(255,36,0)', - 'sea-green' => 'rgb(46,139,87)', - 'sepia' => 'rgb(112,66,20)', - 'silver' => 'rgb(192,192,192)', - 'sky-blue' => 'rgb(135,206,235)', - 'slate-gray' => 'rgb(112,128,144)', - 'spring-green' => 'rgb(0,255,127)', - 'tan' => 'rgb(210,180,140)', - 'dark-taupe' => 'rgb(72,60,50)', - 'taupe-gray' => 'rgb(139,133,137)', - 'taupe' => 'rgb(103,76,71)', - 'purple-taupe' => 'rgb(80,64,77)', - 'pale-taupe' => 'rgb(188,152,126)', - 'rose-taupe' => 'rgb(144,93,93)', - 'sandy-taupe' => 'rgb(150,113,23)', - 'teal' => 'rgb(0,128,128)', - 'turquoise' => 'rgb(48,213,200)', - 'vermilion' => 'rgb(227,66,52)', - 'violet' => 'rgb(139,0,255)', - 'white' => 'rgb(255,255,255)', - 'yellow' => 'rgb(255,255,0)', - 'yellow-green' => 'rgb(154,205,50)', -); - class Color { + // Standard DF colors + const DFCOLORS = array( + '0:0' => '#000000', + '0:1' => '#505050', + '1:0' => '#000080', + '1:1' => '#0000ff', + '2:0' => '#008000', + '2:1' => '#00ff00', + '3:0' => '#008080', + '3:1' => '#00ffff', + '4:0' => '#800000', + '4:1' => '#ff0000', + '5:0' => '#800080', + '5:1' => '#ff00ff', + '6:0' => '#808000', + '6:1' => '#ffff00', + '7:0' => '#c0c0c0', + '7:1' => '#ffffff', + 'amber' => 'rgb(255,191,0)', + 'amethyst' => 'rgb(153,102,204)', + 'aqua' => 'rgb(0,255,255)', + 'aquamarine' => 'rgb(127,255,212)', + 'ash-gray' => 'rgb(178,190,181)', + 'auburn' => 'rgb(111,53,26)', + 'azure' => 'rgb(0,127,255)', + 'beige' => 'rgb(245,245,220)', + 'black' => 'rgb(0,0,0)', + 'blue' => 'rgb(0,0,255)', + 'brass' => 'rgb(181,166,66)', + 'bronze' => 'rgb(205,127,50)', + 'brown' => 'rgb(150,75,0)', + 'buff' => 'rgb(240,220,130)', + 'burnt-sienna' => 'rgb(233,116,81)', + 'burnt-umber' => 'rgb(138,51,36)', + 'cardinal' => 'rgb(196,30,58)', + 'carmine' => 'rgb(150,0,24)', + 'cerulean' => 'rgb(0,123,167)', + 'charcoal' => 'rgb(54,69,79)', + 'chartreuse' => 'rgb(127,255,0)', + 'chestnut' => 'rgb(205,92,92)', + 'chocolate' => 'rgb(210,105,30)', + 'cinnamon' => 'rgb(123,63,0)', + 'clear' => 'rgb(128,128,128)', + 'cobalt' => 'rgb(0,71,171)', + 'copper' => 'rgb(184,115,51)', + 'cream' => 'rgb(255,253,208)', + 'crimson' => 'rgb(220,20,60)', + 'dark-blue' => 'rgb(0,0,139)', + 'dark-brown' => 'rgb(101,67,33)', + 'dark-chestnut' => 'rgb(152,105,96)', + 'dark-green' => 'rgb(1,50,32)', + 'dark-indigo' => 'rgb(49,0,98)', + 'dark-olive' => 'rgb(85,104,50)', + 'dark-peach' => 'rgb(255,218,185)', + 'dark-pink' => 'rgb(231,84,128)', + 'dark-scarlet' => 'rgb(86,3,25)', + 'dark-tan' => 'rgb(145,129,81)', + 'dark-violet' => 'rgb(66,49,137)', + 'ecru' => 'rgb(194,178,128)', + 'emerald' => 'rgb(80,200,120)', + 'fern-green' => 'rgb(79,121,66)', + 'flax' => 'rgb(238,220,130)', + 'fuchsia' => 'rgb(244,0,161)', + 'gold' => 'rgb(212,175,55)', + 'golden-yellow' => 'rgb(255,223,0)', + 'goldenrod' => 'rgb(218,165,32)', + 'gray' => 'rgb(128,128,128)', + 'green' => 'rgb(0,255,0)', + 'green-yellow' => 'rgb(173,255,47)', + 'heliotrope' => 'rgb(223,115,255)', + 'indigo' => 'rgb(75,0,130)', + 'ivory' => 'rgb(255,255,240)', + 'jade' => 'rgb(0,168,107)', + 'lavender' => 'rgb(230,230,250)', + 'lavender-blush' => 'rgb(255,240,245)', + 'lemon' => 'rgb(253,233,16)', + 'light-blue' => 'rgb(173,216,230)', + 'light-brown' => 'rgb(205,133,63)', + 'lilac' => 'rgb(200,162,200)', + 'lime' => 'rgb(204,255,0)', + 'mahogany' => 'rgb(192,64,0)', + 'maroon' => 'rgb(128,0,0)', + 'mauve' => 'rgb(153,51,102)', + 'mauve-taupe' => 'rgb(145,95,109)', + 'midnight-blue' => 'rgb(0,51,102)', + 'mint-green' => 'rgb(152,255,152)', + 'moss-green' => 'rgb(173,223,173)', + 'ochre' => 'rgb(204,119,34)', + 'olive' => 'rgb(128,128,0)', + 'orange' => 'rgb(255,165,0)', + 'pale-blue' => 'rgb(175,238,238)', + 'pale-brown' => 'rgb(152,118,84)', + 'pale-chestnut' => 'rgb(221,173,175)', + 'pale-pink' => 'rgb(250,218,221)', + 'peach' => 'rgb(255,229,180)', + 'pearl' => 'rgb(240,234,214)', + 'periwinkle' => 'rgb(204,204,255)', + 'pine-green' => 'rgb(1,121,111)', + 'pink' => 'rgb(255,192,203)', + 'plum' => 'rgb(102,0,102)', + 'puce' => 'rgb(204,136,153)', + 'pumpkin' => 'rgb(255,117,24)', + 'purple' => 'rgb(102,0,153)', + 'raw-umber' => 'rgb(115,74,18)', + 'red' => 'rgb(255,0,0)', + 'russet' => 'rgb(117,90,87)', + 'rust' => 'rgb(183,65,14)', + 'saffron' => 'rgb(244,196,48)', + 'scarlet' => 'rgb(255,36,0)', + 'sea-green' => 'rgb(46,139,87)', + 'sepia' => 'rgb(112,66,20)', + 'silver' => 'rgb(192,192,192)', + 'sky-blue' => 'rgb(135,206,235)', + 'slate-gray' => 'rgb(112,128,144)', + 'spring-green' => 'rgb(0,255,127)', + 'tan' => 'rgb(210,180,140)', + 'dark-taupe' => 'rgb(72,60,50)', + 'taupe-gray' => 'rgb(139,133,137)', + 'taupe' => 'rgb(103,76,71)', + 'purple-taupe' => 'rgb(80,64,77)', + 'pale-taupe' => 'rgb(188,152,126)', + 'rose-taupe' => 'rgb(144,93,93)', + 'sandy-taupe' => 'rgb(150,113,23)', + 'teal' => 'rgb(0,128,128)', + 'turquoise' => 'rgb(48,213,200)', + 'vermilion' => 'rgb(227,66,52)', + 'violet' => 'rgb(139,0,255)', + 'white' => 'rgb(255,255,255)', + 'yellow' => 'rgb(255,255,0)', + 'yellow-green' => 'rgb(154,205,50)', + ); + /** * Color */ private $name; public function __construct($name) { $this->name = $name; - global $DFCOLORS; if (preg_match('/^([0-9a-fA-F]{3}){1,2}$/', $this->name)) { // Prepend a # to hexadecimal colors $this->name = '#' . $this->name; } if (preg_match('/^[0-7]:[0-1]$/', $this->name)) { // Convert DF colors into hexadecimal - $this->name = $DFCOLORS[$this->name]; + $this->name = self::DFCOLORS[$this->name]; } - // Search for color in $DFCOLORS - foreach ($DFCOLORS as $color => $value) { + // Search for color in self::DFCOLORS + foreach (self::DFCOLORS as $color => $value) { if ($color == preg_replace('/[_\s]/', '-', $name)) { $this->name = $value; break; diff --git a/extension.json b/extension.json index ba3d807..2bffd0d 100644 --- a/extension.json +++ b/extension.json @@ -20,8 +20,9 @@ "DFDiagramMagic": "DFDiagram.magic.php" }, "config": { - "$DFDDefaultDiagramPath": { - "value": "dirname(__FILE__) .'/default_diagram.txt'" + "DFDDefaultDiagramPath": { + "value": "default_diagram.txt", + "path": true } }, "DefaultUserOptions": { @@ -29,7 +30,7 @@ }, "ResourceModules": { "ext.DFDiagram": { - "localBasePath": "__DIR__", + "localBasePath": "", "remoteExtPath": "DFDiagram", "styles": [ "modules/ext.DFDiagram.css" @@ -37,7 +38,7 @@ "position": "top" }, "ext.DFDiagram.canvas": { - "localBasePath": "__DIR__", + "localBasePath": "", "remoteExtPath": "DFDiagram", "scripts": [ "modules/df-tileset/df-tileset.js", diff --git a/i18n/ru.json b/i18n/ru.json index 1b17998..4870f67 100644 --- a/i18n/ru.json +++ b/i18n/ru.json @@ -6,7 +6,7 @@ }, "prefs-dfdiagram": "Диаграммы", "prefs-dfdiagram-canvas": "Настройки холста", - "dfdiagram-use-canvas": "Включить отображение холста (requires JavaScript)" + "dfdiagram-use-canvas": "Включить отображение холста (требует поддержки JavaScript)" } From b7a3a3f42782ed6da5e1f0025abfc710a0fd82a7 Mon Sep 17 00:00:00 2001 From: mexahotabop Date: Wed, 6 Jul 2022 21:21:08 +0300 Subject: [PATCH 3/5] extension.json: add missing MessagesDirs --- extension.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/extension.json b/extension.json index 2bffd0d..95c2046 100644 --- a/extension.json +++ b/extension.json @@ -28,6 +28,11 @@ "DefaultUserOptions": { "dfdiagram-use-canvas": true }, + "MessagesDirs": { + "DFDiagram": [ + "i18n" + ] + }, "ResourceModules": { "ext.DFDiagram": { "localBasePath": "", From a30827be4de947b13de2d1bca75e8619ae8e10a5 Mon Sep 17 00:00:00 2001 From: mexahotabop Date: Tue, 21 Jan 2025 21:32:04 +0300 Subject: [PATCH 4/5] Remove JS canvas toggle Current option code not compatible with mw 1.40 $user->getOption been removed in favor userOptionsLookup->getOption Need a bit more digging for proper solution, but shall work for now --- Diagram.php | 13 +------------ extension.json | 3 --- i18n/en.json | 3 +-- i18n/qqq.json | 3 +-- i18n/ru.json | 3 +-- 5 files changed, 4 insertions(+), 21 deletions(-) diff --git a/Diagram.php b/Diagram.php index 332f7ab..becac4d 100644 --- a/Diagram.php +++ b/Diagram.php @@ -349,19 +349,8 @@ static public function includeModules(OutputPage $outPage, Skin $skin) { $user = $skin->getContext()->getUser(); $outPage->addModuleStyles(array('ext.DFDiagram')); - if($user->getOption('dfdiagram-use-canvas')) { - $outPage->addModules('ext.DFDiagram.canvas'); - } + $outPage->addModules('ext.DFDiagram.canvas'); return true; } - static public function getPreferences(User $user, array &$preferences) { - // Create preferences - $preferences['dfdiagram-use-canvas'] = array( - 'type' => 'toggle', - 'label-message' => 'dfdiagram-use-canvas', - 'section' => 'dfdiagram/dfdiagram-canvas' - ); - return true; - } } diff --git a/extension.json b/extension.json index 95c2046..3e25cf6 100644 --- a/extension.json +++ b/extension.json @@ -25,9 +25,6 @@ "path": true } }, - "DefaultUserOptions": { - "dfdiagram-use-canvas": true - }, "MessagesDirs": { "DFDiagram": [ "i18n" diff --git a/i18n/en.json b/i18n/en.json index 7e13a90..cc24b52 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -5,7 +5,6 @@ ] }, "prefs-dfdiagram": "Diagrams", - "prefs-dfdiagram-canvas": "Canvas options", - "dfdiagram-use-canvas": "Enable canvas display (requires JavaScript)" + "prefs-dfdiagram-canvas": "Canvas options" } diff --git a/i18n/qqq.json b/i18n/qqq.json index 3a2c7f8..65092c6 100644 --- a/i18n/qqq.json +++ b/i18n/qqq.json @@ -5,8 +5,7 @@ ] }, "prefs-dfdiagram": "DFDiagram preferences title", - "prefs-dfdiagram-canvas": "DFDiagram preferences canvas section title", - "dfdiagram-use-canvas": "Toggle canvas-based display of diagrams" + "prefs-dfdiagram-canvas": "DFDiagram preferences canvas section title" } diff --git a/i18n/ru.json b/i18n/ru.json index 4870f67..24db465 100644 --- a/i18n/ru.json +++ b/i18n/ru.json @@ -5,8 +5,7 @@ ] }, "prefs-dfdiagram": "Диаграммы", - "prefs-dfdiagram-canvas": "Настройки холста", - "dfdiagram-use-canvas": "Включить отображение холста (требует поддержки JavaScript)" + "prefs-dfdiagram-canvas": "Настройки холста" } From d3de1a7af4c69d71570327259d622a3e298fa4e4 Mon Sep 17 00:00:00 2001 From: mexahotabop Date: Tue, 21 Jan 2025 21:51:32 +0300 Subject: [PATCH 5/5] extension.json: remove unused GetPreferences hook --- extension.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/extension.json b/extension.json index 3e25cf6..c5a7dfb 100644 --- a/extension.json +++ b/extension.json @@ -10,8 +10,7 @@ }, "Hooks": { "ParserFirstCallInit": "DFDMWHooks::init", - "BeforePageDisplay": "DFDMWHooks::includeModules", - "GetPreferences": "DFDMWHooks::getPreferences" + "BeforePageDisplay": "DFDMWHooks::includeModules" }, "AutoloadClasses": { "DFDMWHooks": "Diagram.php"