diff --git a/_test/tests/inc/fulltext_query.test.php b/_test/tests/inc/fulltext_query.test.php new file mode 100644 index 0000000000000000000000000000000000000000..9f95a95108524f8c0ff9b8ef98cd9558333b7a38 --- /dev/null +++ b/_test/tests/inc/fulltext_query.test.php @@ -0,0 +1,104 @@ +<?php + +// must be run within Dokuwiki +if (!defined('DOKU_INC')) { + die(); +} + +/** + * Test cases for the link index + * + * @author Michael Große <grosse@cosmocode.de> + * + * @group fulltext + */ +class fulltext_query_test extends DokuWikiTest +{ + public function test_parse_query() + { + $Indexer = idx_get_indexer(); + $inputQuery = 'test -baz "foo bar" @abc ^def'; + + $actualParsedQuery = ft_queryParser($Indexer, $inputQuery); + + $expectedParsedQuery = [ + 'query' => 'test -baz "foo bar" @abc ^def', + 'parsed_str' => '(W+:test)ANDNOT((W-:baz))AND((W_:foo)AND(W_:bar)AND(P+:foo bar))AND(N+:abc)ANDNOT(N-:def)', + 'parsed_ary' => [ + 'W+:test', + 'W-:baz', + 'NOT', + 'AND', + 'W_:foo', + 'W_:bar', + 'AND', + 'P+:foo bar', + 'AND', + 'AND', + 'N+:abc', + 'AND', + 'N-:def', + 'NOT', + 'AND', + ], + 'words' => [ + 'test', + 'baz', + 'foo', + 'bar', + ], + 'highlight' => [ + 'test', + 'foo bar', + ], + 'and' => [ + 'test', + ], + 'phrases' => [ + 'foo bar', + ], + 'ns' => [ + 'abc', + ], + 'notns' => [ + 'def', + ], + 'not' => [ + 'baz', + ], + ]; + $this->assertEquals($expectedParsedQuery, $actualParsedQuery); + } + + public function test_unparse_query() + { + $input = [ + 'and' => [ + 'test', + ], + 'not' => [ + 'baz' + ], + 'phrases' => [ + 'foo bar', + ], + 'ns' => [ + 'abc', + ], + 'notns' => [ + 'def' + ], + ]; + + $actualQuery = ft_queryUnparser_simple( + $input['and'], + $input['not'], + $input['phrases'], + $input['ns'], + $input['notns'] + ); + + $expectedQuery = 'test -baz "foo bar" @abc ^def'; + $this->assertEquals($expectedQuery, $actualQuery); + } +} diff --git a/conf/dokuwiki.php b/conf/dokuwiki.php index c87a7cd0cf678cea41af8d6acb0727758c7d9ceb..97f396ed6f8f645047f69af7d7167ffd294135da 100644 --- a/conf/dokuwiki.php +++ b/conf/dokuwiki.php @@ -156,6 +156,8 @@ $conf['broken_iua'] = 0; //Platform with broken ignore_user_abor $conf['xsendfile'] = 0; //Use X-Sendfile (1 = lighttpd, 2 = standard) $conf['renderer_xhtml'] = 'xhtml'; //renderer to use for main page generation $conf['readdircache'] = 0; //time cache in second for the readdir operation, 0 to deactivate. +$conf['search_limit_to_first_ns'] = 0; //Option to limit the search to the current X namespaces +$conf['search_default_fragment_behaviour'] = 'exact'; // Option to specify the default fragment search behavior /* Network Settings */ $conf['dnslookups'] = 1; //disable to disallow IP to hostname lookups diff --git a/doku.php b/doku.php index d02a4320019d492e5a319fa93f2bd35276bc47e1..eb7b7d472e105c7eb30a054e34bf280c05a83648 100644 --- a/doku.php +++ b/doku.php @@ -35,7 +35,7 @@ require_once(DOKU_INC.'inc/init.php'); //import variables $INPUT->set('id', str_replace("\xC2\xAD", '', $INPUT->str('id'))); //soft-hyphen -$QUERY = trim($INPUT->str('id')); +$QUERY = trim($INPUT->str('q')); $ID = getID(); $REV = $INPUT->int('rev'); diff --git a/inc/Action/Search.php b/inc/Action/Search.php index d4833f4539c7e828fc4b79003e596cb7a6a2bdde..c182ca3e9412cae776e9bfe97fcb04bd38d6f179 100644 --- a/inc/Action/Search.php +++ b/inc/Action/Search.php @@ -13,6 +13,10 @@ use dokuwiki\Action\Exception\ActionAbort; */ class Search extends AbstractAction { + protected $pageLookupResults = array(); + protected $fullTextResults = array(); + protected $highlight = array(); + /** @inheritdoc */ public function minimumPermission() { return AUTH_NONE; @@ -25,13 +29,107 @@ class Search extends AbstractAction { */ public function checkPermissions() { parent::checkPermissions(); - global $QUERY; + } + + public function preProcess() + { + global $QUERY, $ID, $conf, $INPUT; $s = cleanID($QUERY); - if($s === '') throw new ActionAbort(); + + if ($ID !== $conf['start'] && !$INPUT->has('q')) { + parse_str($INPUT->server->str('QUERY_STRING'), $urlParts); + $urlParts['q'] = $urlParts['id']; + $urlParts['id'] = $conf['start']; + $url = DOKU_URL . DOKU_SCRIPT . '?' . http_build_query($urlParts, null, '&'); + send_redirect($url); + } + + if ($s === '') throw new ActionAbort(); + $this->adjustGlobalQuery(); } /** @inheritdoc */ - public function tplContent() { - html_search(); + public function tplContent() + { + $this->execute(); + + $search = new \dokuwiki\Ui\Search($this->pageLookupResults, $this->fullTextResults, $this->highlight); + $search->show(); + } + + + /** + * run the search + */ + protected function execute() + { + global $INPUT, $QUERY; + $after = $INPUT->str('min'); + $before = $INPUT->str('max'); + $this->pageLookupResults = ft_pageLookup($QUERY, true, useHeading('navigation'), $after, $before); + $this->fullTextResults = ft_pageSearch($QUERY, $highlight, $INPUT->str('srt'), $after, $before); + $this->highlight = $highlight; + } + + /** + * Adjust the global query accordingly to the config search_limit_to_first_ns and search_default_fragment_behaviour + * + * This will only do something if the search didn't originate from the form on the searchpage itself + */ + protected function adjustGlobalQuery() + { + global $conf, $INPUT, $QUERY, $ID; + + if ($INPUT->bool('sf')) { + return; + } + + $Indexer = idx_get_indexer(); + $parsedQuery = ft_queryParser($Indexer, $QUERY); + + if (empty($parsedQuery['ns']) && empty($parsedQuery['notns'])) { + if ($conf['search_limit_to_first_ns'] > 0) { + if (getNS($ID) !== false) { + $nsParts = explode(':', getNS($ID)); + $ns = implode(':', array_slice($nsParts, 0, $conf['search_limit_to_first_ns'])); + $QUERY .= " @$ns"; + } + } + } + + if ($conf['search_default_fragment_behaviour'] !== 'exact') { + if (empty(array_diff($parsedQuery['words'], $parsedQuery['and']))) { + if (strpos($QUERY, '*') === false) { + $queryParts = explode(' ', $QUERY); + $queryParts = array_map(function ($part) { + if (strpos($part, '@') === 0) { + return $part; + } + if (strpos($part, 'ns:') === 0) { + return $part; + } + if (strpos($part, '^') === 0) { + return $part; + } + if (strpos($part, '-ns:') === 0) { + return $part; + } + + global $conf; + + if ($conf['search_default_fragment_behaviour'] === 'starts_with') { + return $part . '*'; + } + if ($conf['search_default_fragment_behaviour'] === 'ends_with') { + return '*' . $part; + } + + return '*' . $part . '*'; + + }, $queryParts); + $QUERY = implode(' ', $queryParts); + } + } + } } } diff --git a/inc/Form/Form.php b/inc/Form/Form.php index 2d534aee5cc9f9dd355549f7fa8513025a2b8f89..92bbd30f4daf73087e4903190b9a2a15cf142d77 100644 --- a/inc/Form/Form.php +++ b/inc/Form/Form.php @@ -24,8 +24,9 @@ class Form extends Element { * Creates a new, empty form with some default attributes * * @param array $attributes + * @param bool $unsafe if true, then the security token is ommited */ - public function __construct($attributes = array()) { + public function __construct($attributes = array(), $unsafe = false) { global $ID; parent::__construct('form', $attributes); @@ -49,7 +50,9 @@ class Form extends Element { } // add the security token by default - $this->setHiddenField('sectok', getSecurityToken()); + if (!$unsafe) { + $this->setHiddenField('sectok', getSecurityToken()); + } // identify this as a new form based form in HTML $this->addClass('doku_form'); @@ -78,6 +81,20 @@ class Form extends Element { return count($this->elements); } + /** + * Get the position of the element in the form or false if it is not in the form + * + * Warning: This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on Booleans for more information. Use the === operator for testing the return value of this function. + * + * @param Element $element + * + * @return false|int + */ + public function getElementPosition(Element $element) + { + return array_search($element, $this->elements, true); + } + /** * Returns a reference to the element at a position. * A position out-of-bounds will return either the diff --git a/inc/Menu/Item/Edit.php b/inc/Menu/Item/Edit.php index 05467674d5cb8ff6c9c1f073add301da38344ea6..5de1778fdec520b978dc9c09d61e63c192452626 100644 --- a/inc/Menu/Item/Edit.php +++ b/inc/Menu/Item/Edit.php @@ -18,7 +18,7 @@ class Edit extends AbstractItem { parent::__construct(); - if($ACT == 'show' || $ACT == 'search') { + if($ACT === 'show') { $this->method = 'post'; if($INFO['writable']) { $this->accesskey = 'e'; diff --git a/inc/Ui/Search.php b/inc/Ui/Search.php new file mode 100644 index 0000000000000000000000000000000000000000..c27cd77642d56dd9d99648024d22b4ec836b0a49 --- /dev/null +++ b/inc/Ui/Search.php @@ -0,0 +1,636 @@ +<?php + +namespace dokuwiki\Ui; + +use \dokuwiki\Form\Form; + +class Search extends Ui +{ + protected $query; + protected $parsedQuery; + protected $searchState; + protected $pageLookupResults = array(); + protected $fullTextResults = array(); + protected $highlight = array(); + + /** + * Search constructor. + * + * @param array $pageLookupResults pagename lookup results in the form [pagename => pagetitle] + * @param array $fullTextResults fulltext search results in the form [pagename => #hits] + * @param array $highlight array of strings to be highlighted + */ + public function __construct(array $pageLookupResults, array $fullTextResults, $highlight) + { + global $QUERY; + $Indexer = idx_get_indexer(); + + $this->query = $QUERY; + $this->parsedQuery = ft_queryParser($Indexer, $QUERY); + $this->searchState = new SearchState($this->parsedQuery); + + $this->pageLookupResults = $pageLookupResults; + $this->fullTextResults = $fullTextResults; + $this->highlight = $highlight; + } + + /** + * display the search result + * + * @return void + */ + public function show() + { + $searchHTML = ''; + + $searchHTML .= $this->getSearchIntroHTML($this->query); + + $searchHTML .= $this->getSearchFormHTML($this->query); + + $searchHTML .= $this->getPageLookupHTML($this->pageLookupResults); + + $searchHTML .= $this->getFulltextResultsHTML($this->fullTextResults, $this->highlight); + + echo $searchHTML; + } + + /** + * Get a form which can be used to adjust/refine the search + * + * @param string $query + * + * @return string + */ + protected function getSearchFormHTML($query) + { + global $lang, $ID, $INPUT; + + $searchForm = (new Form(['method' => 'get'], true))->addClass('search-results-form'); + $searchForm->setHiddenField('do', 'search'); + $searchForm->setHiddenField('id', $ID); + $searchForm->setHiddenField('sf', '1'); + if ($INPUT->has('min')) { + $searchForm->setHiddenField('min', $INPUT->str('min')); + } + if ($INPUT->has('max')) { + $searchForm->setHiddenField('max', $INPUT->str('max')); + } + if ($INPUT->has('srt')) { + $searchForm->setHiddenField('srt', $INPUT->str('srt')); + } + $searchForm->addFieldsetOpen()->addClass('search-form'); + $searchForm->addTextInput('q')->val($query)->useInput(false); + $searchForm->addButton('', $lang['btn_search'])->attr('type', 'submit'); + + $this->addSearchAssistanceElements($searchForm); + + $searchForm->addFieldsetClose(); + + trigger_event('FORM_SEARCH_OUTPUT', $searchForm); + + return $searchForm->toHTML(); + } + + /** + * Add elements to adjust how the results are sorted + * + * @param Form $searchForm + */ + protected function addSortTool(Form $searchForm) + { + global $INPUT, $lang; + + $options = [ + 'hits' => [ + 'label' => $lang['search_sort_by_hits'], + 'sort' => '', + ], + 'mtime' => [ + 'label' => $lang['search_sort_by_mtime'], + 'sort' => 'mtime', + ], + ]; + $activeOption = 'hits'; + + if ($INPUT->str('srt') === 'mtime') { + $activeOption = 'mtime'; + } + + $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true'); + // render current + $currentWrapper = $searchForm->addTagOpen('div')->addClass('current'); + if ($activeOption !== 'hits') { + $currentWrapper->addClass('changed'); + } + $searchForm->addHTML($options[$activeOption]['label']); + $searchForm->addTagClose('div'); + + // render options list + $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false'); + + foreach ($options as $key => $option) { + $listItem = $searchForm->addTagOpen('li'); + + if ($key === $activeOption) { + $listItem->addClass('active'); + $searchForm->addHTML($option['label']); + } else { + $link = $this->searchState->withSorting($option['sort'])->getSearchLink($option['label']); + $searchForm->addHTML($link); + } + $searchForm->addTagClose('li'); + } + $searchForm->addTagClose('ul'); + + $searchForm->addTagClose('div'); + + } + + /** + * Check if the query is simple enough to modify its namespace limitations without breaking the rest of the query + * + * @param array $parsedQuery + * + * @return bool + */ + protected function isNamespaceAssistanceAvailable(array $parsedQuery) { + if (preg_match('/[\(\)\|]/', $parsedQuery['query']) === 1) { + return false; + } + + return true; + } + + /** + * Check if the query is simple enough to modify the fragment search behavior without breaking the rest of the query + * + * @param array $parsedQuery + * + * @return bool + */ + protected function isFragmentAssistanceAvailable(array $parsedQuery) { + if (preg_match('/[\(\)\|]/', $parsedQuery['query']) === 1) { + return false; + } + + if (!empty($parsedQuery['phrases'])) { + return false; + } + + return true; + } + + /** + * Add the elements to be used for search assistance + * + * @param Form $searchForm + */ + protected function addSearchAssistanceElements(Form $searchForm) + { + $searchForm->addTagOpen('div') + ->addClass('advancedOptions') + ->attr('style', 'display: none;') + ->attr('aria-hidden', 'true'); + + $this->addFragmentBehaviorLinks($searchForm); + $this->addNamespaceSelector($searchForm); + $this->addDateSelector($searchForm); + $this->addSortTool($searchForm); + + $searchForm->addTagClose('div'); + } + + /** + * Add the elements to adjust the fragment search behavior + * + * @param Form $searchForm + */ + protected function addFragmentBehaviorLinks(Form $searchForm) + { + if (!$this->isFragmentAssistanceAvailable($this->parsedQuery)) { + return; + } + global $lang; + + $options = [ + 'exact' => [ + 'label' => $lang['search_exact_match'], + 'and' => array_map(function ($term) { + return trim($term, '*'); + }, $this->parsedQuery['and']), + 'not' => array_map(function ($term) { + return trim($term, '*'); + }, $this->parsedQuery['not']), + ], + 'starts' => [ + 'label' => $lang['search_starts_with'], + 'and' => array_map(function ($term) { + return trim($term, '*') . '*'; + }, $this->parsedQuery['and']), + 'not' => array_map(function ($term) { + return trim($term, '*') . '*'; + }, $this->parsedQuery['not']), + ], + 'ends' => [ + 'label' => $lang['search_ends_with'], + 'and' => array_map(function ($term) { + return '*' . trim($term, '*'); + }, $this->parsedQuery['and']), + 'not' => array_map(function ($term) { + return '*' . trim($term, '*'); + }, $this->parsedQuery['not']), + ], + 'contains' => [ + 'label' => $lang['search_contains'], + 'and' => array_map(function ($term) { + return '*' . trim($term, '*') . '*'; + }, $this->parsedQuery['and']), + 'not' => array_map(function ($term) { + return '*' . trim($term, '*') . '*'; + }, $this->parsedQuery['not']), + ] + ]; + + // detect current + $activeOption = 'custom'; + foreach ($options as $key => $option) { + if ($this->parsedQuery['and'] === $option['and']) { + $activeOption = $key; + } + } + if ($activeOption === 'custom') { + $options = array_merge(['custom' => [ + 'label' => $lang['search_custom_match'], + ]], $options); + } + + $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true'); + // render current + $currentWrapper = $searchForm->addTagOpen('div')->addClass('current'); + if ($activeOption !== 'exact') { + $currentWrapper->addClass('changed'); + } + $searchForm->addHTML($options[$activeOption]['label']); + $searchForm->addTagClose('div'); + + // render options list + $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false'); + + foreach ($options as $key => $option) { + $listItem = $searchForm->addTagOpen('li'); + + if ($key === $activeOption) { + $listItem->addClass('active'); + $searchForm->addHTML($option['label']); + } else { + $link = $this->searchState + ->withFragments($option['and'], $option['not']) + ->getSearchLink($option['label']) + ; + $searchForm->addHTML($link); + } + $searchForm->addTagClose('li'); + } + $searchForm->addTagClose('ul'); + + $searchForm->addTagClose('div'); + + // render options list + } + + /** + * Add the elements for the namespace selector + * + * @param Form $searchForm + */ + protected function addNamespaceSelector(Form $searchForm) + { + if (!$this->isNamespaceAssistanceAvailable($this->parsedQuery)) { + return; + } + + global $lang; + + $baseNS = empty($this->parsedQuery['ns']) ? '' : $this->parsedQuery['ns'][0]; + $extraNS = $this->getAdditionalNamespacesFromResults($baseNS); + + $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true'); + // render current + $currentWrapper = $searchForm->addTagOpen('div')->addClass('current'); + if ($baseNS) { + $currentWrapper->addClass('changed'); + $searchForm->addHTML('@' . $baseNS); + } else { + $searchForm->addHTML($lang['search_any_ns']); + } + $searchForm->addTagClose('div'); + + // render options list + $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false'); + + $listItem = $searchForm->addTagOpen('li'); + if ($baseNS) { + $listItem->addClass('active'); + $link = $this->searchState->withNamespace('')->getSearchLink($lang['search_any_ns']); + $searchForm->addHTML($link); + } else { + $searchForm->addHTML($lang['search_any_ns']); + } + $searchForm->addTagClose('li'); + + foreach ($extraNS as $ns => $count) { + $listItem = $searchForm->addTagOpen('li'); + $label = $ns . ($count ? " <bdi>($count)</bdi>" : ''); + + if ($ns === $baseNS) { + $listItem->addClass('active'); + $searchForm->addHTML($label); + } else { + $link = $this->searchState->withNamespace($ns)->getSearchLink($label); + $searchForm->addHTML($link); + } + $searchForm->addTagClose('li'); + } + $searchForm->addTagClose('ul'); + + $searchForm->addTagClose('div'); + + } + + /** + * Parse the full text results for their top namespaces below the given base namespace + * + * @param string $baseNS the namespace within which was searched, empty string for root namespace + * + * @return array an associative array with namespace => #number of found pages, sorted descending + */ + protected function getAdditionalNamespacesFromResults($baseNS) + { + $namespaces = []; + $baseNSLength = strlen($baseNS); + foreach ($this->fullTextResults as $page => $numberOfHits) { + $namespace = getNS($page); + if (!$namespace) { + continue; + } + if ($namespace === $baseNS) { + continue; + } + $firstColon = strpos((string)$namespace, ':', $baseNSLength + 1) ?: strlen($namespace); + $subtopNS = substr($namespace, 0, $firstColon); + if (empty($namespaces[$subtopNS])) { + $namespaces[$subtopNS] = 0; + } + $namespaces[$subtopNS] += 1; + } + ksort($namespaces); + arsort($namespaces); + return $namespaces; + } + + /** + * @ToDo: custom date input + * + * @param Form $searchForm + */ + protected function addDateSelector(Form $searchForm) + { + global $INPUT, $lang; + + $options = [ + 'any' => [ + 'before' => false, + 'after' => false, + 'label' => $lang['search_any_time'], + ], + 'week' => [ + 'before' => false, + 'after' => '1 week ago', + 'label' => $lang['search_past_7_days'], + ], + 'month' => [ + 'before' => false, + 'after' => '1 month ago', + 'label' => $lang['search_past_month'], + ], + 'year' => [ + 'before' => false, + 'after' => '1 year ago', + 'label' => $lang['search_past_year'], + ], + ]; + $activeOption = 'any'; + foreach ($options as $key => $option) { + if ($INPUT->str('min') === $option['after']) { + $activeOption = $key; + break; + } + } + + $searchForm->addTagOpen('div')->addClass('toggle')->attr('aria-haspopup', 'true'); + // render current + $currentWrapper = $searchForm->addTagOpen('div')->addClass('current'); + if ($INPUT->has('max') || $INPUT->has('min')) { + $currentWrapper->addClass('changed'); + } + $searchForm->addHTML($options[$activeOption]['label']); + $searchForm->addTagClose('div'); + + // render options list + $searchForm->addTagOpen('ul')->attr('aria-expanded', 'false'); + + foreach ($options as $key => $option) { + $listItem = $searchForm->addTagOpen('li'); + + if ($key === $activeOption) { + $listItem->addClass('active'); + $searchForm->addHTML($option['label']); + } else { + $link = $this->searchState + ->withTimeLimitations($option['after'], $option['before']) + ->getSearchLink($option['label']) + ; + $searchForm->addHTML($link); + } + $searchForm->addTagClose('li'); + } + $searchForm->addTagClose('ul'); + + $searchForm->addTagClose('div'); + } + + + /** + * Build the intro text for the search page + * + * @param string $query the search query + * + * @return string + */ + protected function getSearchIntroHTML($query) + { + global $lang; + + $intro = p_locale_xhtml('searchpage'); + + $queryPagename = $this->createPagenameFromQuery($this->parsedQuery); + $createQueryPageLink = html_wikilink($queryPagename . '?do=edit', $queryPagename); + + $pagecreateinfo = ''; + if (auth_quickaclcheck($queryPagename) >= AUTH_CREATE) { + $pagecreateinfo = sprintf($lang['searchcreatepage'], $createQueryPageLink); + } + $intro = str_replace( + array('@QUERY@', '@SEARCH@', '@CREATEPAGEINFO@'), + array(hsc(rawurlencode($query)), hsc($query), $pagecreateinfo), + $intro + ); + + return $intro; + } + + /** + * Create a pagename based the parsed search query + * + * @param array $parsedQuery + * + * @return string pagename constructed from the parsed query + */ + protected function createPagenameFromQuery($parsedQuery) + { + $pagename = ''; + if (!empty($parsedQuery['ns'])) { + $pagename .= cleanID($parsedQuery['ns'][0]); + } + $pagename .= ':' . cleanID(implode(' ' , $parsedQuery['highlight'])); + return $pagename; + } + + /** + * Build HTML for a list of pages with matching pagenames + * + * @param array $data search results + * + * @return string + */ + protected function getPageLookupHTML($data) + { + if (empty($data)) { + return ''; + } + + global $lang; + + $html = '<div class="search_quickresult">'; + $html .= '<h3>' . $lang['quickhits'] . ':</h3>'; + $html .= '<ul class="search_quickhits">'; + foreach ($data as $id => $title) { + $link = html_wikilink(':' . $id); + $eventData = [ + 'listItemContent' => [$link], + 'page' => $id, + ]; + trigger_event('SEARCH_RESULT_PAGELOOKUP', $eventData); + $html .= '<li>' . implode('', $eventData['listItemContent']) . '</li>'; + } + $html .= '</ul> '; + //clear float (see http://www.complexspiral.com/publications/containing-floats/) + $html .= '<div class="clearer"></div>'; + $html .= '</div>'; + + return $html; + } + + /** + * Build HTML for fulltext search results or "no results" message + * + * @param array $data the results of the fulltext search + * @param array $highlight the terms to be highlighted in the results + * + * @return string + */ + protected function getFulltextResultsHTML($data, $highlight) + { + global $lang; + + if (empty($data)) { + return '<div class="nothing">' . $lang['nothingfound'] . '</div>'; + } + + $html = '<div class="search_fulltextresult">'; + $html .= '<h3>' . $lang['search_fullresults'] . ':</h3>'; + + $html .= '<dl class="search_results">'; + $num = 1; + + foreach ($data as $id => $cnt) { + $resultLink = html_wikilink(':' . $id, null, $highlight); + + $resultHeader = [$resultLink]; + + + $restrictQueryToNSLink = $this->restrictQueryToNSLink(getNS($id)); + if ($restrictQueryToNSLink) { + $resultHeader[] = $restrictQueryToNSLink; + } + + $snippet = ''; + $lastMod = ''; + $mtime = filemtime(wikiFN($id)); + if ($cnt !== 0) { + $resultHeader[] = $cnt . ' ' . $lang['hits']; + if ($num < FT_SNIPPET_NUMBER) { // create snippets for the first number of matches only + $snippet = '<dd>' . ft_snippet($id, $highlight) . '</dd>'; + $lastMod = '<span class="search_results__lastmod">' . $lang['lastmod'] . ' '; + $lastMod .= '<time datetime="' . date_iso8601($mtime) . '" title="'.dformat($mtime).'">' . dformat($mtime, '%f') . '</time>'; + $lastMod .= '</span>'; + } + $num++; + } + + $metaLine = '<div class="search_results__metaLine">'; + $metaLine .= $lastMod; + $metaLine .= '</div>'; + + + $eventData = [ + 'resultHeader' => $resultHeader, + 'resultBody' => [$metaLine, $snippet], + 'page' => $id, + ]; + trigger_event('SEARCH_RESULT_FULLPAGE', $eventData); + $html .= '<div class="search_fullpage_result">'; + $html .= '<dt>' . implode(' ', $eventData['resultHeader']) . '</dt>'; + $html .= implode('', $eventData['resultBody']); + $html .= '</div>'; + } + $html .= '</dl>'; + + $html .= '</div>'; + + return $html; + } + + /** + * create a link to restrict the current query to a namespace + * + * @param false|string $ns the namespace to which to restrict the query + * + * @return false|string + */ + protected function restrictQueryToNSLink($ns) + { + if (!$ns) { + return false; + } + if (!$this->isNamespaceAssistanceAvailable($this->parsedQuery)) { + return false; + } + if (!empty($this->parsedQuery['ns']) && $this->parsedQuery['ns'][0] === $ns) { + return false; + } + + $name = '@' . $ns; + return $this->searchState->withNamespace($ns)->getSearchLink($name); + } +} diff --git a/inc/Ui/SearchState.php b/inc/Ui/SearchState.php new file mode 100644 index 0000000000000000000000000000000000000000..f45156d282e18594d9be8fdc4aa8ec801c1b389f --- /dev/null +++ b/inc/Ui/SearchState.php @@ -0,0 +1,141 @@ +<?php + +namespace dokuwiki\Ui; + +class SearchState +{ + /** + * @var array + */ + protected $parsedQuery = []; + + /** + * SearchState constructor. + * + * @param array $parsedQuery + */ + public function __construct(array $parsedQuery) + { + global $INPUT; + + $this->parsedQuery = $parsedQuery; + if (!isset($parsedQuery['after'])) { + $this->parsedQuery['after'] = $INPUT->str('min'); + } + if (!isset($parsedQuery['before'])) { + $this->parsedQuery['before'] = $INPUT->str('max'); + } + if (!isset($parsedQuery['sort'])) { + $this->parsedQuery['sort'] = $INPUT->str('srt'); + } + } + + /** + * Get a search state for the current search limited to a new namespace + * + * @param string $ns the namespace to which to limit the search, falsy to remove the limitation + * @param array $notns + * + * @return SearchState + */ + public function withNamespace($ns, array $notns = []) + { + $parsedQuery = $this->parsedQuery; + $parsedQuery['ns'] = $ns ? [$ns] : []; + $parsedQuery['notns'] = $notns; + + return new SearchState($parsedQuery); + } + + /** + * Get a search state for the current search with new search fragments and optionally phrases + * + * @param array $and + * @param array $not + * @param array $phrases + * + * @return SearchState + */ + public function withFragments(array $and, array $not, array $phrases = []) + { + $parsedQuery = $this->parsedQuery; + $parsedQuery['and'] = $and; + $parsedQuery['not'] = $not; + $parsedQuery['phrases'] = $phrases; + + return new SearchState($parsedQuery); + } + + /** + * Get a search state for the current search with with adjusted time limitations + * + * @param $after + * @param $before + * + * @return SearchState + */ + public function withTimeLimitations($after, $before) + { + $parsedQuery = $this->parsedQuery; + $parsedQuery['after'] = $after; + $parsedQuery['before'] = $before; + + return new SearchState($parsedQuery); + } + + /** + * Get a search state for the current search with adjusted sort preference + * + * @param $sort + * + * @return SearchState + */ + public function withSorting($sort) + { + $parsedQuery = $this->parsedQuery; + $parsedQuery['sort'] = $sort; + + return new SearchState($parsedQuery); + } + + /** + * Get a link that represents the current search state + * + * Note that this represents only a simplified version of the search state. + * Grouping with braces and "OR" conditions are not supported. + * + * @param $label + * + * @return string + */ + public function getSearchLink($label) + { + global $ID, $conf; + $parsedQuery = $this->parsedQuery; + + $tagAttributes = [ + 'target' => $conf['target']['wiki'], + ]; + + $newQuery = ft_queryUnparser_simple( + $parsedQuery['and'], + $parsedQuery['not'], + $parsedQuery['phrases'], + $parsedQuery['ns'], + $parsedQuery['notns'] + ); + $hrefAttributes = ['do' => 'search', 'sf' => '1', 'q' => $newQuery]; + if ($parsedQuery['after']) { + $hrefAttributes['min'] = $parsedQuery['after']; + } + if ($parsedQuery['before']) { + $hrefAttributes['max'] = $parsedQuery['before']; + } + if ($parsedQuery['sort']) { + $hrefAttributes['srt'] = $parsedQuery['sort']; + } + + $href = wl($ID, $hrefAttributes, false, '&'); + return "<a href='$href' " . buildAttributes($tagAttributes) . ">$label</a>"; + } +} diff --git a/inc/fulltext.php b/inc/fulltext.php index a727a8b539459660a124686488e6e78129dce4d7..dba11d0e4f1996797d51f4685e25afab48dd27b6 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -20,14 +20,25 @@ if(!defined('FT_SNIPPET_NUMBER')) define('FT_SNIPPET_NUMBER',15); * * refactored into ft_pageSearch(), _ft_pageSearch() and trigger_event() * - * @param string $query - * @param array $highlight + * @param string $query + * @param array $highlight + * @param string $sort + * @param int|string $after only show results with an modified time after this date, accepts timestap or strtotime arguments + * @param int|string $before only show results with an modified time before this date, accepts timestap or strtotime arguments + * * @return array */ -function ft_pageSearch($query,&$highlight){ +function ft_pageSearch($query,&$highlight, $sort = null, $after = null, $before = null){ - $data = array(); - $data['query'] = $query; + if ($sort === null) { + $sort = 'hits'; + } + $data = [ + 'query' => $query, + 'sort' => $sort, + 'after' => $after, + 'before' => $before + ]; $data['highlight'] =& $highlight; return trigger_event('SEARCH_QUERY_FULLPAGE', $data, '_ft_pageSearch'); @@ -100,7 +111,7 @@ function _ft_pageSearch(&$data) { break; case 'N+:': case 'N-:': // namespace - $ns = substr($token, 3); + $ns = cleanID(substr($token, 3)) . ':'; $pages_matched = array(); foreach (array_keys($pages_all) as $id) { if (strpos($id, $ns) === 0) { @@ -134,8 +145,14 @@ function _ft_pageSearch(&$data) { } } - // sort docs by count - arsort($docs); + $docs = _ft_filterResultsByTime($docs, $data['after'], $data['before']); + + if ($data['sort'] === 'mtime') { + uksort($docs, 'ft_pagemtimesorter'); + } else { + // sort docs by count + arsort($docs); + } return $docs; } @@ -199,7 +216,6 @@ function ft_mediause($id, $ignore_perms = false){ } - /** * Quicksearch for pagenames * @@ -210,16 +226,25 @@ function ft_mediause($id, $ignore_perms = false){ * The function always returns titles as well * * @triggers SEARCH_QUERY_PAGELOOKUP - * @author Andreas Gohr <andi@splitbrain.org> - * @author Adrian Lang <lang@cosmocode.de> + * @author Andreas Gohr <andi@splitbrain.org> + * @author Adrian Lang <lang@cosmocode.de> + * + * @param string $id page id + * @param bool $in_ns match against namespace as well? + * @param bool $in_title search in title? + * @param int|string $after only show results with an modified time after this date, accepts timestap or strtotime arguments + * @param int|string $before only show results with an modified time before this date, accepts timestap or strtotime arguments * - * @param string $id page id - * @param bool $in_ns match against namespace as well? - * @param bool $in_title search in title? * @return string[] */ -function ft_pageLookup($id, $in_ns=false, $in_title=false){ - $data = compact('id', 'in_ns', 'in_title'); +function ft_pageLookup($id, $in_ns=false, $in_title=false, $after = null, $before = null){ + $data = [ + 'id' => $id, + 'in_ns' => $in_ns, + 'in_title' => $in_title, + 'after' => $after, + 'before' => $before + ]; $data['has_titles'] = true; // for plugin backward compatibility check return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup'); } @@ -233,9 +258,11 @@ function ft_pageLookup($id, $in_ns=false, $in_title=false){ function _ft_pageLookup(&$data){ // split out original parameters $id = $data['id']; - if (preg_match('/(?:^| )(?:@|ns:)([\w:]+)/', $id, $matches)) { - $ns = cleanID($matches[1]) . ':'; - $id = str_replace($matches[0], '', $id); + $Indexer = idx_get_indexer(); + $parsedQuery = ft_queryParser($Indexer, $id); + if (count($parsedQuery['ns']) > 0) { + $ns = cleanID($parsedQuery['ns'][0]) . ':'; + $id = implode(' ', $parsedQuery['highlight']); } $in_ns = $data['in_ns']; @@ -279,10 +306,40 @@ function _ft_pageLookup(&$data){ } } + $pages = _ft_filterResultsByTime($pages, $data['after'], $data['before']); + uksort($pages,'ft_pagesorter'); return $pages; } + +/** + * @param array $results search results in the form pageid => value + * @param int|string $after only returns results with an modified time after this date, accepts timestap or strtotime arguments + * @param int|string $before only returns results with an modified time after this date, accepts timestap or strtotime arguments + * + * @return array + */ +function _ft_filterResultsByTime(array $results, $after, $before) { + if ($after || $before) { + $after = is_int($after) ? $after : strtotime($after); + $before = is_int($before) ? $before : strtotime($before); + + foreach ($results as $id => $value) { + $mTime = filemtime(wikiFN($id)); + if ($after && $after > $mTime) { + unset($results[$id]); + continue; + } + if ($before && $before < $mTime) { + unset($results[$id]); + } + } + } + + return $results; +} + /** * Tiny helper function for comparing the searched title with the title * from the search index. This function is a wrapper around stripos with @@ -316,6 +373,20 @@ function ft_pagesorter($a, $b){ return strcmp ($a,$b); } +/** + * Sort pages by their mtime, from newest to oldest + * + * @param string $a + * @param string $b + * + * @return int Returns < 0 if $a is newer than $b, > 0 if $b is newer than $a and 0 if they are of the same age + */ +function ft_pagemtimesorter($a, $b) { + $mtimeA = filemtime(wikiFN($a)); + $mtimeB = filemtime(wikiFN($b)); + return $mtimeB - $mtimeA; +} + /** * Creates a snippet extract * @@ -813,4 +884,36 @@ function ft_termParser($Indexer, $term, $consider_asian = true, $phrase_mode = f return $parsed; } +/** + * Recreate a search query string based on parsed parts, doesn't support negated phrases and `OR` searches + * + * @param array $and + * @param array $not + * @param array $phrases + * @param array $ns + * @param array $notns + * + * @return string + */ +function ft_queryUnparser_simple(array $and, array $not, array $phrases, array $ns, array $notns) { + $query = implode(' ', $and); + if (!empty($not)) { + $query .= ' -' . implode(' -', $not); + } + + if (!empty($phrases)) { + $query .= ' "' . implode('" "', $phrases) . '"'; + } + + if (!empty($ns)) { + $query .= ' @' . implode(' @', $ns); + } + + if (!empty($notns)) { + $query .= ' ^' . implode(' ^', $notns); + } + + return $query; +} + //Setup VIM: ex: et ts=4 : diff --git a/inc/html.php b/inc/html.php index 7cf0452dbf49aec1d0dfcd4cfe7036554e9c5e07..973b1d1213f4ef0e20d4eb3bf219fa148d7d34b7 100644 --- a/inc/html.php +++ b/inc/html.php @@ -362,78 +362,6 @@ function html_hilight_callback($m) { return $hlight; } -/** - * Run a search and display the result - * - * @author Andreas Gohr <andi@splitbrain.org> - */ -function html_search(){ - global $QUERY, $ID; - global $lang; - - $intro = p_locale_xhtml('searchpage'); - // allow use of placeholder in search intro - $pagecreateinfo = (auth_quickaclcheck($ID) >= AUTH_CREATE) ? $lang['searchcreatepage'] : ''; - $intro = str_replace( - array('@QUERY@', '@SEARCH@', '@CREATEPAGEINFO@'), - array(hsc(rawurlencode($QUERY)), hsc($QUERY), $pagecreateinfo), - $intro - ); - echo $intro; - - //do quick pagesearch - $data = ft_pageLookup($QUERY,true,useHeading('navigation')); - if(count($data)){ - print '<div class="search_quickresult">'; - print '<h3>'.$lang['quickhits'].':</h3>'; - print '<ul class="search_quickhits">'; - foreach($data as $id => $title){ - print '<li> '; - if (useHeading('navigation')) { - $name = $title; - }else{ - $ns = getNS($id); - if($ns){ - $name = shorten(noNS($id), ' ('.$ns.')',30); - }else{ - $name = $id; - } - } - print html_wikilink(':'.$id,$name); - print '</li> '; - } - print '</ul> '; - //clear float (see http://www.complexspiral.com/publications/containing-floats/) - print '<div class="clearer"></div>'; - print '</div>'; - } - - //do fulltext search - $regex = array(); - $data = ft_pageSearch($QUERY,$regex); - if(count($data)){ - print '<dl class="search_results">'; - $num = 1; - foreach($data as $id => $cnt){ - print '<dt>'; - print html_wikilink(':'.$id,useHeading('navigation')?null:$id,$regex); - if($cnt !== 0){ - print ': '.$cnt.' '.$lang['hits'].''; - } - print '</dt>'; - if($cnt !== 0){ - if($num < FT_SNIPPET_NUMBER){ // create snippets for the first number of matches only - print '<dd>'.ft_snippet($id,$regex).'</dd>'; - } - $num++; - } - } - print '</dl>'; - }else{ - print '<div class="nothing">'.$lang['nothingfound'].'</div>'; - } -} - /** * Display error on locked pages * diff --git a/inc/lang/ar/lang.php b/inc/lang/ar/lang.php index e25d0ee5da915ecd2caf9c04c7cb66a6b8d014a8..82ef5325fbc610bf24a113ab02766cde554eabe3 100644 --- a/inc/lang/ar/lang.php +++ b/inc/lang/ar/lang.php @@ -70,7 +70,6 @@ $lang['badpassconfirm'] = 'عذراً,كلمة السر غير صØÙŠØØ© $lang['minoredit'] = 'تعديلات Ø·ÙÙŠÙØ©'; $lang['draftdate'] = 'ØÙظ المسودات آليا Ù…Ùعّل'; $lang['nosecedit'] = 'غÙيرت الصÙØØ© ÙÙŠ هذه الأثناء، معلومات الجزء اصبØت قديمة. ØÙÙ…Ùلت كل الصÙØØ© بدلا.'; -$lang['searchcreatepage'] = 'إن لم تجد ما تبØØ« عنه، يمكنك إنشاء صÙØØ© جديدة بعنوان ما تبØØ« عنة بالضغط على زر "Øرر هذه الصÙØØ©".'; $lang['regmissing'] = 'عذرا، عليك ملء جميع الØقول.'; $lang['reguexists'] = 'عذرا، يوجد مشترك بنÙس الاسم.'; $lang['regsuccess'] = 'أنشئ المستخدم Ùˆ ارسلت كلمة السر بالبريد.'; diff --git a/inc/lang/ar/searchpage.txt b/inc/lang/ar/searchpage.txt index 56355f85f809c6810aa423cd36436496fc0156fe..52537c3babef2eb535346e88b7da323b443519f5 100644 --- a/inc/lang/ar/searchpage.txt +++ b/inc/lang/ar/searchpage.txt @@ -2,4 +2,3 @@ نتائج البØØ« . @CREATEPAGEINFO@ -===== نتائج البØØ« ===== \ No newline at end of file diff --git a/inc/lang/az/lang.php b/inc/lang/az/lang.php index 4416215ddf0f9314d618d75801f63ea687768e77..f2c9aa662061a05fa0194d77640ee52f3bd456a5 100644 --- a/inc/lang/az/lang.php +++ b/inc/lang/az/lang.php @@ -59,7 +59,6 @@ $lang['badlogin'] = 'TÉ™ssüf ki istifadəçi adı vÉ™ ya ÅŸifrÉ™ s $lang['minoredit'] = 'Az dÉ™yiÅŸiklÉ™r'; $lang['draftdate'] = 'Qaralama yadda saxlandı'; $lang['nosecedit'] = 'Bu vaxt É™rzindÉ™ sÉ™hifÉ™ dÉ™yiÅŸilmiÅŸdir, vÉ™ bölmÉ™ haqqında mÉ™lumat köhnÉ™lmiÅŸdir. SÉ™hifÉ™nin tam versiyası yüklÉ™nmiÅŸdir.'; -$lang['searchcreatepage'] = 'ÆgÉ™r Siz axtardığınızı tapa bilmÉ™dinizsÉ™, onda Siz adı axtarışınız ilÉ™ uyÄŸun düşən yeni sÉ™hifÉ™ yarada bilÉ™rsiniz. Bunu elÉ™mÉ™k üçün, sadÉ™cÉ™ \'\'SÉ™hifÉ™ni yarat\'\' düymÉ™sini sıxın.'; $lang['regmissing'] = 'TÉ™ssüf ki Siz bütün xanÉ™lÉ™ri doldurmalısınız.'; $lang['reguexists'] = 'TÉ™ssüf ki bu ad ilÉ™ istifadəçi artıq mövcuddur.'; $lang['regsuccess'] = 'Ä°stivadÉ™ci yaradıldı vÉ™ ÅŸifrÉ™ sizin e-maila göndÉ™rildi.'; diff --git a/inc/lang/az/searchpage.txt b/inc/lang/az/searchpage.txt index 6b7fce7549582b8771ee78da9827f360909c13d0..9bf5a5b17031fbff32b1f52320ec52003a5e6220 100644 --- a/inc/lang/az/searchpage.txt +++ b/inc/lang/az/searchpage.txt @@ -2,4 +2,3 @@ Qarşınızda - axtarışın nÉ™ticÉ™lÉ™ridir. @CREATEPAGEINFO@ -===== NÉ™ticÉ™lÉ™r ===== diff --git a/inc/lang/bg/lang.php b/inc/lang/bg/lang.php index 6296070d44bd01fce925ab4d7179bc836151a776..fd4677c1adbc8f570ea8e81afbbc10cdb8507659 100644 --- a/inc/lang/bg/lang.php +++ b/inc/lang/bg/lang.php @@ -67,7 +67,6 @@ $lang['badpassconfirm'] = 'За Ñъжаление паролата е г $lang['minoredit'] = 'Промените Ñа незначителни'; $lang['draftdate'] = 'Черновата е автоматично запиÑана на'; $lang['nosecedit'] = 'Страницата бе междувременно променена, презареждане на Ñтраницата поради неактуална информациÑ.'; -$lang['searchcreatepage'] = 'Ðко не намирате каквото Ñте Ñ‚ÑŠÑ€Ñили, може да Ñъздадете или редактирате Ñтраница, кръÑтена на вашата заÑвка, чрез ÑÑŠÐ¾Ñ‚Ð²ÐµÑ‚Ð½Ð¸Ñ Ð±ÑƒÑ‚Ð¾Ð½.'; $lang['regmissing'] = 'МолÑ, попълнете вÑички полета.'; $lang['reguexists'] = 'Вече ÑъщеÑтвува потребител Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¾Ñ‚Ð¾ име.'; $lang['regsuccess'] = 'ПотребителÑÑ‚ е Ñъздаден, а паролата е пратена по електронната поща.'; diff --git a/inc/lang/bg/searchpage.txt b/inc/lang/bg/searchpage.txt index a44c648cab745d1a3198a4dbcb65af0cbf89e109..6da6042e9062478673ec001878a37fa7721c0440 100644 --- a/inc/lang/bg/searchpage.txt +++ b/inc/lang/bg/searchpage.txt @@ -2,4 +2,3 @@ Резултата от Ñ‚ÑŠÑ€Ñенето ще намерите по-долу. @CREATEPAGEINFO@ -===== Резултати ===== diff --git a/inc/lang/ca-valencia/lang.php b/inc/lang/ca-valencia/lang.php index 120f1ace06dea0e879d49781540997919eb2b8b6..da6bd67c19deed4b9ba3f915083ce3d4e0467c26 100644 --- a/inc/lang/ca-valencia/lang.php +++ b/inc/lang/ca-valencia/lang.php @@ -59,7 +59,6 @@ $lang['badlogin'] = 'Disculpe, pero el nom d\'usuari o la contrasen $lang['minoredit'] = 'Canvis menors'; $lang['draftdate'] = 'Borrador gravat el'; $lang['nosecedit'] = 'La pà gina ha canviat mentres tant, l\'informació de la secció no estava al dia, s\'ha carregat la pà gina sancera.'; -$lang['searchcreatepage'] = 'Si no ha trobat lo que buscava pot crear o editar una pà gina en el mateix nom que el text que ha buscat utilisant el botó corresponent.'; $lang['regmissing'] = 'Disculpe, pero deu omplir tots els camps.'; $lang['reguexists'] = 'Disculpe, pero ya existix un usuari en este nom.'; $lang['regsuccess'] = 'S\'ha creat l\'usuari i se li ha enviat la contrasenya per correu electrònic.'; diff --git a/inc/lang/ca-valencia/searchpage.txt b/inc/lang/ca-valencia/searchpage.txt index be8d3e1d7748be22749a7521554ef79d21588762..390d6064bbc6906659c2de6fd21158570222430f 100644 --- a/inc/lang/ca-valencia/searchpage.txt +++ b/inc/lang/ca-valencia/searchpage.txt @@ -2,4 +2,3 @@ Pot vore els resultats de la busca acà baix. @CREATEPAGEINFO@ -===== Resultats ===== diff --git a/inc/lang/ca/lang.php b/inc/lang/ca/lang.php index ec353f770de9c017aa50d1c0a28b2fcf535b11e7..5133b37a30c5a1f4baec45344844dbd803de6815 100644 --- a/inc/lang/ca/lang.php +++ b/inc/lang/ca/lang.php @@ -71,7 +71,6 @@ $lang['badpassconfirm'] = 'Contrasenya incorrecta'; $lang['minoredit'] = 'Canvis menors'; $lang['draftdate'] = 'L\'esborrany s\'ha desat automà ticament'; $lang['nosecedit'] = 'Mentrestant la pà gina ha estat modificada. La informació de seccions estava obsoleta i ha calgut carregar la pà gina sencera.'; -$lang['searchcreatepage'] = 'Si no trobeu allò que buscà veu, podeu crear una pà gina nova per mitjà del botó \'\'Edita aquesta pà gina\'\'.'; $lang['regmissing'] = 'Heu d\'omplir tots els camps.'; $lang['reguexists'] = 'Ja existeix un altre usuari amb aquest nom.'; $lang['regsuccess'] = 'S\'ha creat l\'usuari. La contrasenya s\'ha enviat per correu.'; diff --git a/inc/lang/ca/searchpage.txt b/inc/lang/ca/searchpage.txt index 27efcdabfd98327ee2ce670a62de677cec7fed6c..68da58ca26404822bc7996a8d9428127fda222a0 100644 --- a/inc/lang/ca/searchpage.txt +++ b/inc/lang/ca/searchpage.txt @@ -2,4 +2,3 @@ Heus acà els resultats de la cerca. @CREATEPAGEINFO@ -===== Resultats ===== \ No newline at end of file diff --git a/inc/lang/cs/lang.php b/inc/lang/cs/lang.php index 11620f8259456787ea1849704d98c82c60621ab2..e6b008c4c7168aa8ad9a6bad75048e612320aeb6 100644 --- a/inc/lang/cs/lang.php +++ b/inc/lang/cs/lang.php @@ -83,7 +83,6 @@ $lang['badpassconfirm'] = 'Bohužel Å¡patné heslo'; $lang['minoredit'] = 'Drobné zmÄ›ny'; $lang['draftdate'] = 'Koncept automaticky uložen v'; $lang['nosecedit'] = 'Stránka byla v meziÄase zmÄ›nÄ›na. Informace o sekci již nebylo platné, byla naÄtena celá stránka.'; -$lang['searchcreatepage'] = 'Pokud jste nenaÅ¡li, co hledáte, zkuste požadovanou stránku sami vytvoÅ™it stisknutÃm tlaÄÃtka \'\'VytvoÅ™it stránku\'\'.'; $lang['regmissing'] = 'MusÃte vyplnit vÅ¡echny údaje.'; $lang['reguexists'] = 'Uživatel se stejným jménem už je zaregistrován.'; $lang['regsuccess'] = 'Uživatelský úÄet byl vytvoÅ™en a heslo zasláno e-mailem.'; diff --git a/inc/lang/cs/searchpage.txt b/inc/lang/cs/searchpage.txt index 2f5e89ff65f074ab0565bcbaad125f098beb5eff..800d61c27191c6f298a2ea7b62092a035e802785 100644 --- a/inc/lang/cs/searchpage.txt +++ b/inc/lang/cs/searchpage.txt @@ -2,4 +2,3 @@ Výsledky hledánà můžete vidÄ›t nÞe. @CREATEPAGEINFO@ -===== Výsledky ===== diff --git a/inc/lang/cy/lang.php b/inc/lang/cy/lang.php index 7018e007115747c2e5ca48e8f1531ceacd0aab00..de407f80477abe5890ab01641e6b9fd27f10e903 100644 --- a/inc/lang/cy/lang.php +++ b/inc/lang/cy/lang.php @@ -70,7 +70,6 @@ $lang['badpassconfirm'] = 'Sori, roedd y cyfrinair yn anghywir'; $lang['minoredit'] = 'Newidiadau Bach'; $lang['draftdate'] = 'Awtogadwyd drafft ar'; // full dformat date will be added $lang['nosecedit'] = 'Newidiwyd y dudaen yn y cyfamser, roedd gwybodaeth yr adran wedi dyddio, felly llwythwyd y dudalen gyfan.'; -$lang['searchcreatepage'] = 'Os na wnaethoch chi ddod o hyd i\'r hyn roeddech chi am ddarganfod, gallwch chi greu neu golygu\'r dudalen wedi\'i henwi ar ôl eich ymholiad gyda\'r teclyn priodol.'; $lang['regmissing'] = 'Sori, llenwch bob maes.'; $lang['reguexists'] = 'Sori, mae defnyddiwr â\'r enw hwn yn bodoli eisoes.'; diff --git a/inc/lang/cy/searchpage.txt b/inc/lang/cy/searchpage.txt index fd554e1e70ef61e28b4fec80c7b28bd8fe21a395..6a645cb57fd25257f6752f791f715942d4e30cb1 100644 --- a/inc/lang/cy/searchpage.txt +++ b/inc/lang/cy/searchpage.txt @@ -2,4 +2,3 @@ Gallwch chi ddarganfod canlyniadau eich chwiliad isod. @CREATEPAGEINFO@ -===== Canlyniadau ===== diff --git a/inc/lang/da/lang.php b/inc/lang/da/lang.php index b0e72c2856ec3454822f8bb4049274d31b3e0b64..c9374f21ec4e6e68f75b86648b0a42008ffdff75 100644 --- a/inc/lang/da/lang.php +++ b/inc/lang/da/lang.php @@ -80,7 +80,6 @@ $lang['badpassconfirm'] = 'Adgangkode var desværre forkert'; $lang['minoredit'] = 'Mindre ændringer'; $lang['draftdate'] = 'Kladde automatisk gemt d.'; $lang['nosecedit'] = 'Siden blev ændret i mellemtiden, sektions information var for gammel, hentede hele siden i stedet.'; -$lang['searchcreatepage'] = 'Hvis resultaterne ikke indeholder det du søgte efter kan du oprette et nyt dokument med samme navn som søgningen ved at trykke pÃ¥ knappen **\'\'[Opret dette dokument]\'\'**.'; $lang['regmissing'] = 'Du skal udfylde alle felter.'; $lang['reguexists'] = 'Dette brugernavn er allerede i brug.'; $lang['regsuccess'] = 'Du er nu oprettet som bruger. Dit adgangskode bliver sendt til dig i en e-mail.'; diff --git a/inc/lang/da/searchpage.txt b/inc/lang/da/searchpage.txt index 9cefd419ca2f78acb25522823f1729cc4adeed21..c4447852ffc9d79b1d36ba898c4b1bed2c4e986c 100644 --- a/inc/lang/da/searchpage.txt +++ b/inc/lang/da/searchpage.txt @@ -2,4 +2,3 @@ Du kan se resultaterne af din søgning nedenunder. @CREATEPAGEINFO@ -===== Søgeresultater ===== diff --git a/inc/lang/de-informal/lang.php b/inc/lang/de-informal/lang.php index c3f742e89b21e5ff207a30e87af724c5175f51d2..e4e5b4fa76f31ff2eeec69bed71e26a49a0ae262 100644 --- a/inc/lang/de-informal/lang.php +++ b/inc/lang/de-informal/lang.php @@ -84,7 +84,6 @@ $lang['badpassconfirm'] = 'Das Passwort war falsch.'; $lang['minoredit'] = 'Kleine Änderung'; $lang['draftdate'] = 'Entwurf gespeichert am'; $lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, da das Sektionsinfo veraltet ist. Die ganze Seite wird stattdessen geladen.'; -$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, kannst du direkt eine neue Seite für den Suchbegriff anlegen, indem du auf den Knopf **\'\'[Seite anlegen]\'\'** drückst.'; $lang['regmissing'] = 'Alle Felder müssen ausgefüllt werden'; $lang['reguexists'] = 'Der Benutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.'; diff --git a/inc/lang/de-informal/searchpage.txt b/inc/lang/de-informal/searchpage.txt index e78e4abddbc350075dc347ced691ca7bfa5d3183..5de550a7f83908e1e80644a303ecd04b6e34e1a3 100644 --- a/inc/lang/de-informal/searchpage.txt +++ b/inc/lang/de-informal/searchpage.txt @@ -2,6 +2,3 @@ Unten sind die Ergebnisse deiner Suche gelistet. @CREATEPAGEINFO@ -===== Ergebnisse ===== - - diff --git a/inc/lang/de/lang.php b/inc/lang/de/lang.php index 7ae6940e8935f834992b4980f77231236ff35d9d..7af01bc242891a4c4efc9fd7b89f05830e53c4d9 100644 --- a/inc/lang/de/lang.php +++ b/inc/lang/de/lang.php @@ -93,7 +93,7 @@ $lang['badpassconfirm'] = 'Das Passwort war falsch.'; $lang['minoredit'] = 'kleine Änderung'; $lang['draftdate'] = 'Entwurf gespeichert am'; $lang['nosecedit'] = 'Diese Seite wurde in der Zwischenzeit geändert, der Seitenabschnitt ist veraltet, lade stattdessen volle Seite.'; -$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, können Sie direkt eine neue Seite für den Suchbegriff anlegen, indem Sie auf den **\'\'[Seite anlegen]\'\'** Knopf drücken.'; +$lang['searchcreatepage'] = 'Falls der gesuchte Begriff nicht gefunden wurde, können Sie direkt eine neue, nach Ihrer Anfrage benannte Seite %s anlegen.'; $lang['regmissing'] = 'Bitte alle Felder ausfüllen!'; $lang['reguexists'] = 'Der Benutzername existiert leider schon.'; $lang['regsuccess'] = 'Der neue Benutzer wurde angelegt und das Passwort per E-Mail versandt.'; diff --git a/inc/lang/de/searchpage.txt b/inc/lang/de/searchpage.txt index 6cd8006ac3cc1ea9a903c98736040511b453a821..19fe84bcc589caa78a1049d9bcc132db6fbb4b66 100644 --- a/inc/lang/de/searchpage.txt +++ b/inc/lang/de/searchpage.txt @@ -1,7 +1,3 @@ ====== Suche ====== Unten sind die Ergebnisse Ihrer Suche gelistet. @CREATEPAGEINFO@ - -===== Ergebnisse ===== - - diff --git a/inc/lang/el/lang.php b/inc/lang/el/lang.php index 25910cbef6139984387b38757b727adc42727d0f..4533f414d6ea78aa5519b0a40088712dd253a4b6 100644 --- a/inc/lang/el/lang.php +++ b/inc/lang/el/lang.php @@ -73,7 +73,6 @@ $lang['badpassconfirm'] = 'Ο κωδικός που εισάγατε εί $lang['minoredit'] = 'Ασήμαντες αλλαγÎÏ‚'; $lang['draftdate'] = 'Αυτόματη αποθήκευση Ï€ÏόχειÏης σελίδας στις'; $lang['nosecedit'] = 'Η σελίδα Ï„Ïοποποιήθηκε στο Î¼ÎµÏ„Î±Î¾Ï ÎºÎ±Î¹ τα στοιχεία της ενότητας δεν ήταν συγχÏονισμÎνα, οπότε φοÏτώθηκε η πλήÏης σελίδα. '; -$lang['searchcreatepage'] = 'Αν δεν βÏίσκεις αυτό που ψάχνεις, μποÏείς να δημιουÏγήσεις ή να επεξεÏγαστείς τη σελίδα που ψάχνεις, χÏησιμοποιώντας το κατάλληλο εÏγαλείο.'; $lang['regmissing'] = 'Î ÏÎπει να συμπληÏώσετε όλα τα πεδία.'; $lang['reguexists'] = 'Αυτός ο λογαÏιασμός υπάÏχει ήδη.'; $lang['regsuccess'] = 'Ο λογαÏιασμός δημιουÏγήθηκε και ο κωδικός εστάλει με e-mail.'; diff --git a/inc/lang/en/lang.php b/inc/lang/en/lang.php index 5bb0e5eaf96f97f1517d2edc24b8aa4aa3d6e42b..4d11bac08d924ffb08c19d0d17d90606da555b98 100644 --- a/inc/lang/en/lang.php +++ b/inc/lang/en/lang.php @@ -69,7 +69,22 @@ $lang['badpassconfirm'] = 'Sorry, the password was wrong'; $lang['minoredit'] = 'Minor Changes'; $lang['draftdate'] = 'Draft autosaved on'; // full dformat date will be added $lang['nosecedit'] = 'The page was changed in the meantime, section info was out of date loaded full page instead.'; -$lang['searchcreatepage'] = 'If you didn\'t find what you were looking for, you can create or edit the page named after your query with the appropriate tool.'; +$lang['searchcreatepage'] = 'If you didn\'t find what you were looking for, you can create or edit the page %s, named after your query.'; + +$lang['search_fullresults'] = 'Fulltext results'; +$lang['js']['search_toggle_tools'] = 'Toggle Search Tools'; +$lang['search_exact_match'] = 'Exact match'; +$lang['search_starts_with'] = 'Starts with'; +$lang['search_ends_with'] = 'Ends with'; +$lang['search_contains'] = 'Contains'; +$lang['search_custom_match'] = 'Custom'; +$lang['search_any_ns'] = 'Any namespace'; +$lang['search_any_time'] = 'Any time'; +$lang['search_past_7_days'] = 'Past week'; +$lang['search_past_month'] = 'Past month'; +$lang['search_past_year'] = 'Past year'; +$lang['search_sort_by_hits'] = 'Sort by hits'; +$lang['search_sort_by_mtime'] = 'Sort by last modified'; $lang['regmissing'] = 'Sorry, you must fill in all fields.'; $lang['reguexists'] = 'Sorry, a user with this login already exists.'; diff --git a/inc/lang/en/searchpage.txt b/inc/lang/en/searchpage.txt index ba0960aa682bcc3e5e6a87a7aecba5f913fc0c77..59cbec251994c0adaea1a965efd1dd35b46f1710 100644 --- a/inc/lang/en/searchpage.txt +++ b/inc/lang/en/searchpage.txt @@ -2,4 +2,3 @@ You can find the results of your search below. @CREATEPAGEINFO@ -===== Results ===== diff --git a/inc/lang/eo/lang.php b/inc/lang/eo/lang.php index b48efe5cf811e3361bad07bf9ce9517dd8324619..26d3dd234e4b8599643cec6471d4f85fdbd02f38 100644 --- a/inc/lang/eo/lang.php +++ b/inc/lang/eo/lang.php @@ -68,7 +68,6 @@ $lang['badpassconfirm'] = 'Pardonu, la pasvorto malÄustis'; $lang['minoredit'] = 'Etaj modifoj'; $lang['draftdate'] = 'Lasta konservo de la skizo:'; $lang['nosecedit'] = 'La paÄo ÅanÄiÄis intertempe, sekcio-informo estis malÄisdata, tial la tuta paÄo estas reÅargita.'; -$lang['searchcreatepage'] = 'Se vi ne trovis tion, kion vi serĉis, vi povas krei novan paÄon kun necesa nomo per la koresponda butono.'; $lang['regmissing'] = 'Pardonu, vi devas plenigi ĉiujn kampojn.'; $lang['reguexists'] = 'Pardonu, ĉi tiu uzanto-nomo jam ekzistas.'; $lang['regsuccess'] = 'La uzanto kreiÄis kaj la pasvorto sendiÄis per retpoÅto.'; diff --git a/inc/lang/eo/searchpage.txt b/inc/lang/eo/searchpage.txt index bdefe7b59f328c0ef39c83a5752bbb66f90ff36a..20711c2417da09911d8209deb5f0eac82a561d37 100644 --- a/inc/lang/eo/searchpage.txt +++ b/inc/lang/eo/searchpage.txt @@ -1,5 +1,4 @@ ====== Serĉo ====== -Sube estas rezultoj de serĉo en la retejo.\\ @CREATEPAGEINFO@ +Sube estas rezultoj de serĉo en la retejo. @CREATEPAGEINFO@ -===== Rezultoj ===== diff --git a/inc/lang/es/lang.php b/inc/lang/es/lang.php index d3163c08281f21ccc5d4065ec6dcf16cdbe10ea5..55f8508b830ad91152d1a18785cbbf9da4f6b065 100644 --- a/inc/lang/es/lang.php +++ b/inc/lang/es/lang.php @@ -105,7 +105,6 @@ $lang['badpassconfirm'] = 'Lo siento, la contraseña es errónea'; $lang['minoredit'] = 'Cambios menores'; $lang['draftdate'] = 'Borrador guardado automáticamente:'; $lang['nosecedit'] = 'La página ha cambiado en el lapso, la información de sección estaba anticuada, en su lugar se cargó la página completa.'; -$lang['searchcreatepage'] = 'Si no has encontrado lo que buscabas, puedes crear una nueva página con tu consulta utilizando el botón \'\'Crea esta página\'\'.'; $lang['regmissing'] = 'Lo siento, tienes que completar todos los campos.'; $lang['reguexists'] = 'Lo siento, ya existe un usuario con este nombre.'; $lang['regsuccess'] = 'El usuario ha sido creado y la contraseña se ha enviado por correo.'; diff --git a/inc/lang/es/searchpage.txt b/inc/lang/es/searchpage.txt index 819815b15a045421c8e5da3ea436b269d19492da..9bc31616ace0f05908a7343f5e04506bbd30445c 100644 --- a/inc/lang/es/searchpage.txt +++ b/inc/lang/es/searchpage.txt @@ -2,4 +2,3 @@ Puedes encontrar los resultados de tu búsqueda abajo. @CREATEPAGEINFO@ -===== Resultados ===== \ No newline at end of file diff --git a/inc/lang/et/lang.php b/inc/lang/et/lang.php index f8051d0fc0f38a26e9e6921392061adf8c4a13ef..0320812c9d7699abc7dd2a643b340aafd53b4f9b 100644 --- a/inc/lang/et/lang.php +++ b/inc/lang/et/lang.php @@ -68,7 +68,6 @@ $lang['badpassconfirm'] = 'Väär salasõna'; $lang['minoredit'] = 'Ebaolulised muudatused'; $lang['draftdate'] = 'Mustand automaatselt salvestatud'; $lang['nosecedit'] = 'Leht on vahepeal muutunud, jaotiste teave osutus aegunuks sestap laeti tervelehekülg.'; -$lang['searchcreatepage'] = "Kui Sa otsitavat ei leidnud võid tekitada oma otsingu nimelise uue lehe kasutades ''Toimeta seda lehte'' nuppu."; $lang['regmissing'] = 'Kõik väljad tuleb ära täita.'; $lang['reguexists'] = 'Tegelikult on sellise nimega kasutaja juba olemas.'; $lang['regsuccess'] = 'Kasutaja sai tehtud. Parool saadeti Sulle e-posti aadressil.'; diff --git a/inc/lang/et/searchpage.txt b/inc/lang/et/searchpage.txt index 6ba57324a4bb1374b2bb7729d62734a96f89df94..546ae0eea151be1c5c67259f76e9dc957cd787b2 100644 --- a/inc/lang/et/searchpage.txt +++ b/inc/lang/et/searchpage.txt @@ -2,4 +2,3 @@ Leiad vasted oma otsingule. @CREATEPAGEINFO@ -===== Vasted ===== diff --git a/inc/lang/eu/lang.php b/inc/lang/eu/lang.php index 85891abbe774c024f47f4a0c2fcde38272821d94..4e074f0e76bb4c4febf6c2c09cac29712717e50b 100644 --- a/inc/lang/eu/lang.php +++ b/inc/lang/eu/lang.php @@ -68,7 +68,6 @@ $lang['badpassconfirm'] = 'Pasahitz okerra'; $lang['minoredit'] = 'Aldaketa Txikiak'; $lang['draftdate'] = 'Zirriborroa automatikoki gorde da hemen:'; $lang['nosecedit'] = 'Orria aldatua izan da bitartean, info atala zaharkituta geratu da, orri osoa kargatu da horren ordez.'; -$lang['searchcreatepage'] = 'Bilatzen zabiltzana aurkitu ez baduzu, zuk zeuk sortu dezakezu orri berri bat bilaketa ostean \'\'Sortu orri hau\'\' erabiliz.'; $lang['regmissing'] = 'Barkatu, hutsune guztiak bete behar dituzu.'; $lang['reguexists'] = 'Barkatu, izen bereko erabiltzailea existitzen da.'; $lang['regsuccess'] = 'Erabiltzailea sortu da. Pasahitza mailez bidaliko zaizu.'; diff --git a/inc/lang/eu/searchpage.txt b/inc/lang/eu/searchpage.txt index c632305b995005ab19436d71240c2b50af461c2c..ebd31d0deda8b92160b804444ea87ed2bbe2f369 100644 --- a/inc/lang/eu/searchpage.txt +++ b/inc/lang/eu/searchpage.txt @@ -2,4 +2,3 @@ Emaitzak ondorengo aurkiketan bilatu ditzakezu. @CREATEPAGEINFO@ -===== Bilaketa emaitzak: ===== diff --git a/inc/lang/fa/lang.php b/inc/lang/fa/lang.php index 529c9f82086df7c9bbbc59fc7b1daac085899415..d1e16e7fd75973dfcb4114437931214dc2120388 100644 --- a/inc/lang/fa/lang.php +++ b/inc/lang/fa/lang.php @@ -78,7 +78,6 @@ $lang['badpassconfirm'] = 'متاسÙÙ…ØŒ رمز عبور اشتباه ا $lang['minoredit'] = 'ویرایش‌های Ø®Ùرد'; $lang['draftdate'] = 'ذخیره خودکار پیش‌نویس در'; $lang['nosecedit'] = 'این صÙØÙ‡ در این میان تغییر کرده است، اطلاعات بخش قدیمی شده است، در عوض Ù…Øتوای Ú©Ù„ نمایش داده می‌شود.'; -$lang['searchcreatepage'] = 'اگر به نتیجه‌ی مطلوبی نرسیده‌اید، می‌توانید صÙØه‌ی مورد نظر را ایجاد کنید.'; $lang['regmissing'] = 'متاسÙÙ…ØŒ شما باید همه قسمت‌ها را پر کنید.'; $lang['reguexists'] = 'نام کاربری‌ای Ú©Ù‡ وارد کردید قبلن استÙاده شده است.'; $lang['regsuccess'] = 'کاربر ساخته شد Ùˆ گذرواژه به صورت ایمیل ارسال گردید.'; diff --git a/inc/lang/fa/searchpage.txt b/inc/lang/fa/searchpage.txt index f7f1a53094a7e57bca4a65415d68c08f35d81c52..50d872e0553d1923bc4b8e881c7fffb2b2c3438f 100644 --- a/inc/lang/fa/searchpage.txt +++ b/inc/lang/fa/searchpage.txt @@ -2,4 +2,3 @@ نتایج جستجو در زیر آمده است. @CREATEPAGEINFO@ -===== نتایج ===== \ No newline at end of file diff --git a/inc/lang/fi/lang.php b/inc/lang/fi/lang.php index d16c856fdd0a7326db7d96293b9c522881fbfa9e..ebcca3347fc979238a9546d8bac6269de649cf64 100644 --- a/inc/lang/fi/lang.php +++ b/inc/lang/fi/lang.php @@ -71,7 +71,6 @@ $lang['badpassconfirm'] = 'Valitan. Salasana oli väärin'; $lang['minoredit'] = 'Pieni muutos'; $lang['draftdate'] = 'Luonnos tallennettu automaattisesti'; $lang['nosecedit'] = 'Sivu on muuttunut välillä ja kappaleen tiedot olivat vanhentuneet. Koko sivu ladattu.'; -$lang['searchcreatepage'] = 'Jos et löytänyt etsimääsi voit luoda uuden sivun tiedustelusi pohjalta käyttämällä \'\'Muokkaa tätä sivua\'\' -napilla.'; $lang['regmissing'] = 'Kaikki kentät tulee täyttää.'; $lang['reguexists'] = 'Käyttäjä tällä käyttäjänimellä on jo olemassa.'; $lang['regsuccess'] = 'Käyttäjä luotiin ja salasana lähetettiin sähköpostilla.'; diff --git a/inc/lang/fi/searchpage.txt b/inc/lang/fi/searchpage.txt index b2ad8cc986773e031487cbeef44af560e97150ab..8e61bf367a0849f355b18d07ce3e917ff3a07d25 100644 --- a/inc/lang/fi/searchpage.txt +++ b/inc/lang/fi/searchpage.txt @@ -2,4 +2,3 @@ Löydät etsinnän tulokset alta. @CREATEPAGEINFO@ -===== Tulokset ===== diff --git a/inc/lang/fo/lang.php b/inc/lang/fo/lang.php index 50f2faca7d25cfc6cea5c034e9f983432ebd3147..9b078d3b62b1d8fc9ec060f93353183fcf6bf4c3 100644 --- a/inc/lang/fo/lang.php +++ b/inc/lang/fo/lang.php @@ -58,7 +58,6 @@ $lang['badlogin'] = 'Skeivt brúkaranavn ella loyniorð.'; $lang['minoredit'] = 'Smærri broytingar'; $lang['draftdate'] = 'Goym kladdu sett frá'; $lang['nosecedit'] = 'Hendan sÃðan var broytt undir tilevnan, brotið var ikki rætt dagfest, heintaði fulla sÃðu à staðin'; -$lang['searchcreatepage'] = "Um úrslitini ikki innihalda tað sum tú leitaði eftir kanst tú upprætta eitt nýtt skjal við sama navni sum leitingin við at trýsta á **''[Upprætta hetta skjal]''** knappin."; $lang['regmissing'] = 'Tú skalt fylla út øll øki.'; $lang['reguexists'] = 'Hetta brúkaranavn er upptiki.'; $lang['regsuccess'] = 'Tú ert nú stovnavur sum brúkari. TÃtt loyniorð verður sent til tÃn à einum T-posti.'; diff --git a/inc/lang/fo/searchpage.txt b/inc/lang/fo/searchpage.txt index 33bcc320647ebee530b44b21c1ca3d5580ed6316..896102bfe5dd4040d63ddf5dade3521339053fdb 100644 --- a/inc/lang/fo/searchpage.txt +++ b/inc/lang/fo/searchpage.txt @@ -2,4 +2,3 @@ Tú kanst sÃggja úrslitini av tÃni leiting niðanfyri. @CREATEPAGEINFO@ -===== Leitiúrslit ===== diff --git a/inc/lang/fr/lang.php b/inc/lang/fr/lang.php index f7f9dd80991e48532d8a432b322a5f096f451e22..13ae644f97c0f29aa3ff79591d9cd25686dbe9d7 100644 --- a/inc/lang/fr/lang.php +++ b/inc/lang/fr/lang.php @@ -99,7 +99,6 @@ $lang['badpassconfirm'] = 'Désolé, le mot de passe est erroné'; $lang['minoredit'] = 'Modification mineure'; $lang['draftdate'] = 'Brouillon enregistré automatiquement le'; $lang['nosecedit'] = 'La page a changé entre temps, les informations de la section sont obsolètes ; la page complète a été chargée à la place.'; -$lang['searchcreatepage'] = 'Si vous n\'avez pas trouvé ce que vous cherchiez, vous pouvez créer ou modifier la page correspondant à votre requête en cliquant sur le bouton approprié.'; $lang['regmissing'] = 'Désolé, vous devez remplir tous les champs.'; $lang['reguexists'] = 'Désolé, ce nom d\'utilisateur est déjà pris.'; $lang['regsuccess'] = 'L\'utilisateur a été créé. Le mot de passe a été expédié par courriel.'; diff --git a/inc/lang/fr/searchpage.txt b/inc/lang/fr/searchpage.txt index 5577a3a2a3fb1e2bd09014e7855857b70184c958..7866187d49a2aece48ecfddea8c160704ad8713d 100644 --- a/inc/lang/fr/searchpage.txt +++ b/inc/lang/fr/searchpage.txt @@ -2,4 +2,3 @@ Voici les résultats de votre recherche. @CREATEPAGEINFO@ -===== Résultats ===== diff --git a/inc/lang/gl/lang.php b/inc/lang/gl/lang.php index 941989a32aa7c3cb91619bbb70b7fc4b89c7ac9f..a83279e822160fc456a97601a47a9d3867f7f472 100644 --- a/inc/lang/gl/lang.php +++ b/inc/lang/gl/lang.php @@ -62,7 +62,6 @@ $lang['badlogin'] = 'SentÃmolo, mais o nome de usuario ou o contra $lang['minoredit'] = 'Trocos Menores'; $lang['draftdate'] = 'Borrador gardado automaticamente en'; $lang['nosecedit'] = 'A páxina mudou entrementres, a información da sección estaba desfasada polo que se cargou a páxina completa no seu lugar.'; -$lang['searchcreatepage'] = "Se non atopaches o que estabas a procurar, podes crear ou editar a páxina co nome relacionado coa túa procura empregando o botón axeitado."; $lang['regmissing'] = 'SentÃmolo, mais tes que cubrir todos os campos.'; $lang['reguexists'] = 'SentÃmolo, mais xa existe un usuario con ese nome.'; $lang['regsuccess'] = 'O usuario foi creado e o contrasinal enviado por correo-e.'; diff --git a/inc/lang/gl/searchpage.txt b/inc/lang/gl/searchpage.txt index e37ec46427c5f7a7933b051e16b5eeff9ced3dcc..6c884935541b8c66b7fb7279336d7067c0cfc46a 100644 --- a/inc/lang/gl/searchpage.txt +++ b/inc/lang/gl/searchpage.txt @@ -2,4 +2,3 @@ Podes atopar os resultados da túa procura a continuación. @CREATEPAGEINFO@ -===== Resultados ===== diff --git a/inc/lang/he/lang.php b/inc/lang/he/lang.php index 7c7f52f531eea5929c795a24776e71da87d5edd2..655bc5d8054807f557d28571a4f9ed2e102ab4fe 100644 --- a/inc/lang/he/lang.php +++ b/inc/lang/he/lang.php @@ -77,7 +77,6 @@ $lang['badpassconfirm'] = 'מצטערי×, הסיסמה שגויה'; $lang['minoredit'] = '×©×™× ×•×™× ×ž×–×¢×¨×™×™×'; $lang['draftdate'] = 'הטיוטה × ×©×ž×¨×” ×וטומטית ב־'; $lang['nosecedit'] = 'הדף ×”×©×ª× ×” ×‘×™× ×ª×™×™×, הקטע שערכת ××™× ×• מעודכן - העמוד כולו × ×˜×¢×Ÿ ×‘×ž×§×•× ×–×ת.'; -$lang['searchcreatepage'] = '×× ×œ× × ×ž×¦×ו ×“×¤×™× ×‘×—×™×¤×•×©, לחיצה על הכפתור "עריכה" תיצור דף חדש על ×©× ×ž×™×œ×ª החיפוש ×©×”×•×–× ×”.'; $lang['regmissing'] = 'עליך ×œ×ž×œ× ×ת כל השדות, עמך הסליחה.'; $lang['reguexists'] = 'משתמש ×‘×©× ×–×” כבר × ×¨×©×, עמך הסליחה.'; $lang['regsuccess'] = 'ההרשמה הצליחה, המשתמש × ×¨×©× ×•×”×•×“×¢×” × ×©×œ×—×” בדו×״ל.'; diff --git a/inc/lang/he/searchpage.txt b/inc/lang/he/searchpage.txt index 78839c371ba0d9fc6cf75251f98de2d7fc1d21ba..574629b172b5b12609d46ee10fdcc7dd94d39dd7 100644 --- a/inc/lang/he/searchpage.txt +++ b/inc/lang/he/searchpage.txt @@ -2,4 +2,3 @@ × ×™×ª×Ÿ לר×ות ×ת תוצ×ות החיפוש למטה. @CREATEPAGEINFO@ -===== תוצ×ות ===== \ No newline at end of file diff --git a/inc/lang/hr/lang.php b/inc/lang/hr/lang.php index b30e6f04eeb36fa383addebc29be30312aec731b..2694bd714db31230a04fc00d28537e76691ef4a3 100644 --- a/inc/lang/hr/lang.php +++ b/inc/lang/hr/lang.php @@ -68,7 +68,6 @@ $lang['badpassconfirm'] = 'Nažalost, lozinka nije ispravna'; $lang['minoredit'] = 'Manje izmjene'; $lang['draftdate'] = 'Nacrt promjena automatski spremljen u'; $lang['nosecedit'] = 'Stranica se u meÄ‘uvremenu promijenila. Informacija o odjeljku je ostarila pa je uÄitana kompletna stranica.'; -$lang['searchcreatepage'] = 'Ako ne možete naći Å¡to tražite, možete urediti ili stvoriti novu stranicu s odgovarajućim alatom.'; $lang['regmissing'] = 'Morate popuniti sva polja.'; $lang['reguexists'] = 'Korisnik s tim korisniÄkim imenom već postoji.'; $lang['regsuccess'] = 'Korisnik je uspjeÅ¡no stvoren i poslana je lozinka emailom.'; diff --git a/inc/lang/hr/searchpage.txt b/inc/lang/hr/searchpage.txt index 90d2ffdf4653e9634b258984aa589b0d5115c147..14c050960edb70665153ffa48ed400431734a0d6 100644 --- a/inc/lang/hr/searchpage.txt +++ b/inc/lang/hr/searchpage.txt @@ -2,4 +2,3 @@ Možete naći rezultat vaÅ¡e pretrage u nastavku. @CREATEPAGEINFO@ -====== Rezultati ====== diff --git a/inc/lang/hu/lang.php b/inc/lang/hu/lang.php index cbb337488c709bdce1cadc5b25dd1ba1ed68bca3..e13c1ecd1bd44c6729596b0a6a02ebdd888c8d9b 100644 --- a/inc/lang/hu/lang.php +++ b/inc/lang/hu/lang.php @@ -74,7 +74,6 @@ $lang['badpassconfirm'] = 'Hibás jelszó'; $lang['minoredit'] = 'Apróbb változások'; $lang['draftdate'] = 'Piszkozat elmentve:'; $lang['nosecedit'] = 'IdÅ‘közben megváltozott az oldal, emiatt a szakasz nem friss. Töltsd újra az egész oldalt!'; -$lang['searchcreatepage'] = 'Ha nem találtad meg amit kerestél, akkor létrehozhatsz egy új oldalt a keresésed alapján \'\'Az oldal szerkesztése\'\' gombbal.'; $lang['regmissing'] = 'Sajnáljuk, az összes mezÅ‘t ki kell töltened.'; $lang['reguexists'] = 'Sajnáljuk, ilyen azonosÃtójú felhasználónk már van.'; $lang['regsuccess'] = 'A felhasználói azonosÃtót létrehoztuk. A jelszót postáztuk.'; diff --git a/inc/lang/hu/searchpage.txt b/inc/lang/hu/searchpage.txt index 7e186e5cbb1582077cb38269731218122783c153..6329a46d96a1591091c55d1e785bb1a716710603 100644 --- a/inc/lang/hu/searchpage.txt +++ b/inc/lang/hu/searchpage.txt @@ -2,4 +2,3 @@ A keresés eredményét lentebb láthatod. @CREATEPAGEINFO@ -===== Eredmény(ek) ===== \ No newline at end of file diff --git a/inc/lang/ia/lang.php b/inc/lang/ia/lang.php index b40d99c48f88898fb28a668862b5887758ad7cb3..a00f8bfacce75be2ab673d32c56fd1e43f989068 100644 --- a/inc/lang/ia/lang.php +++ b/inc/lang/ia/lang.php @@ -63,7 +63,6 @@ $lang['badlogin'] = 'Le nomine de usator o le contrasigno es incorr $lang['minoredit'] = 'Modificationes minor'; $lang['draftdate'] = 'Version provisori automaticamente salveguardate le'; $lang['nosecedit'] = 'Le pagina ha essite modificate intertanto. Le informationes del section es ora obsolete, dunque le pagina complete ha essite cargate in su loco.'; -$lang['searchcreatepage'] = 'Si tu non ha trovate lo que tu cerca, tu pote crear o modificar le pagina nominate secundo tu consulta con le button appropriate.'; $lang['regmissing'] = 'Es necessari completar tote le campos.'; $lang['reguexists'] = 'Regrettabilemente, un usator con iste nomine ja existe.'; $lang['regsuccess'] = 'Le conto ha essite create e le contrasigno ha essite inviate per e-mail.'; diff --git a/inc/lang/ia/searchpage.txt b/inc/lang/ia/searchpage.txt index a8f7fce514c8a3b8ae1f049bf0f20e15a06de0cd..7e093d27f500327bf701b992b408ad780623ee66 100644 --- a/inc/lang/ia/searchpage.txt +++ b/inc/lang/ia/searchpage.txt @@ -2,4 +2,3 @@ Le resultatos de tu recerca se trova hic infra. @CREATEPAGEINFO@ -===== Resultatos ===== \ No newline at end of file diff --git a/inc/lang/id/lang.php b/inc/lang/id/lang.php index fad99299c780f38bbbb46d10a4fe2b0ca379684e..dc9d66259f8b558540414b898fec87f82c393774 100644 --- a/inc/lang/id/lang.php +++ b/inc/lang/id/lang.php @@ -64,7 +64,6 @@ $lang['badlogin'] = 'Maaf, username atau password salah.'; $lang['badpassconfirm'] = 'Maaf, password salah'; $lang['minoredit'] = 'Perubahan Minor'; $lang['draftdate'] = 'Simpan draft secara otomatis'; -$lang['searchcreatepage'] = 'Jika Anda tidak menemukan apa yang diinginkan, Anda dapat membuat halaman baru, dengan nama sesuai "text pencarian" Anda. Gunakan tombol "Edit halaman ini".'; $lang['regmissing'] = 'Maaf, Anda harus mengisi semua field.'; $lang['reguexists'] = 'Maaf, user dengan user login ini telah ada.'; $lang['regsuccess'] = 'User telah didaftarkan dan password telah dikirim ke email Anda.'; diff --git a/inc/lang/id/searchpage.txt b/inc/lang/id/searchpage.txt index b3fb56580057b838bca297d0c6896c9a91c0a68d..c03b6d729af2d1e919ac0cca72aca8f8bc7d935d 100644 --- a/inc/lang/id/searchpage.txt +++ b/inc/lang/id/searchpage.txt @@ -2,4 +2,3 @@ Anda dapat menemukan hasil pencarian dibawah ini. @CREATEPAGEINFO@ -===== Hasil Pencarian ===== \ No newline at end of file diff --git a/inc/lang/it/lang.php b/inc/lang/it/lang.php index 17195ac03d33212f2521ce4fc531c480c3e563b2..5d6a88c338cd24a3f910cf7b943a392db1ab4e2c 100644 --- a/inc/lang/it/lang.php +++ b/inc/lang/it/lang.php @@ -82,7 +82,6 @@ $lang['badpassconfirm'] = 'La password è errata'; $lang['minoredit'] = 'Modifiche minori'; $lang['draftdate'] = 'Bozza salvata in automatico il'; $lang['nosecedit'] = 'La pagina è stata modificata nel frattempo; è impossibile modificare solo la sezione scelta, quindi è stata caricata la pagina intera.'; -$lang['searchcreatepage'] = 'Se non hai trovato quello che cercavi, puoi creare una nuova pagina con questo titolo usando il pulsante \'\'Crea questa pagina\'\'.'; $lang['regmissing'] = 'Devi riempire tutti i campi.'; $lang['reguexists'] = 'Il nome utente inserito esiste già .'; $lang['regsuccess'] = 'L\'utente è stato creato. La password è stata spedita via email.'; diff --git a/inc/lang/it/searchpage.txt b/inc/lang/it/searchpage.txt index 6f269da015e89c172a0ae7c4b2d2fd7f290b3e37..e997ebdb726315ebb49d01142624a02de45f7ce0 100644 --- a/inc/lang/it/searchpage.txt +++ b/inc/lang/it/searchpage.txt @@ -2,4 +2,3 @@ Questi sono i risultati della ricerca. @CREATEPAGEINFO@ -===== Risultati ===== diff --git a/inc/lang/ja/lang.php b/inc/lang/ja/lang.php index 3f2101d1f8a86e86bd2d39e691215b7ac411bf7e..5f21a7e941682a79bd042faf881c192671bc9d81 100644 --- a/inc/lang/ja/lang.php +++ b/inc/lang/ja/lang.php @@ -72,7 +72,6 @@ $lang['badpassconfirm'] = 'パスワードãŒé–“é•ã£ã¦ã„ã¾ã™ã€‚'; $lang['minoredit'] = 'å°å¤‰æ›´'; $lang['draftdate'] = 'ドラフトä¿å˜æ—¥æ™‚:'; $lang['nosecedit'] = 'ページ内容ãŒå¤‰æ›´ã•ã‚Œã¦ã„ã¾ã™ãŒã‚»ã‚¯ã‚·ãƒ§ãƒ³æƒ…å ±ãŒå¤ã„ãŸã‚ã€ä»£ã‚ã‚Šã«ãƒšãƒ¼ã‚¸å…¨ä½“ã‚’ãƒãƒ¼ãƒ‰ã—ã¾ã—ãŸã€‚'; -$lang['searchcreatepage'] = 'ã‚‚ã—ã€æŽ¢ã—ã¦ã„ã‚‹ã‚‚ã®ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã€ 検索ã‚ーワードã«ã¡ãªã‚“ã åå‰ã®æ–‡æ›¸ã‚’作æˆã‚‚ã—ãã¯ç·¨é›†ã‚’è¡Œã£ã¦ãã ã•ã„。'; $lang['regmissing'] = 'å…¨ã¦ã®é …目を入力ã—ã¦ãã ã•ã„。'; $lang['reguexists'] = 'ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼åã¯æ—¢ã«å˜åœ¨ã—ã¦ã„ã¾ã™ã€‚'; $lang['regsuccess'] = 'æ–°ã—ã„ユーザーãŒä½œæˆã•ã‚Œã¾ã—ãŸã€‚パスワードã¯ç™»éŒ²ã—ãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹å®›ã¦ã«é€ä»˜ã•ã‚Œã¾ã™ã€‚'; diff --git a/inc/lang/ja/searchpage.txt b/inc/lang/ja/searchpage.txt index 80b0950c6878357b2edd6d3425ce7996e5a8c1e9..3c8751a2d1e4e977e0e46c7a4bcf936dcf88bb47 100644 --- a/inc/lang/ja/searchpage.txt +++ b/inc/lang/ja/searchpage.txt @@ -2,4 +2,3 @@ 以下ã«æ¤œç´¢çµæžœã‚’表示ã—ã¾ã™ã€‚@CREATEPAGEINFO@ -===== çµæžœ ===== diff --git a/inc/lang/ko/lang.php b/inc/lang/ko/lang.php index 252df6033e3d940f407b15b453029b8074d5fb93..91bd8caaf580a5280cf349a1173832abd9581b73 100644 --- a/inc/lang/ko/lang.php +++ b/inc/lang/ko/lang.php @@ -76,7 +76,6 @@ $lang['badpassconfirm'] = '죄송하지만 비밀번호가 잘못ë˜ì—ˆ $lang['minoredit'] = '사소한 바뀜'; $lang['draftdate'] = '초안 ìžë™ ì €ìž¥ 시간'; $lang['nosecedit'] = 'í•œ ë™ì•ˆ 문서가 바뀌었으며, 문단 ì •ë³´ê°€ 오래ë˜ì–´ 문서 ì „ì²´ë¥¼ ëŒ€ì‹ ì—´ì—ˆìŠµë‹ˆë‹¤.'; -$lang['searchcreatepage'] = '만약 ì›í•˜ëŠ” 문서를 찾지 못했다면, \'\'문서 만들기\'\'나 \'\'문서 편집\'\'ì„ ì‚¬ìš©í•´ 검색어와 ê°™ì€ ì´ë¦„ì˜ ë¬¸ì„œë¥¼ 만들거나 íŽ¸ì§‘í• ìˆ˜ 있습니다.'; $lang['regmissing'] = '죄송하지만 ëª¨ë“ í•„ë“œë¥¼ 채워야 합니다.'; $lang['reguexists'] = '죄송하지만 ê°™ì€ ì´ë¦„ì„ ì‚¬ìš©í•˜ëŠ” 사용ìžê°€ 있습니다.'; $lang['regsuccess'] = 'ì‚¬ìš©ìž ê³„ì •ì„ ë§Œë“¤ì—ˆìœ¼ë©° 비밀번호는 ì´ë©”ì¼ë¡œ 보냈습니다.'; diff --git a/inc/lang/ko/searchpage.txt b/inc/lang/ko/searchpage.txt index bb834277fa0cf6d6595a861ad9422c2f92d1b0d5..9a3d2f3560df6442923150f6461ad390f86ff341 100644 --- a/inc/lang/ko/searchpage.txt +++ b/inc/lang/ko/searchpage.txt @@ -2,4 +2,3 @@ 아래ì—ì„œ 검색 결과를 ì°¾ì„ ìˆ˜ 있습니다. @CREATEPAGEINFO@ -===== ê²°ê³¼ ===== \ No newline at end of file diff --git a/inc/lang/ku/lang.php b/inc/lang/ku/lang.php index 460b5e8a304b87102e70da37d22961dd4c002560..3bfb5e645df81c1f506985bbd0c029e73b311525 100644 --- a/inc/lang/ku/lang.php +++ b/inc/lang/ku/lang.php @@ -41,6 +41,5 @@ $lang['lastmod'] = 'Guherandina dawî:'; $lang['deleted'] = 'hat jê birin'; $lang['created'] = 'hat afirandin'; $lang['summary'] = 'Kurteya guhartinê'; -$lang['searchcreatepage'] = "Heke tiÅŸtek nehatibe dîtin, tu dikarî dest bi nivîsandina rûpelekê nû bikî. Ji bo vê, ''Vê rûpelê biguherîne'' bitikîne."; //Setup VIM: ex: et ts=2 : diff --git a/inc/lang/ku/searchpage.txt b/inc/lang/ku/searchpage.txt index f762b9873c7f9422eb5871c0b4c168ec90059911..90055b1f7a52384a51b3cfebc0c09aa79f2e7dc2 100644 --- a/inc/lang/ku/searchpage.txt +++ b/inc/lang/ku/searchpage.txt @@ -2,4 +2,3 @@ Jêr encamên lêgerandina te tên nîşan dan. @CREATEPAGEINFO@ -===== Encam ===== \ No newline at end of file diff --git a/inc/lang/la/searchpage.txt b/inc/lang/la/searchpage.txt index 75fd7cd5bcc924e1b699c623e6abce8b10cb60f6..76255d5390cb7bfda8283f70fbc0ae387106450e 100644 --- a/inc/lang/la/searchpage.txt +++ b/inc/lang/la/searchpage.txt @@ -2,4 +2,3 @@ Responsiones in hac pagina uidere potes. @CREATEPAGEINFO@ -===== Responsiones ===== \ No newline at end of file diff --git a/inc/lang/lb/lang.php b/inc/lang/lb/lang.php index f15e878b467c1b7380f51ebb9feb8440e83f69fe..d4d0fb47feeebdad4fd60116833d4412fa704360 100644 --- a/inc/lang/lb/lang.php +++ b/inc/lang/lb/lang.php @@ -54,7 +54,6 @@ $lang['badlogin'] = 'Entschëllegt, de Benotzernumm oder d\'Passwue $lang['minoredit'] = 'Kleng Ännerungen'; $lang['draftdate'] = 'Entworf automatesch gespäichert den'; $lang['nosecedit'] = 'D\'Säit gouf an Zwëschenzäit g\'ännert, Sektiounsinfo veralt. Ganz Säit gouf aplaz gelueden.'; -$lang['searchcreatepage'] = 'Wanns de net fënns wats de gesicht hues kanns de eng nei Säit mam Numm vun denger Sich uleeën.'; $lang['regmissing'] = 'Du muss all d\'Felder ausfëllen.'; $lang['reguexists'] = 'Et get schonn e Benotzer mat deem Numm.'; $lang['regsuccess'] = 'De Benotzer gouf erstallt an d\'Passwuert via Email geschéckt.'; diff --git a/inc/lang/lb/searchpage.txt b/inc/lang/lb/searchpage.txt index 9f4e5475e5548a69e881aae34a0b9c49f1563d15..c2e76eb7b8499016359ed0251b92e771266e2597 100644 --- a/inc/lang/lb/searchpage.txt +++ b/inc/lang/lb/searchpage.txt @@ -2,4 +2,3 @@ Hei ënnendrënner sinn d'Resultater vun der Sich. @CREATEPAGEINFO@ -=====Resultater===== \ No newline at end of file diff --git a/inc/lang/lt/lang.php b/inc/lang/lt/lang.php index dcf0985ec04c9bc5abb53a6f616f6d8ae7801735..67fabef92e6f328618875b77135743175f171455 100644 --- a/inc/lang/lt/lang.php +++ b/inc/lang/lt/lang.php @@ -61,7 +61,6 @@ $lang['badlogin'] = 'NurodÄ—te blogÄ… vartotojo vardÄ… arba slapta $lang['minoredit'] = 'Nedidelis pataisymas'; $lang['draftdate'] = 'JuodraÅ¡tis automatiÅ¡kai iÅ¡saugotas'; $lang['nosecedit'] = 'Puslapis buvo kažkieno pataisytas, teksto dalies informacija tapo pasenusi, todÄ—l pakrautas visas puslapis.'; -$lang['searchcreatepage'] = 'Jeigu neradote to, ko ieÅ¡kojote, galite sukurti naujÄ… puslapį Å¡iuo pavadinimu paspausdami "Redaguoti šį puslapį".'; $lang['regmissing'] = 'Turite užpildyti visus laukus.'; $lang['reguexists'] = 'Vartotojas su pasirinktu prisijungimo vardu jau egzistuoja.'; $lang['regsuccess'] = 'Vartotojas sukurtas, slaptažodis iÅ¡siųstas el. paÅ¡tu.'; diff --git a/inc/lang/lt/searchpage.txt b/inc/lang/lt/searchpage.txt index f03f5f17b290d87e21cccd0b925ae6bb6f073825..111029d042919e660f2fd1660d46805c326977c8 100644 --- a/inc/lang/lt/searchpage.txt +++ b/inc/lang/lt/searchpage.txt @@ -2,4 +2,3 @@ Žemiau matote JÅ«sų atliktos paieÅ¡kos rezultatus. @CREATEPAGEINFO@ -===== Rezultatai ===== \ No newline at end of file diff --git a/inc/lang/lv/lang.php b/inc/lang/lv/lang.php index bdf67cd9e2af2f3dd14f6a36cb7715d928e1a616..1a101ad8b2b3ab85c9c43fba4b07b4a4963e3a0b 100644 --- a/inc/lang/lv/lang.php +++ b/inc/lang/lv/lang.php @@ -65,7 +65,6 @@ $lang['badpassconfirm'] = 'Atvaino, aplama parole'; $lang['minoredit'] = 'SÄ«ki labojumi'; $lang['draftdate'] = 'Melnraksts automÄtiski saglabÄts'; $lang['nosecedit'] = 'Lapa pa Å¡o laiku ir mainÄ«jusies, sekcijas informÄcija novecojusi. IelÄdÄ“ta lapas pilnÄs versija.'; -$lang['searchcreatepage'] = 'Ja neatradi meklÄ“to, nospiežot pogu "Labot lapu", vari izveidot jaunu lapu ar tevis meklÄ“tajiem atslÄ“gvÄrdiem nosaukumÄ.'; $lang['regmissing'] = 'Atvaino, jÄaizpilda visas ailes.'; $lang['reguexists'] = 'Atvaino, tÄds lietotÄjs jau ir.'; $lang['regsuccess'] = 'LietotÄjs izveidots. Parole nosÅ«tÄ«ta pa pastu.'; diff --git a/inc/lang/lv/searchpage.txt b/inc/lang/lv/searchpage.txt index a67f9f166a5627671519a9db03097b01fb3259d6..a4b5aae35fde8331659abbf55cd266c150ade575 100644 --- a/inc/lang/lv/searchpage.txt +++ b/inc/lang/lv/searchpage.txt @@ -2,4 +2,3 @@ Te vari redzÄ“t meklÄ“Å¡anas rezultÄtus. @CREATEPAGEINFO@ -===== Atrasts ===== diff --git a/inc/lang/mg/lang.php b/inc/lang/mg/lang.php index 240133f29e60de42fd3b0189c873690a9285f2f3..aea3942364d779373a116575b4f4ec32ba2c6670 100644 --- a/inc/lang/mg/lang.php +++ b/inc/lang/mg/lang.php @@ -114,7 +114,6 @@ $lang['qb_sig'] = 'Manisy sonia'; $lang['js']['del_confirm']= 'Hofafana ilay andalana?'; -$lang['searchcreatepage'] = "Raha tsy nahita izay notadiavinao ianao, dia afaka mamorona pejy vaovao avy amin'ny teny nanaovanao fikarohana; Ampiasao ny bokotra ''Hanova ny pejy''."; //Setup VIM: ex: et ts=2 : $lang['email_signature_text'] = 'Ity imailaka ity dia navoakan\'ny wiki tao amin\'ny @DOKUWIKIURL@'; diff --git a/inc/lang/mg/searchpage.txt b/inc/lang/mg/searchpage.txt index ef3ed8b19139476703b1853ecf9fabb9d1b0fa58..43fc402d40ea20c8a969e9608b83ecdc698f3973 100644 --- a/inc/lang/mg/searchpage.txt +++ b/inc/lang/mg/searchpage.txt @@ -1,7 +1,4 @@ ====== Karoka ====== -Ireto ambany ireto ny valin'ny fikarohanao. +Ireto ambany ireto ny valin'ny fikarohanao. @CREATEPAGEINFO@ -@CREATEPAGEINFO@ - -===== Vokatry ny fikarohana ===== \ No newline at end of file diff --git a/inc/lang/mr/lang.php b/inc/lang/mr/lang.php index 4b6d1bd69e912de8c89a9894b96fb094e90ffe04..5aa22f30f3466146c66d463824f26b0a84e0f8ed 100644 --- a/inc/lang/mr/lang.php +++ b/inc/lang/mr/lang.php @@ -67,7 +67,6 @@ $lang['badlogin'] = 'माफ़ करा, वापरकरॠ$lang['minoredit'] = 'छोटे बदल'; $lang['draftdate'] = 'पà¥à¤°à¤¤ आपोआप सà¥à¤°à¤•à¥à¤·à¤¿à¤¤ केलà¥à¤¯à¤¾à¤šà¥€ तारीख'; $lang['nosecedit'] = 'मधà¥à¤¯à¤‚तरीचà¥à¤¯à¤¾ काळात हे पृषà¥à¤ बदलले आहे.विà¤à¤¾à¤—ाची माहिती जà¥à¤¨à¥€ à¤à¤¾à¤²à¥€ होती. तà¥à¤¯à¤¾à¤à¤µà¤œà¥€ सबंध पृषà¥à¤ परत लोड केले आहे.'; -$lang['searchcreatepage'] = 'जर तà¥à¤®à¤šà¥€ शोधत असलेली गोषà¥à¤Ÿ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ सापडली नाही, तर योगà¥à¤¯ बटण वापरून तà¥à¤®à¥à¤¹à¥€ शोधत असलेलà¥à¤¯à¤¾ गोषà¥à¤Ÿà¥€à¤µà¤¿à¤·à¤¯à¥€ तà¥à¤®à¥à¤¹à¥€ à¤à¤–ादे पान निरà¥à¤®à¤¾à¤£ किंवा संपादित करू शकता.'; $lang['regmissing'] = 'कृपया सरà¥à¤µ रकाने à¤à¤°à¤¾.'; $lang['reguexists'] = 'या नावाने सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥‡à¤²à¥€ आहे, कृपया दà¥à¤¸à¤°à¥‡ सदसà¥à¤¯ नाव निवडा.'; $lang['regsuccess'] = 'सदसà¥à¤¯à¤¾à¤šà¥€ नोंदणी à¤à¤¾à¤²à¥€ आहे आणि परवलीचा शबà¥à¤¦ इमेल केला आहे.'; diff --git a/inc/lang/mr/searchpage.txt b/inc/lang/mr/searchpage.txt index d41954b4a632c6bc8e3237f06b7afbf3fd820952..707e69939ccbfaf5543b2adfedf77778f03a4ebe 100644 --- a/inc/lang/mr/searchpage.txt +++ b/inc/lang/mr/searchpage.txt @@ -2,4 +2,3 @@ तà¥à¤®à¥à¤¹à¤¾à¤²à¤¾ खाली तà¥à¤®à¤šà¥à¤¯à¤¾ शोधाचे फलित दिसतील. @CREATEPAGEINFO@ -====== फलित ====== \ No newline at end of file diff --git a/inc/lang/ne/lang.php b/inc/lang/ne/lang.php index fae403f234a9b47ba936f91f6160833ccbd778c7..c0daf29b590f12cab65a4972aac93fc21a8d69c3 100644 --- a/inc/lang/ne/lang.php +++ b/inc/lang/ne/lang.php @@ -66,7 +66,6 @@ $lang['badpassconfirm'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ , पा $lang['minoredit'] = 'सामानà¥à¤¯ परिवरà¥à¤¤à¤¨'; $lang['draftdate'] = 'डà¥à¤°à¤¾à¤«à¥à¤Ÿ सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रà¥à¤ªà¤®à¤¾ वचत à¤à¤à¤•à¥‹'; $lang['nosecedit'] = 'यो पृषà¥à¤ यसै बखतमा परिवरà¥à¤¤à¤¨ à¤à¤¯à¥‹, खणà¥à¤¡ जानकारी अधà¥à¤¯à¤¾à¤µà¤§à¤¿à¤• हà¥à¤¨ सकेन र पूरै पृषà¥à¤ लोड à¤à¤¯à¥‹ । '; -$lang['searchcreatepage'] = 'यदि तपाईले आफà¥à¤²à¥‡ खोजेको पाउनà¥à¤à¤à¤¨ à¤à¤¨à¥‡, तपाईलेको उपयà¥à¤•à¥à¤¤ बटन पà¥à¤°à¤¯à¥‹à¤— गरी खोज सà¤à¤— समà¥à¤¬à¤¨à¥à¤§à¤¿à¤¤ शिरà¥à¤·à¤•à¤¹à¤°à¥ à¤à¤à¤•à¤¾ पृषà¥à¤ सृजना या समà¥à¤ªà¤¾à¤¦à¤¨ गरà¥à¤¨ सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤› ।'; $lang['regmissing'] = 'माफ गरà¥à¤¨à¥à¤¹à¥‹à¤²à¤¾ , सबै ठाउमा à¤à¤°à¥à¤¨à¥à¤ªà¤°à¥à¤¨à¥‡à¤› ।'; $lang['reguexists'] = 'यो नामको पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ पहिले देखि रहेको छ।'; $lang['regsuccess'] = 'यो पà¥à¤°à¤¯à¥‹à¤—करà¥à¤¤à¤¾ बनाइà¤à¤•à¥‹ छ र पà¥à¤°à¤µà¥‡à¤¶à¤¶à¤µà¥à¤¦ इमेलमा पठइà¤à¤•à¥‹ छ।'; diff --git a/inc/lang/ne/searchpage.txt b/inc/lang/ne/searchpage.txt index 021306b4b83c5fa856241dfba673087ce3726d69..02219e72bdcbe83f268b5e85d7904a49a562c74b 100644 --- a/inc/lang/ne/searchpage.txt +++ b/inc/lang/ne/searchpage.txt @@ -2,4 +2,3 @@ तपाईले आफà¥à¤¨à¥‹ खोजको निमà¥à¤¨ नतिजा पाउन सकà¥à¤¨à¥à¤¹à¥à¤¨à¥à¤›à¥¤ @CREATEPAGEINFO@ -===== नतिजा ===== \ No newline at end of file diff --git a/inc/lang/nl/lang.php b/inc/lang/nl/lang.php index 2f6000be7c1526090bd867e239584bf0ada9afbe..41fa169779e5674a97cf1e32dc4471d79dc925fa 100644 --- a/inc/lang/nl/lang.php +++ b/inc/lang/nl/lang.php @@ -89,7 +89,6 @@ $lang['badpassconfirm'] = 'Sorry, het wachtwoord was onjuist'; $lang['minoredit'] = 'Kleine wijziging'; $lang['draftdate'] = 'Concept automatisch opgeslagen op'; $lang['nosecedit'] = 'De pagina is tussentijds veranderd, sectie-informatie was verouderd, volledige pagina geladen.'; -$lang['searchcreatepage'] = 'Niks gevonden? Maak een nieuwe pagina met als naam je zoekopdracht. Klik hiervoor op \'\'Maak deze pagina aan\'\'.'; $lang['regmissing'] = 'Vul alle velden in'; $lang['reguexists'] = 'Er bestaat al een gebruiker met deze loginnaam.'; $lang['regsuccess'] = 'De gebruiker is aangemaakt. Het wachtwoord is per e-mail verzonden.'; diff --git a/inc/lang/nl/searchpage.txt b/inc/lang/nl/searchpage.txt index e03679b2b75ded7d597e2fc887ae69d49cb19e3b..b9d1236554c47fe0f316d0346c4226764d818f85 100644 --- a/inc/lang/nl/searchpage.txt +++ b/inc/lang/nl/searchpage.txt @@ -2,4 +2,3 @@ Hieronder zijn de resultaten van de zoekopdracht. @CREATEPAGEINFO@ -===== Resultaten ===== diff --git a/inc/lang/no/lang.php b/inc/lang/no/lang.php index bc946366df5cb1366523a811ba2abc536e29e19f..b8d3d3b1626b45be148515ff64ee0b9ce8ab7b26 100644 --- a/inc/lang/no/lang.php +++ b/inc/lang/no/lang.php @@ -86,7 +86,6 @@ $lang['badpassconfirm'] = 'Beklager, passordet var feil'; $lang['minoredit'] = 'Mindre endringer'; $lang['draftdate'] = 'Kladd autolagret'; $lang['nosecedit'] = 'Siden er i mellomtiden endret, seksjonsinfo har blitt foreldet - lastet full side istedet.'; -$lang['searchcreatepage'] = 'Hvis du ikke finner det du leter etter, sÃ¥ kan du skape en ny side med samme navn som ditt søk ved Ã¥ klikke pÃ¥ \'\'**Lag denne siden**\'\'-knappen.'; $lang['regmissing'] = 'Vennligst fyll ut alle felt.'; $lang['reguexists'] = 'Det finnes allerede en konto med dette brukernavnet.'; $lang['regsuccess'] = 'Brukerkonto har blitt laget og passord har blitt sendt via e-post.'; diff --git a/inc/lang/no/searchpage.txt b/inc/lang/no/searchpage.txt index 2e7b0d887a62cf92696df7f3c5309050d3abb73f..b8d9f01697e2aa45a97f4c353755148270d7402f 100644 --- a/inc/lang/no/searchpage.txt +++ b/inc/lang/no/searchpage.txt @@ -2,4 +2,3 @@ Du ser resultatet av dette søket nedenfor. @CREATEPAGEINFO@ -===== Resultat ===== diff --git a/inc/lang/pl/lang.php b/inc/lang/pl/lang.php index 7832711bf2d5221e5821ce8a7a8372f4c81fdc66..f8e3fe83b07a5f55d505a0f7a61de2b0ac8373ae 100644 --- a/inc/lang/pl/lang.php +++ b/inc/lang/pl/lang.php @@ -81,7 +81,6 @@ $lang['badpassconfirm'] = 'Niestety, hasÅ‚o jest niepoprawne.'; $lang['minoredit'] = 'Mniejsze zmiany'; $lang['draftdate'] = 'Czas zachowania szkicu'; $lang['nosecedit'] = 'Strona zostaÅ‚a zmodyfikowana, sekcje zostaÅ‚y zmienione. ZaÅ‚adowano caÅ‚Ä… stronÄ™.'; -$lang['searchcreatepage'] = 'JeÅ›li nie znaleziono szukanego hasÅ‚a, możesz utworzyć nowÄ… stronÄ™, której tytuÅ‚em bÄ™dzie poszukiwane hasÅ‚o.'; $lang['regmissing'] = 'WypeÅ‚nij wszystkie pola.'; $lang['reguexists'] = 'Użytkownik o tej nazwie już istnieje.'; $lang['regsuccess'] = 'Utworzono użytkownika. HasÅ‚o zostaÅ‚o przesÅ‚ane pocztÄ….'; diff --git a/inc/lang/pl/searchpage.txt b/inc/lang/pl/searchpage.txt index 442975fe10e06dd04198d314cb2d42b4f4ae1894..70e1de6497d0917009b89348e0444e0f2b9e1ac0 100644 --- a/inc/lang/pl/searchpage.txt +++ b/inc/lang/pl/searchpage.txt @@ -2,4 +2,3 @@ Wyniki wyszukiwania. @CREATEPAGEINFO@ -===== Wyniki ===== diff --git a/inc/lang/pt-br/lang.php b/inc/lang/pt-br/lang.php index 33c24f216c5363d2111336380466e68081fc6109..f671f9c689143f294aae581899eaff128b14123c 100644 --- a/inc/lang/pt-br/lang.php +++ b/inc/lang/pt-br/lang.php @@ -84,7 +84,6 @@ $lang['badpassconfirm'] = 'Desculpe, mas a senha está errada '; $lang['minoredit'] = 'Alterações mÃnimas'; $lang['draftdate'] = 'O rascunho foi salvo automaticamente em'; $lang['nosecedit'] = 'A página foi modificada nesse intervalo de tempo. Como a informação da seção estava desatualizada, foi carregada a página inteira.'; -$lang['searchcreatepage'] = 'Se você não encontrou o que está procurando, pode criar ou editar a página com o nome que você especificou, usando o botão apropriado.'; $lang['regmissing'] = 'Desculpe, mas você precisa preencher todos os campos.'; $lang['reguexists'] = 'Desculpe, mas já existe um usuário com esse nome.'; $lang['regsuccess'] = 'O usuário foi criado e a senha enviada para seu e-mail.'; diff --git a/inc/lang/pt-br/searchpage.txt b/inc/lang/pt-br/searchpage.txt index 636bfeb7aef96b79031def5d209b9293a5d9aabf..2e8dd59aa326ee71fcacc359d9700c3acd77e01c 100644 --- a/inc/lang/pt-br/searchpage.txt +++ b/inc/lang/pt-br/searchpage.txt @@ -2,4 +2,3 @@ Você pode encontrar os resultados da sua pesquisa abaixo. @CREATEPAGEINFO@ -===== Resultados ===== diff --git a/inc/lang/pt/lang.php b/inc/lang/pt/lang.php index 2b10b228b83f0d46f244534e941ed82666499a1f..64c25fa9f0ee8dc54df9f500727d252491c391c8 100644 --- a/inc/lang/pt/lang.php +++ b/inc/lang/pt/lang.php @@ -76,7 +76,6 @@ $lang['badpassconfirm'] = 'Infelizmente a palavra-passe não é a correct $lang['minoredit'] = 'Alterações Menores'; $lang['draftdate'] = 'Rascunho automaticamente gravado em'; $lang['nosecedit'] = 'A página foi modificada entretanto. Como a informação da secção estava desactualizada, foi carregada a página inteira.'; -$lang['searchcreatepage'] = 'Se não encontrou o que procurava pode criar uma nova página com o nome da sua pesquisa, usando o botão apropriado.'; $lang['regmissing'] = 'Por favor, preencha todos os campos.'; $lang['reguexists'] = 'Este utilizador já está inscrito. Por favor escolha outro nome de utilizador.'; $lang['regsuccess'] = 'O utilizador foi criado e a senha foi enviada para o endereço de correio electrónico usado na inscrição.'; diff --git a/inc/lang/pt/searchpage.txt b/inc/lang/pt/searchpage.txt index 563ce28343796e8c3781c06f817c765542d9ed00..27a6baafdea3bb10d19e1166b8c08b792da75ea0 100644 --- a/inc/lang/pt/searchpage.txt +++ b/inc/lang/pt/searchpage.txt @@ -2,4 +2,3 @@ Pode encontrar os resultados da sua pesquisa abaixo. @CREATEPAGEINFO@ -===== Resultados ===== diff --git a/inc/lang/ro/lang.php b/inc/lang/ro/lang.php index b5fa379dd075e212b68f77e6fc5b30c50f382904..69d04abba2e89307b0c990d8814c6cf817c7a5be 100644 --- a/inc/lang/ro/lang.php +++ b/inc/lang/ro/lang.php @@ -72,7 +72,6 @@ $lang['badpassconfirm'] = 'Ne pare rau, parola este gresita'; $lang['minoredit'] = 'Modificare minoră'; $lang['draftdate'] = 'Schiță salvată automat la'; $lang['nosecedit'] = 'Pagina s-a modificat între timp, secÈ›iunea info a expirat, s-a încărcat pagina întreagă în loc.'; -$lang['searchcreatepage'] = 'Dacă nu ai găsit ce ai căutat, poÈ›i crea o pagină nouă prin folosirea butonului \'\'Editează această pagină\'\'.'; $lang['regmissing'] = 'Ne pare rău, trebuie să completezi toate cîmpurile.'; $lang['reguexists'] = 'Ne pare rău, un utilizator cu acest nume este deja autentificat.'; $lang['regsuccess'] = 'Utilizatorul a fost creat. Parola a fost trimisă prin e-mail.'; diff --git a/inc/lang/ro/searchpage.txt b/inc/lang/ro/searchpage.txt index d4e3df2ee7a1001458367ec8820bc5d7fceb2469..5b262fe03c0a129259405b2432769f1645f47bc6 100644 --- a/inc/lang/ro/searchpage.txt +++ b/inc/lang/ro/searchpage.txt @@ -2,4 +2,3 @@ Rezultatele căutării sunt afiÈ™ate mai jos. @CREATEPAGEINFO@ -===== Rezultate ===== diff --git a/inc/lang/ru/lang.php b/inc/lang/ru/lang.php index 572c7fd1820555617fb8db5328591ca3791f2cb7..4712b4c6f51d7864f6939cf8fb4dc883744b1aed 100644 --- a/inc/lang/ru/lang.php +++ b/inc/lang/ru/lang.php @@ -97,7 +97,6 @@ $lang['badpassconfirm'] = 'ПроÑтите, пароль неверны $lang['minoredit'] = 'Ðезначительные изменениÑ'; $lang['draftdate'] = 'Черновик Ñохранён'; $lang['nosecedit'] = 'За Ñто Ð²Ñ€ÐµÐ¼Ñ Ñтраница была изменена Ð¸Â Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Â Ñекции уÑтарела. Загружена Ð¿Ð¾Ð»Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ñтраницы.'; -$lang['searchcreatepage'] = 'ЕÑли вы не нашли то, что иÑкали, вы можете Ñоздать новую Ñтраницу Ñ именем, Ñовпадающим Ñ запроÑом. Чтобы Ñделать Ñто, проÑто нажмите на кнопку «Создать Ñтраницу».'; $lang['regmissing'] = 'Извините, вам Ñледует заполнить вÑе полÑ.'; $lang['reguexists'] = 'Извините, пользователь Ñ Ñ‚Ð°ÐºÐ¸Ð¼ логином уже ÑущеÑтвует.'; $lang['regsuccess'] = 'Пользователь Ñоздан; пароль выÑлан Ð½Ð°Â Ð°Ð´Ñ€ÐµÑ Ñлектронной почты.'; diff --git a/inc/lang/ru/searchpage.txt b/inc/lang/ru/searchpage.txt index d12a848c65c07e261af220abfcd17abbbc78c52b..deea577ed2b07e08ad25d592b7e88ada394272b6 100644 --- a/inc/lang/ru/searchpage.txt +++ b/inc/lang/ru/searchpage.txt @@ -2,4 +2,3 @@ Перед вами результаты поиÑка. @CREATEPAGEINFO@ -===== Результаты ===== \ No newline at end of file diff --git a/inc/lang/sk/lang.php b/inc/lang/sk/lang.php index 78840b46306fb6dcedfdff311a25b0aac40a9070..bd8d1c9a3409583830eff0778944d4e0b67ab009 100644 --- a/inc/lang/sk/lang.php +++ b/inc/lang/sk/lang.php @@ -67,7 +67,6 @@ $lang['badpassconfirm'] = 'Ľutujem, heslo bolo nesprávne.'; $lang['minoredit'] = 'MenÅ¡ie zmeny'; $lang['draftdate'] = 'Koncept automaticky uložený'; $lang['nosecedit'] = 'Stránka bola medziÄasom zmenená, informácie o sekcii sú zastaralé a z tohto dôvodu bola nahraná celá stránka.'; -$lang['searchcreatepage'] = 'Pokiaľ ste nenaÅ¡li, Äo hľadáte, skúste požadovanú stránku sami vytvoriÅ¥ stlaÄenÃm tlaÄidla \'\'VytvoriÅ¥ stránku\'\'.'; $lang['regmissing'] = 'MusÃte vyplniÅ¥ vÅ¡etky údaje.'; $lang['reguexists'] = 'PoužÃvateľ s rovnakým menom je už zaregistrovaný.'; $lang['regsuccess'] = 'PoužÃvateľský úÄet bol vytvorený a heslo zaslané emailom.'; diff --git a/inc/lang/sk/searchpage.txt b/inc/lang/sk/searchpage.txt index 3684f1c6c38562f9dbae0910cd93e0b2596479a3..5905db6646b76a7f8258710025f5fa067cfbf1ec 100644 --- a/inc/lang/sk/searchpage.txt +++ b/inc/lang/sk/searchpage.txt @@ -2,4 +2,3 @@ Výsledky hľadania môžete vidieÅ¥ nižšie. @CREATEPAGEINFO@ -===== Výsledky ===== diff --git a/inc/lang/sl/lang.php b/inc/lang/sl/lang.php index 23d99e48e52372e85c8ff5cb31fa1f2d7666dded..213e0f83a70e2827eb4d7085a2b78f8a1460e7eb 100644 --- a/inc/lang/sl/lang.php +++ b/inc/lang/sl/lang.php @@ -71,7 +71,6 @@ $lang['badpassconfirm'] = 'Napaka! Geslo ni pravo.'; $lang['minoredit'] = 'ManjÅ¡e spremembe'; $lang['draftdate'] = 'Samodejno shranjevanje osnutka je omogoÄeno'; $lang['nosecedit'] = 'Stran je bila v vmesnem Äasu spremenjena. Podatki strani so bili zastareli, zato se je celotna vsebina naložila znova.'; -$lang['searchcreatepage'] = 'V kolikor rezultati niso skladni z zahtevami iskanja, je mogoÄe ustvariti novo stran z nazivom vaÅ¡e poizvedbe preko povezave \'\'Uredi stran\'\'.'; $lang['regmissing'] = 'Izpolniti je treba vsa polja.'; $lang['reguexists'] = 'Uporabnik s tem imenom že obstaja.'; $lang['regsuccess'] = 'UporabniÅ¡ki raÄun je uspeÅ¡no ustvarjen. Geslo je bilo poslano na naveden elektronski naslov.'; diff --git a/inc/lang/sl/searchpage.txt b/inc/lang/sl/searchpage.txt index 6ccfa96a4563666875b62d1f824901dada4b15b7..d19d5e275b519fd85149566d34671652bf0bf1f6 100644 --- a/inc/lang/sl/searchpage.txt +++ b/inc/lang/sl/searchpage.txt @@ -2,4 +2,3 @@ Spodaj so izpisani rezultati iskanja. @CREATEPAGEINFO@ -===== Rezultati ===== \ No newline at end of file diff --git a/inc/lang/sq/lang.php b/inc/lang/sq/lang.php index 6de6af81ec7044f00c5eb801116fdca8a3d76371..5313ddd221f6cfc0b0a6e86e173524a98ea8dd38 100644 --- a/inc/lang/sq/lang.php +++ b/inc/lang/sq/lang.php @@ -62,7 +62,6 @@ $lang['badlogin'] = 'Na vjen keq, emri ose fjalëkalimi është gab $lang['minoredit'] = 'Ndryshime të Vogla'; $lang['draftdate'] = 'Skica u ruajt automatikisht në'; $lang['nosecedit'] = 'Faqja u ndryshua ndëwrkohë, informacioni i kwtij seksioni ishte i vjetër, u ngarkua faqja e tërë në vend të saj.'; -$lang['searchcreatepage'] = 'Nëse nuk e gjetët atë që po kërkonit, mund të krijoni ose redaktoni një faqe pas pyetjes suaj me butonin përkatës.'; $lang['regmissing'] = 'Na vjen keq, duhet të plotësoni të gjitha fushat.'; $lang['reguexists'] = 'Na vjen keq, ekziston një përdorues tjetër me të njëjtin emër.'; $lang['regsuccess'] = 'Përdoruesi u regjistrua dhe fjalëkalimi u dërgua me email.'; diff --git a/inc/lang/sq/searchpage.txt b/inc/lang/sq/searchpage.txt index b0d6d1f31fb57826ca2048461dd55d5f1b430d3d..4c72f22dbab231617fc109961231b07e3285b063 100644 --- a/inc/lang/sq/searchpage.txt +++ b/inc/lang/sq/searchpage.txt @@ -2,4 +2,3 @@ Mund të gjeni rezultatet e kërkimit tuaj më poshtë. @CREATEPAGEINFO@ -===== Rezultate ===== \ No newline at end of file diff --git a/inc/lang/sr/lang.php b/inc/lang/sr/lang.php index a30c20355c5f2d1cab361e1cce9ef0a876aed929..9182c1b7f637967121071f57765d21953e6401da 100644 --- a/inc/lang/sr/lang.php +++ b/inc/lang/sr/lang.php @@ -68,7 +68,6 @@ $lang['badpassconfirm'] = 'ÐажалоÑÑ‚, лозинка је била $lang['minoredit'] = 'Мала измена'; $lang['draftdate'] = 'Ðацрт је аутоматÑки Ñачуван'; $lang['nosecedit'] = 'Страна је у међувремену промењена, поглавље је заÑтарело и поново Ñе учитава цела Ñтрана.'; -$lang['searchcreatepage'] = 'Ðко ниÑте нашли то што Ñте тражили, можете да направите нову Ñтраницу названу по Вашем упиту кориÑтећи дугме \'\'Измени ову Ñтраницу\'\'.'; $lang['regmissing'] = 'Извините, морате да попуните Ñва поља.'; $lang['reguexists'] = 'Извините, кориÑник Ñа иÑтим именом већ поÑтоји.'; $lang['regsuccess'] = 'КориÑник је направљен и лозинка је поÑлата путем е-поште.'; diff --git a/inc/lang/sr/searchpage.txt b/inc/lang/sr/searchpage.txt index 458c5b1fc9e9e9e358922b3383b5d8393ca18a8c..4663f47fc03f81d88476826042d83b3842fe70de 100644 --- a/inc/lang/sr/searchpage.txt +++ b/inc/lang/sr/searchpage.txt @@ -2,4 +2,3 @@ ИÑпод можете да нађете резултате Ваше претраге. @CREATEPAGEINFO@ -===== Резултати ===== diff --git a/inc/lang/sv/lang.php b/inc/lang/sv/lang.php index e39f8487de15b19a61edeab9cda0019423b40e4b..14864212e6ee1f5ce61b57c82d1b9918ecb06a4c 100644 --- a/inc/lang/sv/lang.php +++ b/inc/lang/sv/lang.php @@ -78,7 +78,6 @@ $lang['badpassconfirm'] = 'Ledsen, lösenordet var felaktigt'; $lang['minoredit'] = 'SmÃ¥ ändringar'; $lang['draftdate'] = 'Utkast automatiskt sparat'; $lang['nosecedit'] = 'Sidan ändrades medan du skrev, sektionsinformationen var inte uppdaterad. Laddar hela sidan istället.'; -$lang['searchcreatepage'] = 'Om du inte hittar det du letar efter, sÃ¥ kan du skapa eller redigera sidan med nÃ¥gon av knapparna.'; $lang['regmissing'] = 'Du mÃ¥ste fylla i alla fälten.'; $lang['reguexists'] = 'Det finns redan en användare med det användarnamnet.'; $lang['regsuccess'] = 'Användarkontot skapat, lösenordet har skickats via e-post.'; diff --git a/inc/lang/sv/searchpage.txt b/inc/lang/sv/searchpage.txt index 7b2d3bca36155f1a9014088901a22b4b0e12f2ab..d01bf23e4467bde166f89771aaedbc1f08b4d4b2 100644 --- a/inc/lang/sv/searchpage.txt +++ b/inc/lang/sv/searchpage.txt @@ -2,4 +2,3 @@ Nedan ser du resultatet av sökningen. @CREATEPAGEINFO@ -===== Resultat ===== diff --git a/inc/lang/th/lang.php b/inc/lang/th/lang.php index 570d92968d0fa18b1f16f49a05656e1ba277e090..b2b2fd852f09df767a9c85892dae15293a2930f6 100644 --- a/inc/lang/th/lang.php +++ b/inc/lang/th/lang.php @@ -69,7 +69,6 @@ $lang['badpassconfirm'] = 'พาสเวิร์ดไม่ถูภ$lang['minoredit'] = 'เป็นà¸à¸²à¸£à¹à¸à¹‰à¹„ขเล็à¸à¸™à¹‰à¸à¸¢'; $lang['draftdate'] = 'บันทึà¸à¸‰à¸šà¸±à¸šà¸£à¹ˆà¸²à¸‡à¹€à¸¡à¸·à¹ˆà¸'; $lang['nosecedit'] = 'ในช่วงเวลาที่ผ่านมานี้เพจถูà¸à¹à¸à¹‰à¹„ขไปà¹à¸¥à¹‰à¸§, เนื้à¸à¸«à¸²à¹ƒà¸™à¹€à¸‹à¸„ชั่นนี้ไม่ทันสมัย à¸à¸£à¸¸à¸“าโหลดเพจใหม่ทั้งหน้าà¹à¸—น'; -$lang['searchcreatepage'] = 'ถ้าคุณไม่พบสิ่งที่คนมà¸à¸‡à¸«à¸² คุณสามารถเลืà¸à¸à¸—ี่จะสร้าง หรืà¸à¹à¸à¹‰à¹„ขชื่à¸à¹€à¸žà¸ˆà¸«à¸¥à¸±à¸‡à¸ˆà¸²à¸à¸”ูผลสืบค้นà¹à¸¥à¹‰à¸§à¸”้วยปุ่มที่เหมาะสม'; $lang['regmissing'] = 'ขà¸à¸à¸ ัย คุณต้à¸à¸‡à¸à¸£à¸à¸à¹ƒà¸«à¹‰à¸„รบทุà¸à¸Šà¹ˆà¸à¸‡'; $lang['reguexists'] = 'ชื่à¸à¸šà¸±à¸à¸Šà¸µà¸—ี่ใส่นั้นมีผู้à¸à¸·à¹ˆà¸™à¹„ด้ใช้à¹à¸¥à¹‰à¸§ à¸à¸£à¸¸à¸“าเลืà¸à¸à¸Šà¸·à¹ˆà¸à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸à¸·à¹ˆà¸™'; $lang['regsuccess'] = 'ผู้ใช้ถูà¸à¸ªà¸£à¹‰à¸²à¸‡à¹à¸¥à¹‰à¸§ à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸œà¹ˆà¸²à¸™à¹„ด้ถูà¸à¸ªà¹ˆà¸‡à¹„ปทางà¸à¸µà¹€à¸¡à¸¥à¹à¸¥à¹‰à¸§'; diff --git a/inc/lang/th/searchpage.txt b/inc/lang/th/searchpage.txt index 263c656abf91c7081b1b0c5594c4c57b319dc126..87153b08a946a0452b3c98dc7c0f2cd9ddea867a 100644 --- a/inc/lang/th/searchpage.txt +++ b/inc/lang/th/searchpage.txt @@ -2,4 +2,3 @@ คุณสามารถพบผลลัพธ์à¸à¸²à¸£à¸ªà¸·à¸šà¸„้นขà¸à¸‡à¸„ุณด้านล่าง @CREATEPAGEINFO@ -====== ผลลัพธ์ ====== \ No newline at end of file diff --git a/inc/lang/tr/lang.php b/inc/lang/tr/lang.php index 49236c5f9e37e73429fe0665e78c60384cd75759..4147a13578b263902b7be25f3d70641cd9255dca 100644 --- a/inc/lang/tr/lang.php +++ b/inc/lang/tr/lang.php @@ -74,7 +74,6 @@ $lang['badpassconfirm'] = 'Ãœzgünüz, parolanız yanlış'; $lang['minoredit'] = 'Küçük DeÄŸiÅŸiklikler'; $lang['draftdate'] = 'Taslak ÅŸu saatte otomatik kaydedildi:'; $lang['nosecedit'] = 'Sayfa yakın zamanda deÄŸiÅŸtirilmiÅŸtir, bölüm bilgisi eski kalmıştır. Bunun için bölüm yerine tüm sayfa yüklenmiÅŸtir.'; -$lang['searchcreatepage'] = 'Aradığınız ÅŸeyi bulamadıysanız, \'\'Sayfayı deÄŸiÅŸtir\'\' tuÅŸuna tıklayarak girdiÄŸiniz sorgu adıyla yeni bir sayfa oluÅŸturabilirsiniz .'; $lang['regmissing'] = 'Ãœzgünüz, tüm alanları doldurmalısınız.'; $lang['reguexists'] = 'Ãœzgünüz, bu isime sahip bir kullanıcı zaten mevcut.'; $lang['regsuccess'] = 'Kullanıcı oluÅŸturuldu ve ÅŸifre e-posta adresine gönderildi.'; diff --git a/inc/lang/tr/searchpage.txt b/inc/lang/tr/searchpage.txt index bdb3ddf17494ee7044f84ff082d9c692b5cad428..05660eb4fe0ce6467e01b2f8a295fcff7659539b 100644 --- a/inc/lang/tr/searchpage.txt +++ b/inc/lang/tr/searchpage.txt @@ -2,4 +2,3 @@ AÅŸağıda aramanın sonuçları listelenmiÅŸtir. @CREATEPAGEINFO@ -===== Sonuçlar ===== diff --git a/inc/lang/uk/lang.php b/inc/lang/uk/lang.php index e02b40767636aabfb530b5f08f617be50c7e9f99..e9ed28aa3a05ca81f4e0d6229f26555ba1046c36 100644 --- a/inc/lang/uk/lang.php +++ b/inc/lang/uk/lang.php @@ -76,7 +76,6 @@ $lang['badpassconfirm'] = 'Вибачте, але пароль невір $lang['minoredit'] = 'Ðезначні зміни'; $lang['draftdate'] = 'Чернетка збережена'; $lang['nosecedit'] = 'Сторінку змінено, дані розділу заÑтарілі. Завантажено Ñторінку повніÑÑ‚ÑŽ.'; -$lang['searchcreatepage'] = 'Якщо ви не знайшли те, що ви шукали, ви можете Ñтворити або редагувати Ñторінку, що має таке ж ім’Ñ, що Ñ– пошуковий запит за допомогою відповідної кнопки.'; $lang['regmissing'] = 'Ðеобхідно заповнити вÑÑ– полÑ.'; $lang['reguexists'] = 'КориÑтувач з таким іменем вже Ñ–Ñнує.'; $lang['regsuccess'] = 'КориÑтувача Ñтворено. Пароль відправлено на e-mail.'; diff --git a/inc/lang/uk/searchpage.txt b/inc/lang/uk/searchpage.txt index 3889a7618c3814595700af0087875b3e461129f5..f323c4ae4c1108fb8510f37735b1c3e6b9e87be0 100644 --- a/inc/lang/uk/searchpage.txt +++ b/inc/lang/uk/searchpage.txt @@ -2,4 +2,3 @@ ДивітьÑÑ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¸ пошуку нижче. @CREATEPAGEINFO@ -===== Результати ===== diff --git a/inc/lang/vi/lang.php b/inc/lang/vi/lang.php index ea1d053a8443ffe85207d1d226d157c156f37836..8e49dec375e3196dd4b140f4de87ec3f157a1034 100644 --- a/inc/lang/vi/lang.php +++ b/inc/lang/vi/lang.php @@ -59,7 +59,6 @@ $lang['badlogin'] = 'Username hoặc password không đúng.'; $lang['minoredit'] = 'Minor Changes'; $lang['draftdate'] = 'Bản nháp được tá»± Ä‘á»™ng lÆ°u lúc'; $lang['nosecedit'] = 'Các trang web đã được thay đổi trong khi chỠđợi, phần thông tin quá hạn đã được thay thế bằng trang đầy đủ.'; -$lang['searchcreatepage'] = "Nếu bạn không thấy được những gì bạn Ä‘ang tìm, bạn có thể tạo má»™t trang má»›i bằng cách bấm và o nút ''Biên soạn trang nà y'', khi đó bạn sẽ có 1 trang má»›i vá»›i tên trang chÃnh là tuwfw khóa bạn đã tìm kiếm."; $lang['regmissing'] = 'Bạn cần Ä‘iá»n và o tất cả các trÆ°á»ng'; $lang['reguexists'] = 'Bạn khác đã dùng username nà y rồi.'; $lang['regsuccess'] = 'Äã tạo username, và đã gởi password.'; diff --git a/inc/lang/vi/searchpage.txt b/inc/lang/vi/searchpage.txt index c0c748545f08eebe6379742fd4c0eefa4da8be10..cbba3fa4825e1e986a86f7a8de0dd8d260bbb122 100644 --- a/inc/lang/vi/searchpage.txt +++ b/inc/lang/vi/searchpage.txt @@ -2,4 +2,3 @@ Sau đây là kết quả mà bạn đã tìm. @CREATEPAGEINFO@ -===== Kết quả ===== diff --git a/inc/lang/zh-tw/lang.php b/inc/lang/zh-tw/lang.php index bc49b33dcafbcd69eab4915dc556ffda17aef802..e7384cffb81d4bd1023dfb427aa7deb933c8e700 100644 --- a/inc/lang/zh-tw/lang.php +++ b/inc/lang/zh-tw/lang.php @@ -77,7 +77,6 @@ $lang['badpassconfirm'] = '抱æ‰ï¼Œé€™å¯†ç¢¼æ˜¯éŒ¯çš„'; $lang['minoredit'] = 'å°ä¿®æ”¹'; $lang['draftdate'] = 'è‰ç¨¿å·²è‡ªå‹•å˜æª”æ–¼'; $lang['nosecedit'] = '在您編輯期間,其他使用者修改éŽæœ¬é é¢ã€‚å€æ®µè³‡æ–™å·²é€¾æ™‚ï¼Œå› æ¤ç³»çµ±è¼‰å…¥äº†å…¨é ,以å–代之。'; -$lang['searchcreatepage'] = '若沒找到您想è¦çš„,å¯æŒ‰ä¸‹æŒ‰éˆ•å»ºç«‹æˆ–編輯和查詢關éµå—åŒåçš„é é¢ã€‚'; $lang['regmissing'] = '很抱æ‰ï¼Œæ‰€æœ‰æ¬„ä½éƒ½è¦å¡«å¯«ã€‚'; $lang['reguexists'] = '很抱æ‰ï¼Œæœ‰äººå·²ä½¿ç”¨äº†é€™å€‹å¸³è™Ÿã€‚'; $lang['regsuccess'] = '使用者帳號已建立,密碼已寄發至該電郵。'; diff --git a/inc/lang/zh-tw/searchpage.txt b/inc/lang/zh-tw/searchpage.txt index 96680019d5c878401fe212bb77e117a19b49248a..9e2c13ac7c0224d4ac527550dc127c963d584a57 100644 --- a/inc/lang/zh-tw/searchpage.txt +++ b/inc/lang/zh-tw/searchpage.txt @@ -2,4 +2,3 @@ æ示:您å¯ä»¥åœ¨ä¸‹é¢æ‰¾åˆ°æ‚¨çš„æœå°‹çµæžœã€‚@CREATEPAGEINFO@ -===== æœå°‹çµæžœ ===== diff --git a/inc/lang/zh/lang.php b/inc/lang/zh/lang.php index b998946649e3c1faf89895598c39e830cedc720e..3de6a2f1cee98ed6fa96c29ced62476f3fc95e78 100644 --- a/inc/lang/zh/lang.php +++ b/inc/lang/zh/lang.php @@ -90,7 +90,6 @@ $lang['badpassconfirm'] = '对ä¸èµ·ï¼Œå¯†ç 错误'; $lang['minoredit'] = '细微修改'; $lang['draftdate'] = 'è‰ç¨¿è‡ªåŠ¨ä¿å˜äºŽ'; $lang['nosecedit'] = '在您编辑期间本页刚被他人修改过,局部信æ¯å·²è¿‡æœŸï¼Œæ•…载入全页。'; -$lang['searchcreatepage'] = '如果没有找到您想è¦çš„东西,您å¯ä»¥ä½¿ç”¨ç›¸åº”的按钮æ¥åˆ›å»ºæˆ–编辑该页é¢ã€‚'; $lang['regmissing'] = '对ä¸èµ·ï¼Œæ‚¨å¿…须填写所有的å—段。'; $lang['reguexists'] = '对ä¸èµ·ï¼Œè¯¥ç”¨æˆ·åå·²ç»å˜åœ¨ã€‚'; $lang['regsuccess'] = '新用户已建立,密ç 将通过电å邮件å‘é€ç»™æ‚¨ã€‚'; diff --git a/inc/lang/zh/searchpage.txt b/inc/lang/zh/searchpage.txt index be7ae7909262120e1e3c25a514f0e6c25297f2c5..0ea6cb5e4352b83de22e8fa6675560e669e4862e 100644 --- a/inc/lang/zh/searchpage.txt +++ b/inc/lang/zh/searchpage.txt @@ -2,4 +2,3 @@ 下é¢å°†æ˜¾ç¤ºæ‚¨çš„æœç´¢ç»“果。@CREATEPAGEINFO@ -===== æœç´¢ç»“æžœ ===== \ No newline at end of file diff --git a/inc/template.php b/inc/template.php index 1ce7d340bb3d420faea5353d0668f5c3f3823546..510475d5b2a9b1d659f614c702b108c584839512 100644 --- a/inc/template.php +++ b/inc/template.php @@ -667,20 +667,46 @@ function tpl_searchform($ajax = true, $autocomplete = true) { global $lang; global $ACT; global $QUERY; + global $ID; // don't print the search form if search action has been disabled if(!actionOK('search')) return false; - print '<form action="'.wl().'" accept-charset="utf-8" class="search" id="dw__search" method="get" role="search"><div class="no">'; - print '<input type="hidden" name="do" value="search" />'; - print '<input type="text" '; - if($ACT == 'search') print 'value="'.htmlspecialchars($QUERY).'" '; - print 'placeholder="'.$lang['btn_search'].'" '; - if(!$autocomplete) print 'autocomplete="off" '; - print 'id="qsearch__in" accesskey="f" name="id" class="edit" title="[F]" />'; - print '<button type="submit" title="'.$lang['btn_search'].'">'.$lang['btn_search'].'</button>'; - if($ajax) print '<div id="qsearch__out" class="ajax_qsearch JSpopup"></div>'; - print '</div></form>'; + $searchForm = new dokuwiki\Form\Form([ + 'action' => wl(), + 'method' => 'get', + 'role' => 'search', + 'class' => 'search', + 'id' => 'dw__search', + ], true); + $searchForm->addTagOpen('div')->addClass('no'); + $searchForm->setHiddenField('do', 'search'); + $searchForm->setHiddenField('id', $ID); + $searchForm->addTextInput('q') + ->addClass('edit') + ->attrs([ + 'title' => '[F]', + 'accesskey' => 'f', + 'placeholder' => $lang['btn_search'], + 'autocomplete' => $autocomplete ? 'on' : 'off', + ]) + ->id('qsearch__in') + ->val($ACT === 'search' ? $QUERY : '') + ->useInput(false) + ; + $searchForm->addButton('', $lang['btn_search'])->attrs([ + 'type' => 'submit', + 'title' => $lang['btn_search'], + ]); + if ($ajax) { + $searchForm->addTagOpen('div')->id('qsearch__out')->addClass('ajax_qsearch JSpopup'); + $searchForm->addTagClose('div'); + } + $searchForm->addTagClose('div'); + trigger_event('FORM_QUICKSEARCH_OUTPUT', $searchForm); + + echo $searchForm->toHTML(); + return true; } diff --git a/lib/exe/js.php b/lib/exe/js.php index ee017a41ee63d83c73791c262ee339b57012ee14..4c614f08023f3474bafffce15fea7d0b6289ac62 100644 --- a/lib/exe/js.php +++ b/lib/exe/js.php @@ -47,6 +47,7 @@ function js_out(){ DOKU_INC.'lib/scripts/cookie.js', DOKU_INC.'lib/scripts/script.js', DOKU_INC.'lib/scripts/qsearch.js', + DOKU_INC.'lib/scripts/search.js', DOKU_INC.'lib/scripts/tree.js', DOKU_INC.'lib/scripts/index.js', DOKU_INC.'lib/scripts/textselection.js', diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php index 269d24f4c96a601abc3906e8d4daf74d1af75695..cee84604cfde26e843993a83a4bf3a81084bb657 100644 --- a/lib/plugins/config/lang/en/lang.php +++ b/lib/plugins/config/lang/en/lang.php @@ -178,6 +178,12 @@ $lang['xsendfile'] = 'Use the X-Sendfile header to let the webserver deliver s $lang['renderer_xhtml'] = 'Renderer to use for main (xhtml) wiki output'; $lang['renderer__core'] = '%s (dokuwiki core)'; $lang['renderer__plugin'] = '%s (plugin)'; +$lang['search_limit_to_first_ns'] = 'Limit the search to the current X namespaces. When a search is executed from a page within a deeper namespace, the first X namespaces will be added as filter'; +$lang['search_default_fragment_behaviour'] = 'Specify the default fragment search behavior'; +$lang['search_default_fragment_behaviour_o_exact'] = 'exact'; +$lang['search_default_fragment_behaviour_o_starts_with'] = 'starts with'; +$lang['search_default_fragment_behaviour_o_ends_with'] = 'ends with'; +$lang['search_default_fragment_behaviour_o_contains'] = 'contains'; /* Network Options */ $lang['dnslookups'] = 'DokuWiki will lookup hostnames for remote IP addresses of users editing pages. If you have a slow or non working DNS server or don\'t want this feature, disable this option'; diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php index 0527bb9c3ea730947f5ad323880f1985f979ecd9..750245957dbd38a4fd7a67b396ceed91a6652f80 100644 --- a/lib/plugins/config/settings/config.metadata.php +++ b/lib/plugins/config/settings/config.metadata.php @@ -219,6 +219,8 @@ $meta['broken_iua'] = array('onoff'); $meta['xsendfile'] = array('multichoice','_choices' => array(0,1,2,3),'_caution' => 'warning'); $meta['renderer_xhtml'] = array('renderer','_format' => 'xhtml','_choices' => array('xhtml'),'_caution' => 'warning'); $meta['readdircache'] = array('numeric'); +$meta['search_limit_to_first_ns'] = array('numeric', '_min' => 0); +$meta['search_default_fragment_behaviour'] = array('multichoice','_choices' => array('exact', 'starts_with', 'ends_with', 'contains'),); $meta['_network'] = array('fieldset'); $meta['dnslookups'] = array('onoff'); diff --git a/lib/scripts/search.js b/lib/scripts/search.js new file mode 100644 index 0000000000000000000000000000000000000000..363170825a2d3090cfdb560e28fb6f164c0e3073 --- /dev/null +++ b/lib/scripts/search.js @@ -0,0 +1,48 @@ +jQuery(function () { + 'use strict'; + + const $searchForm = jQuery('.search-results-form'); + if (!$searchForm.length) { + return; + } + + const $toggleAssistanceButton = jQuery('<button>') + .addClass('toggleAssistant') + .attr('type', 'button') + .attr('aria-expanded', 'false') + .text(LANG.search_toggle_tools) + .prependTo($searchForm.find('fieldset')) + ; + + $toggleAssistanceButton.on('click', function () { + jQuery('.advancedOptions').toggle(0, function () { + var $me = jQuery(this); + if ($me.attr('aria-hidden')) { + $me.removeAttr('aria-hidden'); + $toggleAssistanceButton.attr('aria-expanded', 'true'); + DokuCookie.setValue('sa', 'on'); + } else { + $me.attr('aria-hidden', 'true'); + $toggleAssistanceButton.attr('aria-expanded', 'false'); + DokuCookie.setValue('sa', 'off'); + } + }); + }); + + if (DokuCookie.getValue('sa') === 'on') { + $toggleAssistanceButton.click(); + } + + $searchForm.find('.advancedOptions .toggle div.current').on('click', function () { + var $me = jQuery(this); + $me.parent().siblings().removeClass('open'); + $me.parent().siblings().find('ul:first').attr('aria-expanded', 'false'); + $me.parent().toggleClass('open'); + if ($me.parent().hasClass('open')) { + $me.parent().find('ul:first').attr('aria-expanded', 'true'); + } else { + $me.parent().find('ul:first').attr('aria-expanded', 'false'); + } + }); + +}); diff --git a/lib/tpl/dokuwiki/css/_search.css b/lib/tpl/dokuwiki/css/_search.css deleted file mode 100644 index a8972ae725868eea71fa4d3742b2d412b509f11a..0000000000000000000000000000000000000000 --- a/lib/tpl/dokuwiki/css/_search.css +++ /dev/null @@ -1,109 +0,0 @@ -/** - * This file provides styles for the search results page (?do=search) - * and the AJAX search popup. - */ - -/* search results page -********************************************************************/ - -/* loading gif */ -#dw__loading { - text-align: center; - margin-bottom: 1.4em; -} - -/*____________ matching pagenames ____________*/ - -.dokuwiki div.search_quickresult { - margin-bottom: 1.4em; -} -.dokuwiki div.search_quickresult h3 { -} -.dokuwiki div.search_quickresult ul { - padding: 0; -} -.dokuwiki div.search_quickresult ul li { - float: left; - width: 12em; - margin: 0 1.5em; -} -[dir=rtl] .dokuwiki div.search_quickresult ul li { - float: right; -} - -/*____________ search results ____________*/ - -.dokuwiki dl.search_results { - margin-bottom: 1.2em; -} - -/* search heading */ -.dokuwiki dl.search_results dt { - font-weight: normal; - margin-bottom: .2em; -} -/* search snippet */ -.dokuwiki dl.search_results dd { - color: @ini_text_alt; - background-color: inherit; - margin: 0 0 1.2em 0; -} - -/* search hit in normal text */ -.dokuwiki .search_hit { - color: @ini_text; - background-color: __highlight__; -} -/* search hit in search results */ -.dokuwiki .search_results strong.search_hit { - font-weight: normal; -} -/* ellipsis separating snippets */ -.dokuwiki .search_results .search_sep { - color: @ini_text; - background-color: inherit; -} - -/* "nothing found" at search + media */ -.dokuwiki div.nothing { - margin-bottom: 1.4em; -} - - -/* AJAX quicksearch popup -********************************************************************/ - -.dokuwiki form.search div.no { - position: relative; -} - -/* .JSpopup */ -.dokuwiki form.search div.ajax_qsearch { - position: absolute; - top: 0; - left: -13.5em; /* -( width of #qsearch__in + padding of .ajax_qsearch + a bit more ) */ - width: 12em; - padding: 0.5em; - font-size: .9em; - z-index: 20; - text-align: left; - display: none; -} -[dir=rtl] .dokuwiki form.search div.ajax_qsearch { - left: auto; - right: -13.5em; - text-align: right; -} -.dokuwiki form.search div.ajax_qsearch strong { - display: block; - margin-bottom: .3em; -} -.dokuwiki form.search div.ajax_qsearch ul { - margin: 0 !important; - padding: 0 !important; -} -.dokuwiki form.search div.ajax_qsearch ul li { - margin: 0; - padding: 0; - display: block !important; -} diff --git a/lib/tpl/dokuwiki/css/_search.less b/lib/tpl/dokuwiki/css/_search.less new file mode 100644 index 0000000000000000000000000000000000000000..ad41ac58193453401f58965cacf7c007bbdc0909 --- /dev/null +++ b/lib/tpl/dokuwiki/css/_search.less @@ -0,0 +1,201 @@ +/** + * This file provides styles for the search results page (?do=search) + * and the AJAX search popup. + */ + +/* general +********************************************************************/ + +/* search hit in normal text */ +.dokuwiki .search_hit { + color: @ini_text; + background-color: __highlight__; +} + +/* "nothing found" at search + media */ +.dokuwiki div.nothing { + margin-bottom: 1.4em; +} + +/* search results page +********************************************************************/ + +/*____________ advanced search form ____________*/ +.dokuwiki .search-results-form fieldset.search-form { + width: 100%; + margin: 1em 0; + + input[name="q"] { + width: 50%; + } + + button.toggleAssistant { + float: right; + } + + .advancedOptions { + padding: 1em 0; + + > div { + display: inline-block; + position: relative; + margin: 0 0.5em; + } + + div.toggle { + // default closed toggle state + div.current { + cursor: pointer; + max-width: 10em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + + &::after { + content: 'â–¼'; + font-size: smaller; + color: @ini_text_alt; + } + } + div.changed { + font-weight: bold; + } + ul { + display: none; + position: absolute; + border: 1px solid @ini_border; + background-color: @ini_background; + padding: 0.25em 0.5em; + text-align: left; + min-width: 10em; + max-width: 15em; + max-height: 50vh; + overflow: auto; + z-index: 100; + li { + margin: 0.25em 0; + list-style: none; + + a { + display: block; + } + } + } + + // open toggle state + &.open { + div.current::after { + content: 'â–²'; + } + + ul { + display: block; + } + } + } + } +} + +[dir=rtl] .search-results-form fieldset.search-form .advancedOptions { + div.toggle ul { + text-align: right; + } +} + + +/*____________ matching pagenames ____________*/ + +.dokuwiki div.search_quickresult { + margin-bottom: 1.4em; + + h3 { + } + ul { + padding: 0; + + li { + float: left; + width: 12em; + margin: 0 1.5em; + } + } +} + +[dir=rtl] .dokuwiki div.search_quickresult ul li { + float: right; +} + +/*____________ search results ____________*/ + +.dokuwiki dl.search_results { + margin-bottom: 1.2em; + + /* search heading */ + dt { + font-weight: normal; + margin-bottom: .2em; + } + + /* search snippet */ + dd { + color: @ini_text_alt; + background-color: inherit; + margin: 0 0 1.2em 0; + + /* search hit in search results */ + strong.search_hit { + font-weight: normal; + /* color is set in general */ + } + + /* ellipsis separating snippets */ + .search_sep { + color: @ini_text; + background-color: inherit; + } + } +} + +/* AJAX quicksearch popup +********************************************************************/ + +.dokuwiki form.search { + div.no { + position: relative; + } + + /* .JSpopup */ + div.ajax_qsearch { + position: absolute; + top: 0; + left: -13.5em; /* -( width of #qsearch__in + padding of .ajax_qsearch + a bit more ) */ + width: 12em; + padding: 0.5em; + font-size: .9em; + z-index: 20; + text-align: left; + display: none; + + strong { + display: block; + margin-bottom: .3em; + } + + ul { + margin: 0 !important; + padding: 0 !important; + + li { + margin: 0; + padding: 0; + display: block !important; + } + } + } +} + +[dir=rtl] .dokuwiki form.search div.ajax_qsearch { + left: auto; + right: -13.5em; + text-align: right; +} diff --git a/lib/tpl/dokuwiki/style.ini b/lib/tpl/dokuwiki/style.ini index ca6de6aa1ed3338d5a49a9704d9ed6be976cbad7..723e8bc8fbcbaee30e7feb3490b4ee732c44be1a 100644 --- a/lib/tpl/dokuwiki/style.ini +++ b/lib/tpl/dokuwiki/style.ini @@ -25,7 +25,7 @@ css/_tabs.css = screen css/_links.css = screen css/_toc.css = screen css/_footnotes.css = screen -css/_search.css = screen +css/_search.less = screen css/_recent.css = screen css/_diff.css = screen css/_edit.css = screen