ProjeXCode Forum: Fitur History Menggunakan LocalStorage

Title Role Staff

Title Role Senior Member

Title Role Member

Title Role Junior Member

Title Role New Member

Title Badge Moderator

Title Color Moderator

Title Badge Staff

Title Color Staff

Title Badge Member

Title Color Member

Status Info

Status Verified

ADS Title User

Your Time :

Server Time :

  • Fitur History Menggunakan LocalStorage
    June 26, 2022
    Share this Threads
    Close
    Yak Tutorial ini ku peruntukan ke abang Wernayasa,
    Karena inginnya fitur ini ku rilis saat theme Nyanpahsu jadi.
    Codenya sama aja kyak Fitur Bookmark Menggunakan LocalStorage.
    Cuma Butuh Edit2 dikit disesuai dengan penggunanya.
    Soo yeah ga biasanya gua basa basi kek gini lgsg aja ke Intinya..

    letakkan JS ini di atas tag </head> dan kasih Condition data:view.isPost

    Script.JS [Post] :

    const limitHistory = 10;
    const histories = (function(){
    list = [];
    function Item(id,title,link){
    	this.id = id;
    	this.title = title;
        this.link = link;
    }
    function setHistory(){
    	localStorage.setItem('History', JSON.stringify(list));
    }
    function loadHistory() {
        list = JSON.parse(localStorage.getItem('History'));
    }
    if (localStorage.getItem("History") != null) {
        loadHistory();
    }
    obj = {};
    obj.addHistory = function(id,title,link) {
        var item = new Item(id,title,link);
        if(list != null){
        	same = list.find(item =>{return item.id == id;});
        		if(list.length<limitHistory){
         			if(!same){
        			list.push(item);
        			setHistory();
          			}else{
          			  for(let item in list){
          				if(list[item].id === id) {
            				list.splice(list.length, 0, list.splice(item, 1)[0]);
          				}
                		setHistory();
    				  }
    	  			}
    			}else{
    				if(!same){
    				list.splice(0, 1);
        			list.push(item);
        			setHistory();
          			}else{
          			  for(let item in list){
          				if(list[item].id === id) {
            				list.splice(list.length, 0, list.splice(item, 1)[0]);
          				}
                		setHistory();
    				  }
    	  			}
    	}
    }else{
    list.push(item);
    setHistory();
    }
    }
    return obj;
    })();


    Untuk Pemanggil letakkan dalam Widget Blog1 (Main Post) :

    <script>histories.addHistory(&quot;<data:post.id/>&quot;,&quot;<data:post.title/>&quot;,&quot;<data:post.url/>&quot;);</script>


    Nah untuk mengekstrak data kedalam widget History.Letakkan JS dibawah dan jangan dikasih condition data:view (apabila widgetnya mau ditampilin di semua halaman)

    Script.js [Extrack Data] :

    const history_ = function(widget,id){
    let getHistory = JSON.parse(localStorage.getItem('History')),structure = '';
    if(getHistory != null && getHistory != ''){
    for(let item in getHistory.reverse()){
    structure += `<li class="bm_item"><a href="${getHistory[item].link}">${getHistory[item].title}</a></li>`;
    }
    $(id).html(structure);
    }else{
    $(widget).remove();
    }
    }


    Script Pemanggil Letakkan Dalam Widget Content dalam Menu Layout Blogger HTML/Javascript :

    <script>history_('#HTML7','#bm-history')</script>


    Keterangan :
    - Ubah Selector pada Pemanggilan History yang ada dalam Widget :
    #HTML7


    ganti Dengan ID HTML Widgetnya

    #bm-history


    ganti dengan Selector target untuk hasil/result History yang tersimpan.
    Last edited : June 26, 2022
    Sun Jun 26, 10:16:00 PM GMT+9
    bntr stlah ku cek ada bug sabar ya
    Sun Jun 26, 10:48:00 PM GMT+9
    Bug Fixed, All its Okay Now
    Sun Jun 26, 11:36:00 PM GMT+9
    Mau nanya Script.js [Extrack Data] : dipasang di atas /body kan?

    #bm-history apa perlu diganti atau dibiarkan aja?
    Sun Jun 26, 11:39:00 PM GMT+9
    Wernayasa said: Mau nanya Script.js [Extrack Data] : dipasang di atas /body kan?

    #bm-history apa perlu diganti atau dibiarkan aja?
    udah bagus taruh situ, permasalahnya cuma di bm itu

    script pemanggilnya gnti ini bg :
    history_('#HTML10','#HTML10 .widget-content')
    Sun Jun 26, 11:52:00 PM GMT+9
    Wernayasa said: Mau nanya Script.js [Extrack Data] : dipasang di atas /body kan?

    #bm-history apa perlu diganti atau dibiarkan aja?
    scriptnya di atas </head> bg baru ku cek ternyata di bawah makanya ga mau manggil
    Sun Jun 26, 11:58:00 PM GMT+9
    김서정 said: scriptnya di atas </head> bg baru ku cek ternyata di bawah makanya ga mau manggil
    Yes, sukses.
    Sempat bingung juga, salahnya dimana ya. wkwkw.
    Sudah bisa, makasih.
    Mon Jun 27, 03:10:00 AM GMT+9
    Hampir mirip xenforo
    Mon Jun 27, 10:42:00 AM GMT+9
    Wernayasa said: Yes, sukses.
    Sempat bingung juga, salahnya dimana ya. wkwkw.
    Sudah bisa, makasih.
    sama2 bg
    Fri Jul 01, 06:38:00 PM GMT+9
    min cara ambil data dari postingan gimana? kayak yg di bookmark
    Fri Jul 01, 07:41:00 PM GMT+9
    Dani_Edtz_ said: min cara ambil data dari postingan gimana? kayak yg di bookmark
    tinggal kamu tambahin yg ada di object array addHistory dan yg ada di function Item, habis itu pada pemanggilan script tinggal kamu tambahin selectornya
    Fri Jul 01, 08:31:00 PM GMT+9
    Kubao said: tinggal kamu tambahin yg ada di object array addHistory dan yg ada di function Item, habis itu pada pemanggilan script tinggal kamu tambahin selectornya
    pas pemanggilan script caranya gimana min?
    Fri Jul 01, 10:27:00 PM GMT+9
    Dani_Edtz_ said: pas pemanggilan script caranya gimana min?
    histories.addHistory("","","","document.getElementById('title').innerHTML");
    Fri Jul 01, 10:29:00 PM GMT+9
    Kubao said: histories.addHistory("","","","document.getElementById('title').innerHTML");
    sorry harusnya ini diparse anggap aja kyak yg ada di atas (post) lalu tambahin selectornya
    Sat Jul 02, 08:33:00 AM GMT+9
    Kubao said: sorry harusnya ini diparse anggap aja kyak yg ada di atas (post) lalu tambahin selectornya
    min tulisannya undefined, tolong cek in aku gak tau salahnya dimana https://manga8i.blogspot.com/
    Sat Jul 02, 12:07:00 PM GMT+9
    Dani_Edtz_ said: min tulisannya undefined, tolong cek in aku gak tau salahnya dimana https://manga8i.blogspot.com/
    mau nambahin apa emangnya ?
    Sat Jul 02, 01:29:00 PM GMT+9
    Kubao said: mau nambahin apa emangnya ?
    nambahin nama series soalnya postingannya judul chapter gak ada seriesnya
    Sat Jul 02, 02:06:00 PM GMT+9
    Dani_Edtz_ said: nambahin nama series soalnya postingannya judul chapter gak ada seriesnya
    itu dalam post mu cuma 1 label (label series aja) ga ? yg post chapter
    Sat Jul 02, 05:28:00 PM GMT+9
    Kubao said: itu dalam post mu cuma 1 label (label series aja) ga ? yg post chapter
    ga min ada 3, Chapter,nama series,Project
    Sat Jul 02, 06:26:00 PM GMT+9
    Dani_Edtz_ said: ga min ada 3, Chapter,nama series,Project
    coba ini di post mu muncul label series aja ga ?

    <b:if cond='data:post.labels any (l => l.name == "Chapter")'>
    <b:loop values='data:post.labels where (l => l.name not in ["Chapter","Project"])' var='label'>
    <data:label.name/>
    </b:loop>
    </b:if>


    habis itu kalo berhasil atau gagal kabarin nnti ku lanjutin kalo berhasil kalo ggal ku cek
    Sat Jul 02, 06:35:00 PM GMT+9
    Kubao said: coba ini di post mu muncul label series aja ga ?

    <b:if cond='data:post.labels any (l => l.name == "Chapter")'>
    <b:loop values='data:post.labels where (l => l.name not in ["Chapter","Project"])' var='label'>
    <data:label.name/>
    </b:loop>
    </b:if>


    habis itu kalo berhasil atau gagal kabarin nnti ku lanjutin kalo berhasil kalo ggal ku cek
    gak muncul min ditaruh di post
    Sat Jul 02, 06:40:00 PM GMT+9
    Dani_Edtz_ said: gak muncul min ditaruh di post
    ku test aman kok, coba kamu selidiki lagi
    https://jiryuu.blogspot.com/2022/06/solo-leveling.html
    Sat Jul 02, 09:06:00 PM GMT+9
    Kubao said: ku test aman kok, coba kamu selidiki lagi
    https://jiryuu.blogspot.com/2022/06/solo-leveling.html
    klo pake tema dari blogger aman aman aja tapi pas ku coba di tema zeistmanga gak bisa
    Sat Jul 02, 09:22:00 PM GMT+9
    Dani_Edtz_ said: klo pake tema dari blogger aman aman aja tapi pas ku coba di tema zeistmanga gak bisa
    besok ku coba pasang di zeist sabar dlu ya, lagi weekend ingin istirahat dlu aku
    Sat Jul 02, 09:24:00 PM GMT+9
    Kubao said: besok ku coba pasang di zeist sabar dlu ya, lagi weekend ingin istirahat dlu aku
    oke santuy aja gak usah terburu buru
    Sun Jul 03, 09:56:00 AM GMT+9
    Dani_Edtz_ said: oke santuy aja gak usah terburu buru
    1. Cari attribute id "postChapter".
    2. setelah ketemu kamu lihat ada script kan, kayak ku tunjukin anak panah gede di gambar
    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRDWz2xZJaaSjlU2kuc17kjI8PvhjTJrMGNfzTDP_95cgiWJHlCGpnyaYX2aTUn0fGB1hWGLaE0qE9jdd4iPMSDOVS4eG1TUKi8Xs4Ufx00fI8Zm99MZdH2x2kix35lywNDAqDKnZj5a4XRFlN1tyzU0dYudm2lS2k5edGMzGIzIFoLExhvyvUvSSH/s1058/tutorial.png

    3. pada script tersebut tinggal kamu gnti seperti ini
    <script>
    document.title = &quot;<data:label.name/> - <data:post.title/>&quot;;
    histories.addHistory(&quot;<data:post.id/>&quot;,&quot;<data:label.name/> <data:post.title/>&quot;,&quot;<data:post.url/>&quot;);
    </script>
    Sun Jul 03, 04:45:00 PM GMT+9
    Kubao said: 1. Cari attribute id "postChapter".
    2. setelah ketemu kamu lihat ada script kan, kayak ku tunjukin anak panah gede di gambar
    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRDWz2xZJaaSjlU2kuc17kjI8PvhjTJrMGNfzTDP_95cgiWJHlCGpnyaYX2aTUn0fGB1hWGLaE0qE9jdd4iPMSDOVS4eG1TUKi8Xs4Ufx00fI8Zm99MZdH2x2kix35lywNDAqDKnZj5a4XRFlN1tyzU0dYudm2lS2k5edGMzGIzIFoLExhvyvUvSSH/s1058/tutorial.png

    3. pada script tersebut tinggal kamu gnti seperti ini
    <script>
    document.title = &quot;<data:label.name/> - <data:post.title/>&quot;;
    histories.addHistory(&quot;<data:post.id/>&quot;,&quot;<data:label.name/> <data:post.title/>&quot;,&quot;<data:post.url/>&quot;);
    </script>
    masih gak bisa min
    Sun Jul 03, 05:25:00 PM GMT+9
    Dani_Edtz_ said: masih gak bisa min
    satu aja yg kamu pasang double itu, dan yg atas yg salah karena gada value data post labels

    https://i.ibb.co/3fzt4ty/1aja.png
    Sun Jul 03, 08:33:00 PM GMT+9
    Kubao said: satu aja yg kamu pasang double itu, dan yg atas yg salah karena gada value data post labels

    https://i.ibb.co/3fzt4ty/1aja.png
    iya min bisa, thanks min dah bantuin

    Similar Threads