xref: /dokuwiki/inc/deprecated.php (revision 2cda016644e923dbda996c52bedee2113ba6d653)
14cdb6842SAndreas Gohr<?php
2b4c31a26SSatoshi Sahara// phpcs:ignoreFile -- this file violates PSR-12 by definition
34cdb6842SAndreas Gohr/**
44cdb6842SAndreas Gohr * These classes and functions are deprecated and will be removed in future releases
5a0aeafaaSAndreas Gohr *
6a0aeafaaSAndreas Gohr * Note: when adding to this file, please also add appropriate actions to _test/rector.php
74cdb6842SAndreas Gohr */
84cdb6842SAndreas Gohr
9451969abSMichael Großeuse dokuwiki\Debug\DebugHelper;
1073dc0a89SAndreas Gohruse dokuwiki\MailUtils;
11451969abSMichael Große
124cdb6842SAndreas Gohr/**
13723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \dokuwiki\Remote\IXR\Client instead!
14723f2b49SGerrit Uitslag */
15723f2b49SGerrit Uitslagclass IXR_Client extends \dokuwiki\Remote\IXR\Client
16723f2b49SGerrit Uitslag{
17723f2b49SGerrit Uitslag    /**
184cdb6842SAndreas Gohr     * @inheritdoc
19723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
204cdb6842SAndreas Gohr     */
21723f2b49SGerrit Uitslag    public function __construct($server, $path = false, $port = 80, $timeout = 15, $timeout_io = null)
22d443762bSAndreas Gohr    {
23723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(dokuwiki\Remote\IXR\Client::class);
24723f2b49SGerrit Uitslag        parent::__construct($server, $path, $port, $timeout, $timeout_io);
25723f2b49SGerrit Uitslag    }
26723f2b49SGerrit Uitslag}
27723f2b49SGerrit Uitslag/**
28723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\Client\ClientMulticall instead!
29723f2b49SGerrit Uitslag */
30723f2b49SGerrit Uitslagclass IXR_ClientMulticall extends \IXR\Client\ClientMulticall
31d443762bSAndreas Gohr{
324cdb6842SAndreas Gohr    /**
334cdb6842SAndreas Gohr     * @inheritdoc
34723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
354cdb6842SAndreas Gohr     */
36723f2b49SGerrit Uitslag    public function __construct($server, $path = false, $port = 80)
37d443762bSAndreas Gohr    {
38723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\Client\ClientMulticall::class);
39723f2b49SGerrit Uitslag        parent::__construct($server, $path, $port);
404cdb6842SAndreas Gohr    }
414cdb6842SAndreas Gohr}
424cdb6842SAndreas Gohr/**
43723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\Server\Server instead!
444cdb6842SAndreas Gohr */
45723f2b49SGerrit Uitslagclass IXR_Server extends \IXR\Server\Server
46d443762bSAndreas Gohr{
47a6e1db4aSAndreas Gohr    /**
48a6e1db4aSAndreas Gohr     * @inheritdoc
49723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
50a6e1db4aSAndreas Gohr     */
51723f2b49SGerrit Uitslag    public function __construct($callbacks = false, $data = false, $wait = false)
52d443762bSAndreas Gohr    {
53723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\Server\Server::class);
54723f2b49SGerrit Uitslag        parent::__construct($callbacks, $data, $wait);
55a6e1db4aSAndreas Gohr    }
56a6e1db4aSAndreas Gohr}
57723f2b49SGerrit Uitslag/**
58723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\Server\IntrospectionServer instead!
59723f2b49SGerrit Uitslag */
60723f2b49SGerrit Uitslagclass IXR_IntrospectionServer extends \IXR\Server\IntrospectionServer
61723f2b49SGerrit Uitslag{
62a6e1db4aSAndreas Gohr    /**
63a6e1db4aSAndreas Gohr     * @inheritdoc
64723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
65ccc4c71cSAndreas Gohr     */
66ccc4c71cSAndreas Gohr    public function __construct()
67ccc4c71cSAndreas Gohr    {
68723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\Server\IntrospectionServer::class);
69ccc4c71cSAndreas Gohr        parent::__construct();
70ccc4c71cSAndreas Gohr    }
71ccc4c71cSAndreas Gohr}
72ccc4c71cSAndreas Gohr/**
73723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\Request\Request instead!
74ccc4c71cSAndreas Gohr */
75723f2b49SGerrit Uitslagclass IXR_Request extends \IXR\Request\Request
76ccc4c71cSAndreas Gohr{
77ccc4c71cSAndreas Gohr    /**
78ccc4c71cSAndreas Gohr     * @inheritdoc
79723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
80ccc4c71cSAndreas Gohr     */
81723f2b49SGerrit Uitslag    public function __construct($method, $args)
82ccc4c71cSAndreas Gohr    {
83723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\Request\Request::class);
84723f2b49SGerrit Uitslag        parent::__construct($method, $args);
85ccc4c71cSAndreas Gohr    }
86ccc4c71cSAndreas Gohr}
87ccc4c71cSAndreas Gohr/**
88723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\Message\Message instead!
89ccc4c71cSAndreas Gohr */
90723f2b49SGerrit Uitslagclass IXR_Message extends IXR\Message\Message
91ccc4c71cSAndreas Gohr{
92c3cc6e05SAndreas Gohr    /**
93c3cc6e05SAndreas Gohr     * @inheritdoc
94723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
95c3cc6e05SAndreas Gohr     */
96723f2b49SGerrit Uitslag    public function __construct($message)
97723f2b49SGerrit Uitslag    {
98723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\Message\Message::class);
99723f2b49SGerrit Uitslag        parent::__construct($message);
100723f2b49SGerrit Uitslag    }
101723f2b49SGerrit Uitslag}
102723f2b49SGerrit Uitslag/**
103723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\Message\Error instead!
104723f2b49SGerrit Uitslag */
105723f2b49SGerrit Uitslagclass IXR_Error extends \IXR\Message\Error
106723f2b49SGerrit Uitslag{
107c3cc6e05SAndreas Gohr    /**
108c3cc6e05SAndreas Gohr     * @inheritdoc
109723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
110c3cc6e05SAndreas Gohr     */
111723f2b49SGerrit Uitslag    public function __construct($code, $message)
112c3cc6e05SAndreas Gohr    {
113723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\Message\Error::class);
114723f2b49SGerrit Uitslag        parent::__construct($code, $message);
115c3cc6e05SAndreas Gohr    }
116c3cc6e05SAndreas Gohr}
11760b9af73SMichael Große/**
118723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\DataType\Date instead!
11960b9af73SMichael Große */
120723f2b49SGerrit Uitslagclass IXR_Date extends \IXR\DataType\Date
121723f2b49SGerrit Uitslag{
12260b9af73SMichael Große    /**
12360b9af73SMichael Große     * @inheritdoc
124723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
12560b9af73SMichael Große     */
126723f2b49SGerrit Uitslag    public function __construct($time)
12760b9af73SMichael Große    {
128723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\DataType\Date::class);
129723f2b49SGerrit Uitslag        parent::__construct($time);
13060b9af73SMichael Große    }
13160b9af73SMichael Große}
13260b9af73SMichael Große/**
133723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\DataType\Base64 instead!
13460b9af73SMichael Große */
135723f2b49SGerrit Uitslagclass IXR_Base64 extends \IXR\DataType\Base64
136723f2b49SGerrit Uitslag{
13760b9af73SMichael Große    /**
13860b9af73SMichael Große     * @inheritdoc
139723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
14060b9af73SMichael Große     */
141723f2b49SGerrit Uitslag    public function __construct($data)
14260b9af73SMichael Große    {
143723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\DataType\Base64::class);
144723f2b49SGerrit Uitslag        parent::__construct($data);
14560b9af73SMichael Große    }
14660b9af73SMichael Große}
14760b9af73SMichael Große/**
148723f2b49SGerrit Uitslag * @deprecated since 2021-11-11 use \IXR\DataType\Value instead!
14960b9af73SMichael Große */
150723f2b49SGerrit Uitslagclass IXR_Value extends \IXR\DataType\Value
151cbb44eabSAndreas Gohr{
15260b9af73SMichael Große    /**
15360b9af73SMichael Große     * @inheritdoc
154723f2b49SGerrit Uitslag     * @deprecated 2021-11-11
15560b9af73SMichael Große     */
156723f2b49SGerrit Uitslag    public function __construct($data, $type = null)
15760b9af73SMichael Große    {
158723f2b49SGerrit Uitslag        DebugHelper::dbgDeprecatedFunction(IXR\DataType\Value::class);
159723f2b49SGerrit Uitslag        parent::__construct($data, $type);
16060b9af73SMichael Große    }
161cbb44eabSAndreas Gohr}
16260b9af73SMichael Große
163cbb44eabSAndreas Gohr/**
164c8dd1b9dSAndreas Gohr * returns all available parser syntax modes in correct order
165c8dd1b9dSAndreas Gohr *
166c8dd1b9dSAndreas Gohr * @return array[] with for each plugin the array('sort' => sortnumber, 'mode' => mode string, 'obj'  => plugin object)
167c8dd1b9dSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org>
168c8dd1b9dSAndreas Gohr * @deprecated 2026-04-16 use \dokuwiki\Parsing\ModeRegistry::getModes() instead
169c8dd1b9dSAndreas Gohr */
170c8dd1b9dSAndreas Gohrfunction p_get_parsermodes()
171c8dd1b9dSAndreas Gohr{
172c8dd1b9dSAndreas Gohr    DebugHelper::dbgDeprecatedFunction(\dokuwiki\Parsing\ModeRegistry::class . '::getModes()');
173c8dd1b9dSAndreas Gohr    return \dokuwiki\Parsing\ModeRegistry::getInstance()->getModes();
174c8dd1b9dSAndreas Gohr}
175c8dd1b9dSAndreas Gohr
176c8dd1b9dSAndreas Gohr/**
177c8dd1b9dSAndreas Gohr * Callback function for usort
178c8dd1b9dSAndreas Gohr *
179c8dd1b9dSAndreas Gohr * @param array $a
180c8dd1b9dSAndreas Gohr * @param array $b
181c8dd1b9dSAndreas Gohr * @return int $a is lower/equal/higher than $b
182c8dd1b9dSAndreas Gohr * @author Andreas Gohr <andi@splitbrain.org>
183c8dd1b9dSAndreas Gohr * @deprecated 2026-04-16 use \dokuwiki\Parsing\ModeRegistry::sortModes() instead
184c8dd1b9dSAndreas Gohr */
185c8dd1b9dSAndreas Gohrfunction p_sort_modes($a, $b)
186c8dd1b9dSAndreas Gohr{
187c8dd1b9dSAndreas Gohr    DebugHelper::dbgDeprecatedFunction(\dokuwiki\Parsing\ModeRegistry::class . '::sortModes()');
188c8dd1b9dSAndreas Gohr    return \dokuwiki\Parsing\ModeRegistry::sortModes($a, $b);
189c8dd1b9dSAndreas Gohr}
190c8dd1b9dSAndreas Gohr
191c8dd1b9dSAndreas Gohr/**
192f9a94e78SAndreas Gohr * print a newline terminated string
193cbb44eabSAndreas Gohr *
194f9a94e78SAndreas Gohr * You can give an indention as optional parameter
195451969abSMichael Große *
196451969abSMichael Große * @author Andreas Gohr <andi@splitbrain.org>
197451969abSMichael Große *
198f9a94e78SAndreas Gohr * @param string $string  line of text
199f9a94e78SAndreas Gohr * @param int    $indent  number of spaces indention
200f9a94e78SAndreas Gohr * @deprecated 2023-08-31 use echo instead
201451969abSMichael Große */
202f9a94e78SAndreas Gohrfunction ptln($string, $indent = 0)
203f9a94e78SAndreas Gohr{
204f9a94e78SAndreas Gohr    DebugHelper::dbgDeprecatedFunction('echo');
205f9a94e78SAndreas Gohr    echo str_repeat(' ', $indent) . "$string\n";
206451969abSMichael Große}
2076225b270SMichael Große
2086225b270SMichael Große/**
2099df9f0c8SAndreas Gohr * Adds/updates the search index for the given page
2106f58ff65SSatoshi Sahara *
2119df9f0c8SAndreas Gohr * Locking is handled internally.
212b4c31a26SSatoshi Sahara *
2139df9f0c8SAndreas Gohr * @param string $page   name of the page to index
214*2cda0166SAndreas Gohr * @param boolean $verbose    ignored; status messages are no longer printed
2159df9f0c8SAndreas Gohr * @param boolean $force  force reindexing even when the index is up to date
216*2cda0166SAndreas Gohr * @return boolean true if the page was indexed, false if there was nothing to do or an error occurred
2176f58ff65SSatoshi Sahara *
218e1272c08SAndreas Gohr * @deprecated 2026-04-07 use Indexer class instead
2196f58ff65SSatoshi Sahara */
2209df9f0c8SAndreas Gohrfunction idx_addPage($page, $verbose = false, $force = false)
2219df9f0c8SAndreas Gohr{
22283b3acccSAndreas Gohr    DebugHelper::dbgDeprecatedFunction('dokuwiki\Search\Indexer::addPage()');
2239df9f0c8SAndreas Gohr    try {
224*2cda0166SAndreas Gohr        return (new dokuwiki\Search\Indexer())->addPage($page, $force);
2259df9f0c8SAndreas Gohr    } catch (\dokuwiki\Search\Exception\SearchException $e) {
2269df9f0c8SAndreas Gohr        return false;
2276f58ff65SSatoshi Sahara    }
2286f58ff65SSatoshi Sahara}
229e1272c08SAndreas Gohr
230e1272c08SAndreas Gohr/**
231e1272c08SAndreas Gohr * Create an instance of the indexer.
232e1272c08SAndreas Gohr *
2336e39b4e3SAndreas Gohr * Returns a {@see dokuwiki\Search\LegacyIndexer} that preserves the legacy
2346e39b4e3SAndreas Gohr * Doku_Indexer return contract (true|string on success/failure for the four
2356e39b4e3SAndreas Gohr * mutating methods) so existing plugins keep working without try/catch.
2366e39b4e3SAndreas Gohr *
2376e39b4e3SAndreas Gohr * @return dokuwiki\Search\LegacyIndexer
238e1272c08SAndreas Gohr *
239e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\Indexer directly
240e1272c08SAndreas Gohr */
241e1272c08SAndreas Gohrfunction idx_get_indexer()
242e1272c08SAndreas Gohr{
243e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\Indexer::class);
2446e39b4e3SAndreas Gohr    return new dokuwiki\Search\LegacyIndexer();
245e1272c08SAndreas Gohr}
246e1272c08SAndreas Gohr
247e1272c08SAndreas Gohr/**
248e1272c08SAndreas Gohr * Read the list of words in an index (if it exists).
249e1272c08SAndreas Gohr *
250e1272c08SAndreas Gohr * @param string $idx
251e1272c08SAndreas Gohr * @param string $suffix
252e1272c08SAndreas Gohr * @return array
253e1272c08SAndreas Gohr *
254e1272c08SAndreas Gohr * @deprecated 2026-04-07 use Index classes directly
255e1272c08SAndreas Gohr */
256e1272c08SAndreas Gohrfunction idx_getIndex($idx, $suffix)
257e1272c08SAndreas Gohr{
258e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction('Index classes');
259e1272c08SAndreas Gohr    global $conf;
260e1272c08SAndreas Gohr    $fn = $conf['indexdir'] . '/' . $idx . $suffix . '.idx';
261e1272c08SAndreas Gohr    if (!file_exists($fn)) return [];
262e1272c08SAndreas Gohr    return file($fn);
263e1272c08SAndreas Gohr}
264e1272c08SAndreas Gohr
265e1272c08SAndreas Gohr/**
266e1272c08SAndreas Gohr * Find tokens in the fulltext index
267e1272c08SAndreas Gohr *
268e1272c08SAndreas Gohr * @param array $words list of words to search for
269e1272c08SAndreas Gohr * @return array list of pages found
270e1272c08SAndreas Gohr *
271e1272c08SAndreas Gohr * @deprecated 2026-04-07 use CollectionSearch on PageFulltextCollection instead
272e1272c08SAndreas Gohr */
273e1272c08SAndreas Gohrfunction idx_lookup(&$words)
274e1272c08SAndreas Gohr{
275e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\Collection\CollectionSearch::class);
2766e39b4e3SAndreas Gohr    return (new dokuwiki\Search\LegacyIndexer())->lookup($words);
277e1272c08SAndreas Gohr}
278e1272c08SAndreas Gohr
279e1272c08SAndreas Gohr/**
280e1272c08SAndreas Gohr * Get the list of lengths indexed in the wiki.
281e1272c08SAndreas Gohr *
282e1272c08SAndreas Gohr * @return array
283e1272c08SAndreas Gohr *
284e1272c08SAndreas Gohr * @deprecated 2026-04-07 use PageFulltextCollection::getTokenIndexMaximum() instead
285e1272c08SAndreas Gohr */
286e1272c08SAndreas Gohrfunction idx_listIndexLengths()
287e1272c08SAndreas Gohr{
288e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction('PageFulltextCollection::getTokenIndexMaximum()');
289e1272c08SAndreas Gohr    global $conf;
290e1272c08SAndreas Gohr    $idx = [];
291e1272c08SAndreas Gohr    $files = glob($conf['indexdir'] . '/i*.idx');
292e1272c08SAndreas Gohr    if ($files) {
293e1272c08SAndreas Gohr        foreach ($files as $file) {
294e1272c08SAndreas Gohr            if (preg_match('/i(\d+)\.idx$/', $file, $match)) {
295e1272c08SAndreas Gohr                $idx[] = (int)$match[1];
296e1272c08SAndreas Gohr            }
297e1272c08SAndreas Gohr        }
298e1272c08SAndreas Gohr        sort($idx);
299e1272c08SAndreas Gohr    }
300e1272c08SAndreas Gohr    return $idx;
301e1272c08SAndreas Gohr}
302e1272c08SAndreas Gohr
303e1272c08SAndreas Gohr/**
304e1272c08SAndreas Gohr * Get the word lengths that have been indexed.
305e1272c08SAndreas Gohr *
306e1272c08SAndreas Gohr * @param array|int $filter
307e1272c08SAndreas Gohr * @return array
308e1272c08SAndreas Gohr *
309e1272c08SAndreas Gohr * @deprecated 2026-04-07 use PageFulltextCollection::getTokenIndexMaximum() instead
310e1272c08SAndreas Gohr */
311e1272c08SAndreas Gohrfunction idx_indexLengths($filter)
312e1272c08SAndreas Gohr{
313e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction('PageFulltextCollection::getTokenIndexMaximum()');
314e1272c08SAndreas Gohr    global $conf;
315e1272c08SAndreas Gohr    $idx = [];
316e1272c08SAndreas Gohr    if (is_array($filter)) {
317e1272c08SAndreas Gohr        $path = $conf['indexdir'] . "/i";
318e1272c08SAndreas Gohr        foreach (array_keys($filter) as $key) {
319e1272c08SAndreas Gohr            if (file_exists($path . $key . '.idx'))
320e1272c08SAndreas Gohr                $idx[] = $key;
321e1272c08SAndreas Gohr        }
322e1272c08SAndreas Gohr    } else {
323e1272c08SAndreas Gohr        $lengths = idx_listIndexLengths();
324e1272c08SAndreas Gohr        foreach ($lengths as $length) {
325e1272c08SAndreas Gohr            if ((int)$length >= (int)$filter)
326e1272c08SAndreas Gohr                $idx[] = $length;
327e1272c08SAndreas Gohr        }
328e1272c08SAndreas Gohr    }
329e1272c08SAndreas Gohr    return $idx;
330e1272c08SAndreas Gohr}
331e1272c08SAndreas Gohr
332e1272c08SAndreas Gohr/**
333e1272c08SAndreas Gohr * Execute a fulltext search
334e1272c08SAndreas Gohr *
335e1272c08SAndreas Gohr * @param string $query search query
336e1272c08SAndreas Gohr * @param array $highlight words to highlight
337e1272c08SAndreas Gohr * @param string|null $sort sorting order
338e1272c08SAndreas Gohr * @param int|string|null $after only show results after this date
339e1272c08SAndreas Gohr * @param int|string|null $before only show results before this date
340e1272c08SAndreas Gohr * @return array
341e1272c08SAndreas Gohr *
342e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\FulltextSearch::pageSearch() instead
343e1272c08SAndreas Gohr */
344e1272c08SAndreas Gohrfunction ft_pageSearch($query, &$highlight, $sort = null, $after = null, $before = null)
345e1272c08SAndreas Gohr{
346e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\FulltextSearch::class . '::pageSearch()');
3479313ce6dSAndreas Gohr    if (!is_array($highlight)) $highlight = [];
348e1272c08SAndreas Gohr    return (new dokuwiki\Search\FulltextSearch())->pageSearch($query, $highlight, $sort, $after, $before);
349e1272c08SAndreas Gohr}
350e1272c08SAndreas Gohr
351e1272c08SAndreas Gohr/**
352e1272c08SAndreas Gohr * Returns the backlinks for a given page
353e1272c08SAndreas Gohr *
354e1272c08SAndreas Gohr * @param string $id page id
355e1272c08SAndreas Gohr * @param bool $ignore_perms
356e1272c08SAndreas Gohr * @return string[]
357e1272c08SAndreas Gohr *
358e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\MetadataSearch::backlinks() instead
359e1272c08SAndreas Gohr */
360e1272c08SAndreas Gohrfunction ft_backlinks($id, $ignore_perms = false)
361e1272c08SAndreas Gohr{
362e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\MetadataSearch::class . '::backlinks()');
363e1272c08SAndreas Gohr    return (new dokuwiki\Search\MetadataSearch())->backlinks($id, $ignore_perms);
364e1272c08SAndreas Gohr}
365e1272c08SAndreas Gohr
366e1272c08SAndreas Gohr/**
367e1272c08SAndreas Gohr * Returns the pages that use a given media file
368e1272c08SAndreas Gohr *
369e1272c08SAndreas Gohr * @param string $id media id
370e1272c08SAndreas Gohr * @param bool $ignore_perms
371e1272c08SAndreas Gohr * @return string[]
372e1272c08SAndreas Gohr *
373e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\MetadataSearch::mediause() instead
374e1272c08SAndreas Gohr */
375e1272c08SAndreas Gohrfunction ft_mediause($id, $ignore_perms = false)
376e1272c08SAndreas Gohr{
377e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\MetadataSearch::class . '::mediause()');
378e1272c08SAndreas Gohr    return (new dokuwiki\Search\MetadataSearch())->mediause($id, $ignore_perms);
379e1272c08SAndreas Gohr}
380e1272c08SAndreas Gohr
381e1272c08SAndreas Gohr/**
382e1272c08SAndreas Gohr * Quicksearch for pagenames
383e1272c08SAndreas Gohr *
384e1272c08SAndreas Gohr * @param string $id page id
385e1272c08SAndreas Gohr * @param bool $in_ns match namespace
386e1272c08SAndreas Gohr * @param bool $in_title search in title
387e1272c08SAndreas Gohr * @param int|string|null $after
388e1272c08SAndreas Gohr * @param int|string|null $before
389e1272c08SAndreas Gohr * @return string[]
390e1272c08SAndreas Gohr *
391e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\MetadataSearch::pageLookup() instead
392e1272c08SAndreas Gohr */
393e1272c08SAndreas Gohrfunction ft_pageLookup($id, $in_ns = false, $in_title = false, $after = null, $before = null)
394e1272c08SAndreas Gohr{
395e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\MetadataSearch::class . '::pageLookup()');
396e1272c08SAndreas Gohr    return (new dokuwiki\Search\MetadataSearch())->pageLookup($id, $in_ns, $in_title, $after, $before);
397e1272c08SAndreas Gohr}
398e1272c08SAndreas Gohr
399e1272c08SAndreas Gohr/**
400e1272c08SAndreas Gohr * Creates a snippet extract
401e1272c08SAndreas Gohr *
402e1272c08SAndreas Gohr * @param string $id page id
403e1272c08SAndreas Gohr * @param array $highlight words to highlight
404e1272c08SAndreas Gohr * @return string
405e1272c08SAndreas Gohr *
406e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\FulltextSearch::snippet() instead
407e1272c08SAndreas Gohr */
408e1272c08SAndreas Gohrfunction ft_snippet($id, $highlight)
409e1272c08SAndreas Gohr{
410e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\FulltextSearch::class . '::snippet()');
411e1272c08SAndreas Gohr    return (new dokuwiki\Search\FulltextSearch())->snippet($id, $highlight);
412e1272c08SAndreas Gohr}
413e1272c08SAndreas Gohr
414e1272c08SAndreas Gohr/**
415e1272c08SAndreas Gohr * Sort pages based on their namespace level first, then alphabetically
416e1272c08SAndreas Gohr *
417e1272c08SAndreas Gohr * @param string $a
418e1272c08SAndreas Gohr * @param string $b
419e1272c08SAndreas Gohr * @return int
420e1272c08SAndreas Gohr *
421e1272c08SAndreas Gohr * @deprecated 2026-04-07 use Utf8\Sort functions directly
422e1272c08SAndreas Gohr */
423e1272c08SAndreas Gohrfunction ft_pagesorter($a, $b)
424e1272c08SAndreas Gohr{
425e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction('Utf8\\Sort');
426e1272c08SAndreas Gohr    $diff = substr_count($a, ':') - substr_count($b, ':');
427e1272c08SAndreas Gohr    return $diff ?: dokuwiki\Utf8\Sort::strcmp($a, $b);
428e1272c08SAndreas Gohr}
429e1272c08SAndreas Gohr
430e1272c08SAndreas Gohr/**
431e1272c08SAndreas Gohr * Wrap a search term in regex boundary checks
432e1272c08SAndreas Gohr *
433e1272c08SAndreas Gohr * @param string $term
434e1272c08SAndreas Gohr * @return string
435e1272c08SAndreas Gohr *
436e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\FulltextSearch::snippetRePreprocess() instead
437e1272c08SAndreas Gohr */
438e1272c08SAndreas Gohrfunction ft_snippet_re_preprocess($term)
439e1272c08SAndreas Gohr{
440e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\FulltextSearch::class . '::snippetRePreprocess()');
441e1272c08SAndreas Gohr    return (new dokuwiki\Search\FulltextSearch())->snippetRePreprocess($term);
442e1272c08SAndreas Gohr}
443e1272c08SAndreas Gohr
444e1272c08SAndreas Gohr/**
445e1272c08SAndreas Gohr * Parse a search query into its components
446e1272c08SAndreas Gohr *
447e1272c08SAndreas Gohr * @param mixed $Indexer ignored (legacy parameter)
448e1272c08SAndreas Gohr * @param string $query search query
449e1272c08SAndreas Gohr * @return array parsed query structure
450e1272c08SAndreas Gohr *
451e1272c08SAndreas Gohr * @deprecated 2026-04-07 use dokuwiki\Search\Query\QueryParser::convert() instead
452e1272c08SAndreas Gohr */
453e1272c08SAndreas Gohrfunction ft_queryParser($Indexer, $query)
454e1272c08SAndreas Gohr{
455e1272c08SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(dokuwiki\Search\Query\QueryParser::class . '::convert()');
456e1272c08SAndreas Gohr    return (new dokuwiki\Search\Query\QueryParser())->convert($query);
457e1272c08SAndreas Gohr}
4589db5ea06SAndreas Gohr
4599db5ea06SAndreas Gohr/**
46071096e46SAndreas Gohr * @deprecated 2026-04-16 use \dokuwiki\Parsing\ParserMode\Media::parseMedia() instead
46171096e46SAndreas Gohr */
46271096e46SAndreas Gohrfunction Doku_Handler_Parse_Media($match)
46371096e46SAndreas Gohr{
46471096e46SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(\dokuwiki\Parsing\ParserMode\Media::class . '::parseMedia()');
46571096e46SAndreas Gohr    return \dokuwiki\Parsing\ParserMode\Media::parseMedia($match);
46671096e46SAndreas Gohr}
46773dc0a89SAndreas Gohr
46873dc0a89SAndreas Gohr/**
46973dc0a89SAndreas Gohr * @deprecated 2026-05-06 use \dokuwiki\MailUtils::PREG_PATTERN_VALID_EMAIL instead!
47073dc0a89SAndreas Gohr */
47173dc0a89SAndreas Gohrif (!defined('PREG_PATTERN_VALID_EMAIL')) define('PREG_PATTERN_VALID_EMAIL', MailUtils::PREG_PATTERN_VALID_EMAIL);
47273dc0a89SAndreas Gohr
47373dc0a89SAndreas Gohr/**
47473dc0a89SAndreas Gohr * @deprecated 2026-05-06 use \dokuwiki\MailUtils::obfuscate() instead!
47573dc0a89SAndreas Gohr */
47673dc0a89SAndreas Gohrfunction obfuscate($email)
47773dc0a89SAndreas Gohr{
47873dc0a89SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(MailUtils::class . '::obfuscate');
47973dc0a89SAndreas Gohr    return MailUtils::obfuscate($email);
48073dc0a89SAndreas Gohr}
48173dc0a89SAndreas Gohr
48273dc0a89SAndreas Gohr/**
48373dc0a89SAndreas Gohr * @deprecated 2026-05-06 use \dokuwiki\MailUtils::isValid() instead!
48473dc0a89SAndreas Gohr */
48573dc0a89SAndreas Gohrfunction mail_isvalid($email)
48673dc0a89SAndreas Gohr{
48773dc0a89SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(MailUtils::class . '::isValid');
48873dc0a89SAndreas Gohr    return MailUtils::isValid($email);
48973dc0a89SAndreas Gohr}
49073dc0a89SAndreas Gohr
49173dc0a89SAndreas Gohr/**
49273dc0a89SAndreas Gohr * @deprecated 2026-05-06 use \dokuwiki\MailUtils::quotedPrintableEncode() instead!
49373dc0a89SAndreas Gohr */
49473dc0a89SAndreas Gohrfunction mail_quotedprintable_encode($sText, $maxlen = 74, $bEmulate_imap_8bit = true)
49573dc0a89SAndreas Gohr{
49673dc0a89SAndreas Gohr    DebugHelper::dbgDeprecatedFunction(MailUtils::class . '::quotedPrintableEncode');
49773dc0a89SAndreas Gohr    return MailUtils::quotedPrintableEncode($sText, $maxlen, $bEmulate_imap_8bit);
49873dc0a89SAndreas Gohr}
499