Kolejne funkcje
Funkcja getSubcatName() zwraca tytuł etykiety podkategorii za pomocą jej indeksu w tablicy. Pobiera najpierw NAZWĘ KLUCZA TABLICY Z ETYKIETĄ o indeksie = catIndex, a następnie za pomocą tego klucza zwraca resztę, np. wywołanie getSubcatName(4) zwróci z tablicy ciąg Wyrażenia regularne, wg zasady działania:- tmpkey = counterNames[4] = PHP_wyrazenia_regularne
- subcategories['PHP_wyrazenia_regularne'] = new Array(4, 0, 'Wyrażenia regularne');
- return subcategories['PHP_wyrazenia_regularne'][2] = Wyrażenia regularne
- function getSubcatName(catIndex)
- {
- var tmpKey = counterNames[catIndex];
- return subcategories[tmpKey][2];
- }
Co dalej?
Mając informacje o etykiecie jaką właśnie wyświetlamy, możemy wygenerować sobie nagłówek z jej nazwą, a także np. linkiem do kategorii nadrzędnej. Wykonamy to poniższą funkcją. Funkcja getHeader() jako argument pobiera jedynie tablicę z NAZWĄ ETYKIETY, której pierwszym [0] elementem jest nazwa etykiety.
- function getHeader(label_name)
- {
- var fullname = '';
- if(label_name[0] in categories) {
- fullname = categories[label_name[0]][0] + ' ('+ categories[label_name[0]][1] + ')' ; // a
- global_label = label_name[0]; // b
- } else {
- if(label_name[0] in subcategories) {
- var tmpParentIndex = parseInt(subcategories[label_name[0]][1]); //a
- var tmpParentLabel = getCatLabel(tmpParentIndex); //b
- global_label = tmpParentLabel; //c
- global_sublabel = label_name[0]; //d
- fullname = '<a href="http://phpmajster.blogspot.com/search/label/' + tmpParentLabel +'">' + categories[tmpParentLabel][0] + '</a> / ' + subcategories[label_name[0]][2] + ' ('+ getCount(label_name[0]) +')'; // e
- }
- }
- return fullname;
- }
Przeanalizujmy jej działanie:
- function getHeader(label_name)
- {
- var fullname = '';
- /*
- Na początku sprawdzamy, czy NAZWA ETYKIETY znajduje się w tablicy z kategoriami (jako klucz).
- Tym samym sprawdzamy, czy badana etykieta jest kategorią, czy podkategorią.
- */
- if(label_name[0] in categories) {
- /*
- Sprawdziliśmy, okazało się, że etykieta należy do nadrzędnej kategorii, wygenerujemy zatem nagłówek z jej nazwą, a w nawiasie podamy łączną ilość postów oznaczonych tą właśnie etykietą i etykietami jej podkategorii (a).
- Na koniec przypiszemy NAZWĘ ETYKIETY do globalnej zmiennej global_label, do wykorzystania w innych miejscach kodu (b):
- */
- fullname = categories[label_name[0]][0] + ' ('+ categories[label_name[0]][1] + ')' ; // a
- global_label = label_name[0]; // b
- } else {
- if(label_name[0] in subcategories) {
- /*
- A tutaj okazuje się, że etykieta należy jednak do podkategoriii.
- Na początek pobierzemy index kategorii nadrzędnej (a) oraz jej nazwę (b).
- Na koniec przypiszemy NAZWĘ ETYKIETY kategorii nadrzędnej do globalnej zmiennej global_label, a podkategorii do global_sublabel - do wykorzystania w innych miejscach kodu (c i d) ifinalnie wygenerujemy nagłówek z linkiem zarówno do kategorii nadrzędnej jak i podkategorii (e):
- */
- var tmpParentIndex = parseInt(subcategories[label_name[0]][1]); //a
- var tmpParentLabel = getCatLabel(tmpParentIndex); //b
- global_label = tmpParentLabel; //c
- global_sublabel = label_name[0]; //d
- //console.log(global_label);
- fullname = '<a href="http://phpmajster.blogspot.com/search/label/' + tmpParentLabel +'">' + categories[tmpParentLabel][0] + '</a> / ' + subcategories[label_name[0]][2] + ' ('+ getCount(label_name[0]) +')'; // e
- }
- }
- return fullname;
- }
Funkcja getHeaderSub() działać będzie podobnie jak powyższa, z tą różnicą, że tutaj sprawdzamy od razu podkategorie i dodatkowo generujemy link do podkategorii (w funkcji powyżej generowaliśmy tylko link do kategorii nadrzędnej, podkategorię wyświetlając jedynie jako informację)
- function getHeaderSub(label_name)
- {
- var fullname = '';
- if(label_name[0] in subcategories) {
- var tmpParentIndex = parseInt(subcategories[label_name[0]][1]);
- var tmpParentLabel = getCatLabel(tmpParentIndex);
- global_label = tmpParentLabel;
- global_sublabel = label_name[0];
- fullname = '<a href="http://phpmajster.blogspot.com/search/label/' + tmpParentLabel +'">' + categories[tmpParentLabel][0] + '</a> / <a href="http://phpmajster.blogspot.com/search/label/' + label_name[0] +'">' + subcategories[label_name[0]][2] + ' ('+ getCount(label_name[0]) +')</a>';
- }
- return fullname;
- }
Brak komentarzy:
Prześlij komentarz
Masz sugestię? Znalazłeś błąd? Napisz komentarz! :)