Z lenistwa cz. IV

03 września, 2007

Mam dziś do zaprezentowania swój kolejny UserJS, przygotowany znów z myślą o serwisie Wykop.pl.

Image Hosted by ImageShack.us

Całkiem niedawno Wykop zyskał nową zaawansowaną wyszukiwarkę - pozwala ona sortować rezultaty wyszukiwania. Jednak żeby skorzystać z bardziej zaawansowanych opcji trzeba wpierw wpisać hasło do wyszukiwania, przejść na stronę wyników i dopiero tam można wybrać bardziej zaawansowane parametry wyszukiwania.

Nie ukrywam, że jest to według mnie nieprzemyślane. I dlatego właśnie powstał mój skrypt. Dodaje on za przyciskiem "szukaj" nowy przycisk "opcje" - po jego kliknięciu pojawią się zaawansowane opcje wyszukiwania, znane ze strony do której przenosi nas wyszukiwarka.

Ponadto skrypt pozwala od razu określić domyślne wartości checkboksów z uwzględnianymi w wyszukiwaniu właściwościami linków za pomocą linijki:

var conf = [false,true,true,true,true];

Pierwszy element tablicy (true lub false) decyduje o tym czy zaawansowane opcje mają być pokazywane od razu czy dopiero po kliknięciu przycisku "opcje". Elementy od drugiego do piątego odpowiadają za domyślne zaznaczenie checkboksów pozostałych opcji wyszukiwania.

Po instalacji tego skryptu prezentowana linijka będzie miała wpływ na wyniki wyszukiwania bez względu na to czy skorzystamy z przycisku "opcje" czy nie. U mnie na przykład wyszukiwarka domyślnie nie korzystała z pola URL, a teraz dzięki wspomnianej linijce kodu to robi domyślnie.

Skrypt można pobrać w wersji dla Firefoksa ze strony userscripts.org .

Oczywiście przygotowałem też wersję dla Opery :

// ==UserScript==
// @name                        Wykop advanced search button
// @description         This script add advanced search options to standard search
// @author                      Dziudek
// @version             0.1
// @include             http://*wykop.pl*
// ==/UserScript==

window.addEventListener("DOMContentLoaded",function(){

var d = document;
var conf = [false,true,true,true,true];
function $add(el){return d.createElement(el);}
function $(el){return d.getElementById(el);}

var f = $("search-form");
f.setAttribute("style","text-align: right;");

var b = $add("input");
b.setAttribute("type","button");
b.setAttribute("class","submit-button");
b.setAttribute("value","opcje");
b.addEventListener("click",hide,false);
function hide(){(conf[0]) ? $("adv-search").style.display = "none" : $("adv-search").style.display = "block";conf[0] = !conf[0];}

f.childNodes[1].appendChild(b);

var fs = $add("fieldset");
function checked(i){i++;if(conf[i]){return 'checked="checked"';}else{return false;}}
if(conf[0]){var dis = 'block';}else{var dis = 'none';}
fs.setAttribute("style","display:"+dis+";margin-top: -17px;");
fs.setAttribute("id","adv-search");
fs.innerHTML = '<select name="zakres" id="select-zakres" style="margin-right: 0;">' + 
                                        '<option value="1" selected="selected">wszystkie</option>' + 
                                        '<option value="2">wykopane</option>' + 
                                        '<option value="3">nie wykopane</option>' +
                                '</select>' +
                                '<input type="checkbox" class="chk-box" name="pole[tytul]" id="poletytul" ' + checked(0) + '/><label for="poletytul">Tytu\u0142</label>' +
                                '<input type="checkbox" class="chk-box" name="pole[opis]" id="poleopis" ' + checked(1) + '/><label for="poleopis">Opis</label>' +
                                '<input type="checkbox" class="chk-box" name="pole[URL]" id="poleURL" ' + checked(2) + '/><label for="poleURL">URL</label>' +       
                                '<input type="checkbox" class="chk-box" name="pole[tag]" id="poletag" ' + checked(3) + '/><label for="poletag">Tagi</label>';
f.appendChild(fs);

},false);

Komentarze do wpisu "Z lenistwa cz. IV":

1. cimlik napisał(a):
03 września 2007, 14:19:33

Dobre Dziudek! Do jednej rzeczy się przyczepię tylko – checkboksy są dziwnie ułożone. Ciężko domyślić się, który jest do czego :).

2. Dziudek napisał(a):
03 września 2007, 14:20:41

@cimlik – wiem, ale jakoś nie udało mi się tego zmienić – Wykop tak ma ;) Po prostu trzeba się przyzwyczaić ;)

3. cimlik napisał(a):
03 września 2007, 14:21:37

Dziudek: spoko, da się z tym wytrzymać :).

4. coldpeer napisał(a):
03 września 2007, 17:50:40

Dziudek lenisz się za bardzo ostatni ;-P

5. Dziudek napisał(a):
03 września 2007, 17:59:25

@coldpeer – ale sam powiedz – czy nie wygodniej :>

6. Coldpeer napisał(a):
03 września 2007, 18:00:53

w sumie mi to już jedno, nie korzystam od niedawna z wykopu, tylko czasem zobaczę jak jest coś ciekawego

Dodaj komentarz:

Textile Lite włączony ( szczegółowy opis znaczników ):
*strong* | # lista numerowana | * lista wypunktowana | _em_ | __italic__ | "link":http:// | bq. cytat.