Перекрестная публикация на форумах DokuWiki :
Итак, я вносил некоторые изменения, чтобы учесть три вещи: использование заглавных букв в именах страниц, естественная сортировка в боковой панели.ToC и поиск без учета регистра.
Имейте в виду, потому что я знаю, что это похоже на ошибку прав доступа к файлу.Я не верю, что это так.
При поиске «nul» и любых его изменений (nUl, Nul, nuL и т. Д.) Я получаю следующее сообщение об ошибке:
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 365
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 366
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 367
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 368
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 369
Warning: filesize() [function.filesize]: stat failed for C:/Websites/dokuwiki/data/meta/nul.changes in C:\Websites\dokuwiki\inc\changelog.php on line 305
Страницы с именем "nul" не было и никогда не было.Когда поиск завершен, он добавляет новую строку в \ dokuwiki \ data \ index \ page.idx с тем же содержимым, что я искал (nul, NuL, nUl и т. Д. И т. Д.).Как только эта строка добавлена в page.idx, любой поиск букв «n», «u» или «l» также приведет к ошибке:
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 365
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 366
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 367
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 368
Warning: Cannot unset offset in a non-array variable in C:\Websites\dokuwiki\inc\parserutils.php on line 369
Warning: filectime() [function.filectime]: stat failed for C:/Websites/dokuwiki/data/pages/nul.txt in C:\Websites\dokuwiki\inc\parser\metadata.php on line 46
Warning: filemtime() [function.filemtime]: stat failed for C:/Websites/dokuwiki/data/pages/nul.txt in C:\Websites\dokuwiki\inc\parser\metadata.php on line 72
Еще раз, страница «nul»никогда не существовал в вики и записывается в page.idx после поиска.
Вот изменения, которые я сделал для достижения трех вещей, которые я отметил в начале своего поста:
/inc/fulltext.php, строки 255 и 263: я заменил «strpos» на «stripos».
if ($id !== '' && $cleaned !== '') {
foreach ($pages as $p_id => $p_title) {
if ((stripos($in_ns ? $p_id : noNSorNS($p_id), $cleaned) === false) &&
(!$in_title || (stripos($p_title, $id) === false)) ) {
unset($pages[$p_id]);
}
}
}
if (isset($ns)) {
foreach (array_keys($pages) as $p_id) {
if (stripos($p_id, $ns) !== 0) {
unset($pages[$p_id]);
}
}
}
/ inc / pageutils.php, строка 114 удалена:
//$id = utf8_strtolower($id);
/ inc / search.php, строки 40 и 41: я заменил «sort» на «natcasesort»
natcasesort($files);
natcasesort($dirs);
Насколько я могу судить, все эти незначительные изменения, и я ничего не вижуСразу видно, что это станет причиной этой проблемы.
Есть идеи?
Обновление -
Я отменил все свои изменения и ошибка повторяется.
Затем я установил новую DokuWiki (выпуск 2010-11-07a "Anteater") в совершенно отдельный каталог, ошибка не исчезла.
Затем я установил ночной снимок с splitbrain.org,и ошибка сохраняется.
У кого-нибудь есть идеи?