Плагин полнотекстового поиска по Mantis для Firefox

Многие из вас, как и я, пользуются багтрекером Mantis. Поиск по нему в штатном интерфейсе ужасен: нужно выбирать “Все проекты”, нажимать “Просмотр обращений”, листать вниз, включать соответствующие режимы (назначено, не скрывать, все категории и т.д.) и только затем вводить поисковую фразу в маленькое окошечко.

Это издевательство. Поэтому я написал небольшой плагин для Firefox, который позволяет вводить нужную фразу прямо в интерфейсе браузера.

Вот как он устроен: поскольку Mantis не даёт выбирать режим “все проекты” прямым get-запросом, нужен промежуточный и незаметный запрос к серверу, который этот режим и установит. Для этого я положил в корневую директорию файлик _search.php с таким содержимым:

<?php
$url=’http://{DOMAIN}/view_all_set.php?f=3&dir_0=DESC&filter=%C3%94%C3%A8%C3%AB%C3%BC%C3%B2%C3%B0%C3%AE%C3%A2%C3%A0%C3%B2%C3%BC&handler_id%5B%5D=0&hide_status%5B%5D=-2&highlight_changed=6&page_number=1&per_page=100&relationship_bug=0&relationship_type=-1&reporter_id%5B%5D=0&show_build%5B%5D=0&show_category%5B%5D=0&show_priority%5B%5D=0&show_profile%5B%5D=0&show_resolution%5B%5D=0&show_severity%5B%5D=0&show_status%5B%5D=0&sort_0=priority&sticky_issues=on&type=1&user_monitor%5B%5D=0&view_state=0&view_type=simple&search=’.urlencode($_REQUEST[‘search’]);
?>
<html>
<head>
<META HTTP-EQUIV=”REFRESH” CONTENT=”2;URL=<?php echo($url); ?>”>
</head>
<body>
<p>Please wait..</p>
<iframe src=’http://{DOMAIN}/set_project.php?project_id=0′ style=’display:none;’>
</body>
</html>

Замените {DOMAIN} на полный домен, на котором установлен ваш Mantis.

Что здесь происходит? При загрузке этой страницы подгружается невидимый iframe, который и устанавливает режим “все проекты” штатными средствами Мантиса. Изящно и легко, без необходимости лезть в код.

Затем через 2 секунды выполняется редирект на сложный URL, в котором зашифрована поисковая фраза.

Чтобы запустить эту штуку из интерфейса файрфокса, нужно положить следующий файлик (назовите его mantis.src) в подкаталог searchplugins в директории, где у вас установлен сам Firefox:

<search
name=”MantisSearch”
description=”Mantis Bugtracker”
method=”GET”
action=”http://{DOMAIN}/_search.php”
queryEncoding=”windows-1251″
queryCharset=”windows-1251″>
<input name=”search” user>
</search>

Не забудьте заменить {DOMAIN} и указать другую кодировку, если необходимо. И перезапустите браузер.

В результате в окошечке поиска (обычно правее адресной строки) у вас появится возможность выбрать MantisSearch и вводить нужные слова. Русский язык полностью поддерживается, если конечно вы не ошиблись с кодировкой.