From d66a6567331a395705b21e96c351c95bbda8709a Mon Sep 17 00:00:00 2001 From: maxpozdeev Date: Sun, 10 Sep 2023 22:45:08 +0300 Subject: [PATCH] add ext example for custom smart syntax --- src/ext/_examples/CustomSmartSyntax/.htaccess | 1 + .../CustomSmartSyntax/extension.json | 6 +++ .../_examples/CustomSmartSyntax/loader.php | 41 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/ext/_examples/CustomSmartSyntax/.htaccess create mode 100644 src/ext/_examples/CustomSmartSyntax/extension.json create mode 100644 src/ext/_examples/CustomSmartSyntax/loader.php diff --git a/src/ext/_examples/CustomSmartSyntax/.htaccess b/src/ext/_examples/CustomSmartSyntax/.htaccess new file mode 100644 index 0000000..8d2f256 --- /dev/null +++ b/src/ext/_examples/CustomSmartSyntax/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/src/ext/_examples/CustomSmartSyntax/extension.json b/src/ext/_examples/CustomSmartSyntax/extension.json new file mode 100644 index 0000000..a494b51 --- /dev/null +++ b/src/ext/_examples/CustomSmartSyntax/extension.json @@ -0,0 +1,6 @@ +{ + "bundleId": "CustomSmartSyntax", + "name": "Custom Smart Syntax", + "version": "1.0", + "description": "Prototype to write you own smart syntax parser" +} diff --git a/src/ext/_examples/CustomSmartSyntax/loader.php b/src/ext/_examples/CustomSmartSyntax/loader.php new file mode 100644 index 0000000..08306c1 --- /dev/null +++ b/src/ext/_examples/CustomSmartSyntax/loader.php @@ -0,0 +1,41 @@ + + Licensed under the GNU GPL version 2 or any later. See file COPYRIGHT for details. +*/ + +if (!defined('MTTPATH')) { + die("Unexpected usage."); +} + +function mtt_ext_customsmartsyntax_instance(): MTTExtension +{ + return new CustomSmartSyntaxExtension(); +} + +class CustomSmartSyntaxExtension extends MTTExtension implements MTTFilterInterface +{ + //the same as dir name + const bundleId = 'CustomSmartSyntax'; + + function init() { + \MTTFilterCenter::addFilterForAction('parseSmartSyntax', $this); + } + + // parseSmartSyntax + function filter($title, &$out) + { + $a = [ + 'prio' => 0, // int: -1 .. 2 + 'title' => $title, // string + 'tags' => '', // string: "tag1, tag2, tag3,..." + 'duedate' => null, // string: "Y-m-d" format + ]; + + // This filter just overwrites results of default parser + + $out = $a; + } +}