Mecha versi 2.6.4 sudah dirilis!

Operator URL pada Blogger

Tabel Konten
  1. path(url, path) 
  2. params(url, params) 
  3. appendParams(url, params) 
  4. fragment(url, fragment) 

Berikut ini adalah beberapa operator pengubah URL yang dapat Anda gunakan untuk mengubah struktur URL.

path(url, path) 

Berfungsi untuk mengubah komponen jalur.

<b:eval expr='path(data.blog.url, "foo.html")'/>
<b:eval expr='path(data.blog.url, "/foo.html")'/>

Kode di atas akan menghasilkan ini, bagaimanapun bentuk URL yang sedang aktif saat itu:

http://nama_blog.blogspot.com/foo.html
http://nama_blog.blogspot.com/foo.html

Operator ini juga tidak akan menghilangkan teks kueri yang sudah ada. Anda bisa mengetesnya dengan cara seperti ini:

<b:eval expr='data:blog.url'/>
<b:eval expr='path(data:blog.url, "foo.html")'/>
<b:eval expr='data:blog.url + "/foo.html"'/>
<b:eval expr='data:blog.homepageUrl + "/foo.html"'/>

Kode di atas akan menghasilkan ini ketika Anda mengunjungi blog Anda dengan menambahkan beberapa teks kueri seperti http://nama_blog.blogspot.com/search?q=foo:

http://nama_blog.blogspot.com/search?q=foo
http://nama_blog.blogspot.com/foo.html?q=foo
http://nama_blog.blogspot.com/search?q=foo/foo.html
http://nama_blog.blogspot.com//foo.html

params(url, params) 

Berfungsi untuk mengganti teks kueri pada URL atau menambahkannya jika belum ada.

<b:eval expr='params(data:blog.url, {
    foo: "bar",
    baz: "qux"
})'/>

Kode di atas akan menghasilkan ini:

http://nama_blog.blogspot.com?baz=qux&foo=bar

Operator ini sepertinya tidak mendukung teks kueri multi-level:

<!-- ?test=1&test=2&test=3 -->
<b:eval expr='params(data:blog.url, {
    test: [1, 2, 3]
})'/>
<!-- ?test=1&test=2&test=3 -->
<b:eval expr='params(data:blog.url, {
    test: {1, 2, 3}
})'/>
<!-- ?test=null -->
<b:eval expr='params(data:blog.url, {
    test: {
        0: 1,
        1: 2,
        2: 3
    }
})'/>
<!-- Invalid expression! -->
<b:eval expr='params(data:blog.url, {
    test[0]: 1,
    test[1]: 2,
    test[2]: 3
})'/>
<!-- ?"test[0]"=1&"test[1]"=2&"test[2]"=3 -->
<b:eval expr='params(data:blog.url, {
    "test[0]": 1,
    "test[1]": 2,
    "test[2]": 3
})'/>

appendParams(url, params) 

Berfungsi untuk menambahkan teks kueri atau mengubah nilai teks kueri yang sudah ada pada URL.

<b:eval expr='params(data:blog.url, {
    foo: "bar"
})'/>
<b:eval expr='appendParams(data:blog.url, {
    foo: "bar"
})'/>

Hasilnya akan menjadi seperti ini ketika kita berada di halaman pencarian:

http://nama_blog.blogspot.com/search?foo=bar
http://nama_blog.blogspot.com/search?foo=bar&q=baz

Seharusnya akan menghasilkan seperti contoh di atas, tapi setelah Saya coba sendiri ternyata hasilnya tidak ada bedanya dengan ketika Saya menggunakan params. Mungkin ini bug.

fragment(url, fragment) 

Berfungsi untuk menyisipkan fragmen URL.

<b:eval expr='fragment(data:blog.url, "foo")'/>
<b:eval expr='fragment(data:blog.url, "#foo")'/>
<b:eval expr='data:blog.url + "#foo"'/>

Hasilnya akan menjadi seperti ini:

http://nama_blog.blogspot.com#foo
http://nama_blog.blogspot.com#foo
http://nama_blog.blogspot.com#foo

15 Komentar

Sulis Stya

operator url ini apa dan fungsinya apa ya mas?

Taufik Nurrohman

Paragraf pertama:

Berikut ini adalah beberapa [operator pengubah URL] → APA yang dapat Anda gunakan [untuk mengubah struktur URL] → FUNGSI.

Sulis Stya

ok, terimakasih mas Taufik Nurrohman sudah berkenan menjawab. lalu apa tujuan merubah struktur URL tersebut ?

Hafid Maulana

Bantu jawab. Contoh fungsi untuk menambah parameter url amp=1 pada URL Blogger. Jadi halaman amp akan ditampilkan pada /lorem.html?amp=1 bukan di /lorem.html?m=1

Dista

UP! Saya kesini juga gara gara mau ubah url amp.. :D

Taufik Nurrohman

<b:if cond='data:view.url == data:view.url params { amp: "1" }'>
  <!-- Mode AMPHTML -->
<b:else/>
  <!-- Mode HTML -->
</b:if>

Adi

Kalau mau menampilkan pathname saja apa ada operator urlnya juga mas di blogger?

Taufik Nurrohman

Sampai saat ini belum ada mas. Kalau di Mecha ada HEHEHEHEHE.

Adi

Kalau kode JavaScript-nya dimasukkan ke dalam atribut href apa bisa dirender mas atau cara lainnya apa tidak bisa mas? Saya sedang mencoba menggabungkan website blogspot satu dengan blogspot lain dengan workers seperti ini contohnya travelign.nl/blog/ namun saya terkendala dengan pathname-nya.

Taufik Nurrohman

Kalaupun memang bisa menggunakan JavaScript, Saya tetap tidak menyarankan mas. Soalnya kalau kondisi sedang ada masalah, misalnya gagal memuat JavaScript atau karena ada kesalahan di sintaks, nanti seluruh tautan kustom malah akan rusak. Dan kita nggak pernah tahu.

Adi

sayang sekali, kalau operator url blogger seperti itu ada mungkin sangat bermanfaat nantinya. website saya tersebut adalah website blogger yang saya custom domain dengan subdirektori dari domain utama menggunakan cloudflare workers

oh ya mas sistem komentar website ini apa tidak bisa memberitahu melalui email kalau mendapat balasan?

Taufik Nurrohman

Dibuat fitur seperti itu sebenarnya bisa mas, dengan bantuan fungsi send. Cuma seringnya surel otomatis akan langsung masuk ke folder spam atau malah tidak masuk sama sekali. Mungkin karena Saya masih memakai shared-hosting jadi kurang begitu dipercaya. Padahal pengaturan HTTP header sudah oke menurut Saya.

Komentar telah ditutup.