Forum » Programiranje » javascript - gnezdenje - konkretno na mojem primeru
javascript - gnezdenje - konkretno na mojem primeru
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
Lp,
predelujem eno scripto / pa sem totalen noob v javascriptu
skratka, kako naj dodam še en kriterij za sortiranje
originalno je tako:
rad bi dodal še sortiranje po //rating//
če predelam zgornji zapis tako da besedo genre preimenujem v rating
mi deluje sortiranje po ratingu, ne vem pa kako naj obdelam ta ukaz da bo vsebovalo in rating in genre....
prosim za pomoč in hvala,
Jože
predelujem eno scripto / pa sem totalen noob v javascriptu
skratka, kako naj dodam še en kriterij za sortiranje
originalno je tako:
var sortType = filterTool.selected == filterTool.genre?'genre:first':(filterTool.selected == filterTool.year?'year:first':'title:last');
rad bi dodal še sortiranje po //rating//
če predelam zgornji zapis tako da besedo genre preimenujem v rating
var sortType = filterTool.selected == filterTool.rating?'rating:first':(filterTool.selected == filterTool.year?'year:first':'title:last');
mi deluje sortiranje po ratingu, ne vem pa kako naj obdelam ta ukaz da bo vsebovalo in rating in genre....
prosim za pomoč in hvala,
Jože
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
var filterTool = { name: null, year: null, genre: null, rating: null, input: null, selected: null, reverse: false, init: function() { $('#filter').css('visibility', 'visible'); this.name = $('#filter_name'); this.year = $('#filter_year'); this.genre = $('#filter_genre'); this.rating = $('#filter_rating'); this.input = $('#filter_input'); this.count = $('#filter_count'); this.name.click(this.filter); this.year.click(this.filter); this.genre.click(this.filter); this.rating.click(this.filter); this.input.keyup(this.filter); this.name.click(); }, filter: function(e){ if(e.target != filterTool.input.get(0)){ if(!filterTool.selected || filterTool.selected.get(0) != e.target){ if(filterTool.selected) filterTool.selected.removeClass('disabled'); if(e.target == filterTool.name.get(0)) filterTool.selected = filterTool.name; else if(e.target == filterTool.year.get(0)) filterTool.selected = filterTool.year; else if(e.target == filterTool.genre.get(0)) filterTool.selected = filterTool.genre; else if(e.target == filterTool.rating.get(0)) filterTool.selected = filterTool.rating; filterTool.selected.addClass('disabled'); }else { filterTool.reverse = !filterTool.reverse && filterTool.selected && e.target == filterTool.selected.get(0); } } else if(e.keyCode != 13) return; var sortType = filterTool.selected == filterTool.genre?'genre:first':(filterTool.selected == filterTool.year?'year:first':'title:last'); //**** tukaj bi NEKAKO VKOMPONIRAL ŠE rating var sortType = filterTool.selected == filterTool.rating?'rating:first':(filterTool.selected == filterTool.year?'year:first':'title:last'); //**** var fStr = filterTool.input.val(); var arr = !fStr?rawXML.find('movie,tvshow'):rawXML.find("movie > title:contains('" + fStr + "'),tvshow > title:contains('" + fStr + "')").parent(); arr.sort(function(a, b){ var at = $(a).find(sortType).text(); var bt = $(b).find(sortType).text(); if(sortType == 'year:first'){ if($(a).get(0).tagName == 'tvshow') at = $(a).find('premiered:first').text().substr(0,4); else if($(b).get(0).tagName == 'tvshow') bt = $(b).find('premiered:first').text().substr(0,4); at = parseInt(at); bt = parseInt(bt); } if(at < bt) return filterTool.reverse?1:-1; if(at > bt) return filterTool.reverse?-1:1; return 0; }); // movies = []; videoSmallInfo.hide(); itemSel = null; $(itemCont).empty(); arr.each(function(){ movies.push(new videoItem($(this))); }); if(movies.length > 0) movies[0].select(); filterTool.count.text(movies.length + ' flm.'); window_RESIZE(null); } }
hm,... to je cel del, ki me muči
Zgodovina sprememb…
- spremenil: Joze_K ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
ales85 ::
sortType lahko uporabiš kot polje in notri shraniš več vrednosti, nato pa preverjaš kateri filter se pojavi v tem polju.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
sortType lahko uporabiš kot polje in notri shraniš več vrednosti, nato pa preverjaš kateri filter se pojavi v tem polju.
Hja,...
ampak del mojega nagovora je bil - totalni "noob" sem v JS
kako to izvesti....
(mah če ne bo drugače bom ven vrgel sortiranje po GENRE in dal notri po RATING - gre namreč za prikaz XML baze, ki je narejena kot Backup NAS sistema, v browserju - in je uporabno če lahko sortiraš npr. po IMDB ocenah, precej bolj kot po vrsti)
še lepše pa bi bilo če bi bile obe opcije...
kot kaže je JAVASCRIPT precej nepoznano področje...
![:|](https://static.slo-tech.com/smeski/icon_confused.gif)
![](https://static.slo-tech.com/stili/avatar_gray.gif)
geca ::
Spodnji špeh conditional statementov ...
... zapiši kot ...
... in javi, če špila.
var sortType = filterTool.selected == filterTool.genre?'genre:first':(filterTool.selected == filterTool.year?'year:first':'title:last');
... zapiši kot ...
var sortType = 'title:last'; // Privzeto po naslovu. // Grdo. :( Bomo lepšali, če deluje. ;) if (filterTool.selected === filterTool.rating) { sortType = 'rating:first'; } else if (filterTool.selected === filterTool.year) { sortType = 'year:first'; } else if (filterTool.selected === filterTool.genre) { sortType = 'genre:first'; }
... in javi, če špila.
Zgodovina sprememb…
- spremenil: geca ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, HVALA, ....
It's ALIVE
Kapo dol,...
ima JS majstora....
(porka mater, zdaj še meni enostavno izgleda, ko vidim tvojo kodo....)![:P](https://static.slo-tech.com/smeski/icon_razz.gif)
HVALA,![:)](https://static.slo-tech.com/smeski/icon_smile.gif)
It's ALIVE
Kapo dol,...
ima JS majstora....
(porka mater, zdaj še meni enostavno izgleda, ko vidim tvojo kodo....)
![:P](https://static.slo-tech.com/smeski/icon_razz.gif)
HVALA,
![:)](https://static.slo-tech.com/smeski/icon_smile.gif)
Spodnji špeh conditional statementov ...
var sortType = filterTool.selected == filterTool.genre?'genre:first':(filterTool.selected == filterTool.year?'year:first':'title:last');
... zapiši kot ...
var sortType = 'title:last'; // Privzeto po naslovu.
// Grdo. :( Bomo lepšali, če deluje. ;)
if (filterTool.selected === filterTool.rating) {
sortType = 'rating:first';
} else if (filterTool.selected === filterTool.year) {
sortType = 'year:first';
} else if (filterTool.selected === filterTool.genre) {
sortType = 'genre:first';
}
... in javi, če špila.
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
@geca
še mogoče kako tole naredim?
originalno posamezno spremenljivko vpiše v arr = [] tako:
torej rad bi sestavljen NIZ imel - vpisan v Kvaliteta
npr. kvaliteta videa: 1980 x 1024 / h264
to so podatki XML spremeljivk width, height, codec
četudi se codec pojavlja dvakrat - enkrat kot video - codec in enkrat kot audio - codec
še mogoče kako tole naredim?
K1 = xDoc.find('width:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); K2 = xDoc.find('height:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); K3 = xDoc.find('codec:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); Kvaliteta = K1 + " x " + K2 + " / " + K3 arr = []; ??? dvC.find('.sub:eq(11) span').text(arr.join(Kvaliteta));
originalno posamezno spremenljivko vpiše v arr = [] tako:
arr = []; xDoc.find('dateadded:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); dvC.find('.sub:eq(10) span').text(arr.join(', '));
torej rad bi sestavljen NIZ imel - vpisan v Kvaliteta
npr. kvaliteta videa: 1980 x 1024 / h264
to so podatki XML spremeljivk width, height, codec
četudi se codec pojavlja dvakrat - enkrat kot video - codec in enkrat kot audio - codec
![](https://static.slo-tech.com/stili/avatar_gray.gif)
geca ::
Ni problema. :) Poskusi tako:
Kvaliteta = K1 + " x " + K2 + " / " + K3; // Npr. 1980 x 1024 / h264 dvC.find('.sub:eq(11) span').text(Kvaliteta);
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
napiše mi tole kot rezultat:
Kvaliteta: [object Object] x [object Object] / [object Object]
Kvaliteta: [object Object] x [object Object] / [object Object]
![](https://static.slo-tech.com/stili/avatar_gray.gif)
geca ::
Kaj pa tole?
arr = []; K1 = xDoc.find('width:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); K2 = xDoc.find('height:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); K3 = xDoc.find('codec:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); Kvaliteta = arr[0] + " x " + arr[1] + " / " + arr[2]; dvC.find('.sub:eq(11) span').text(Kvaliteta);
Zgodovina sprememb…
- spremenil: geca ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
ok, zdaj sva že blizu....
tole dobim:
Kvaliteta: 656 x 352 / div3 - rad pa bi še audio info tole / mp3
Kvaliteta: 1920 x 1040 / avc1 / aac
da na koncu še audio codec napiše, zanimivo bi bilo, da bi izpisal oba tako kot sem zgoraj odebeljeno napisal...
struktura XML pa je tale // ni isto za tista dva primera zgoraj - kako naj mu povem da naj zdaj še audio codec išče...
oz. po logiki verjetno išče sedaj naslednjo besedo codec - bom poskusil dodati
@geca hvala ti...
tole dobim:
Kvaliteta: 656 x 352 / div3 - rad pa bi še audio info tole / mp3
Kvaliteta: 1920 x 1040 / avc1 / aac
da na koncu še audio codec napiše, zanimivo bi bilo, da bi izpisal oba tako kot sem zgoraj odebeljeno napisal...
struktura XML pa je tale // ni isto za tista dva primera zgoraj - kako naj mu povem da naj zdaj še audio codec išče...
oz. po logiki verjetno išče sedaj naslednjo besedo codec - bom poskusil dodati
streamdetails-video-codec/h264/ streamdetails-audio-codec/ac3
@geca hvala ti...
Zgodovina sprememb…
- spremenil: Joze_K ()
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
jap deluje tako kot sem si mislil, kar še enkrat dodam naj bere codec in bere naslednjega v strukturi
tole je rezultat:
Kvaliteta: 640 x 352 / video: xvid / audio: mp3
tole pa koda:
če bom pri svojih modifikacijah še kje "zbremzal" se slišiva,....
zaenkrat pa @geca hvala ti...
tole je rezultat:
Kvaliteta: 640 x 352 / video: xvid / audio: mp3
tole pa koda:
K4 = xDoc.find('codec:not(:empty)').each(function(){ if(arr.indexOf($(this).text()) < 0) arr.push($(this).text()); }); Kvaliteta = arr[0] + " x " + arr[1] + " / video: " + arr[2] + " / audio: " + arr[3];
če bom pri svojih modifikacijah še kje "zbremzal" se slišiva,....
zaenkrat pa @geca hvala ti...
![](https://static.slo-tech.com/stili/avatar_gray.gif)
Joze_K ::
nova ideja, nov izziv...
ko so bili filmi dodani v KODI / XBMC so potegnili Info z interneta TheMoviedb.org - med drugim tudi oceno...
link pa je podan na IMDB / kjer so ocene rahlo različne....
a je mogoče z javascriptom potegniti tudi oceno z IMDBja...moti me namreč, da so TheMoviedb.org ocene precej nižje od IMDB, dodatno pa se ocena seveda spreminja, ko več ljudi glasuje
sem gledal in je koda na strani taka:
link do strani na kateri je koda, pa že imam podatek v XML-u
npr:
Video ID: tt3168230
ko so bili filmi dodani v KODI / XBMC so potegnili Info z interneta TheMoviedb.org - med drugim tudi oceno...
link pa je podan na IMDB / kjer so ocene rahlo različne....
a je mogoče z javascriptom potegniti tudi oceno z IMDBja...moti me namreč, da so TheMoviedb.org ocene precej nižje od IMDB, dodatno pa se ocena seveda spreminja, ko več ljudi glasuje
sem gledal in je koda na strani taka:
<div class="ratingValue"> <strong title="7,0 based on 24.736 votes"><span itemprop="ratingValue">7,0</span></strong><span class="grey">/</span><span class="grey" itemprop="bestRating">10</span> </div>
link do strani na kateri je koda, pa že imam podatek v XML-u
npr:
Video ID: tt3168230
![](https://static.slo-tech.com/stili/avatar_gray.gif)
geca ::
CORS lahko zaobideš tako, da zahtevo na IMDB izvedeš na strani strežnika (PHP oz. karkoli že predstavlja tvoj backend).
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kontakt obrazecOddelek: Izdelava spletišč | 2085 (1930) | betmen |
» | [Java]Problem z vektorjemOddelek: Programiranje | 1495 (1364) | KernelPanic |
» | [android] vstavljanje slikeOddelek: Programiranje | 1265 (1162) | messi |
» | python -slovarOddelek: Programiranje | 3166 (2145) | Valex86 |
» | Jquery scrollable menu keyboard navigacijaOddelek: Izdelava spletišč | 750 (637) | Binji |