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