Blogger'da Bookmark Özelliği Ekleme

Blogger sitenizde Bookmark (Yer İmi), daha sonra oku özelliği  ekleyebileceğiniz kodlar. Yapamazsanız bana bildirin seve seve yardımcı olurum.

/* Bookmark Buton Tasarımı */
.bookmark-btn {
  background: #f8f9fa;
  border: 1px solid #ddd;
  padding: 8px 15px;
  cursor: pointer;
  border-radius: 20px;
  font-size: 14px;
  transition: all 0.3s;
  color: #555;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.bookmark-btn:hover {
  background: #e9ecef;
}
.bookmark-btn.active {
  background: #ff4757;
  color: white;
  border-color: #ff4757;
}
/* Bookmark Liste Tasarımı */
#bookmark-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
#bookmark-list li {
  margin-bottom: 10px;
  border-bottom: 1px solid #eee;
  padding-bottom: 5px;
  position: relative;
}
#bookmark-list li a {
  text-decoration: none;
  color: #333;
  font-weight: 600;
  display: block;
  padding-right: 30px;
}
#bookmark-list .remove-item {
  position: absolute;
  right: 0;
  top: 0;
  color: #ff4757;
  cursor: pointer;
}
.empty-msg {
  color: #777;
  font-style: italic;
}

<script>//<![CDATA[
// Bookmark Sistemi JS
document.addEventListener("DOMContentLoaded", function() {
  updateButtons();
  renderList();
});
function toggleBookmark(btn) {
  var url = btn.getAttribute("data-url");
  var title = btn.getAttribute("data-title");
  var bookmarks = JSON.parse(localStorage.getItem("bloggerBookmarks")) || [];
  
  // URL zaten var mı kontrol et
  var existingIndex = bookmarks.findIndex(item => item.url === url);
  if (existingIndex !== -1) {
    // Varsa sil
    bookmarks.splice(existingIndex, 1);
    btn.classList.remove("active");
    btn.innerHTML = '<i class="far fa-bookmark"></i> Kaydet';
  } else {
    // Yoksa ekle
    bookmarks.push({url: url, title: title});
    btn.classList.add("active");
    btn.innerHTML = '<i class="fas fa-bookmark"></i> Kaydedildi';
  }
  localStorage.setItem("bloggerBookmarks", JSON.stringify(bookmarks));
  renderList(); // Listeyi güncelle (eğer aynı sayfadaysa)
}
function updateButtons() {
  var bookmarks = JSON.parse(localStorage.getItem("bloggerBookmarks")) || [];
  var buttons = document.querySelectorAll(".bookmark-btn");
  
  buttons.forEach(function(btn) {
    var url = btn.getAttribute("data-url");
    var exists = bookmarks.some(item => item.url === url);
    
    if (exists) {
      btn.classList.add("active");
      btn.innerHTML = '<i class="fas fa-bookmark"></i> Kaydedildi';
    } else {
      btn.classList.remove("active");
      btn.innerHTML = '<i class="far fa-bookmark"></i> Kaydet';
    }
  });
}
function renderList() {
  var listContainer = document.getElementById("bookmark-list");
  if (!listContainer) return; // Liste konteyneri yoksa dur
  
  var bookmarks = JSON.parse(localStorage.getItem("bloggerBookmarks")) || [];
  listContainer.innerHTML = "";
  if (bookmarks.length === 0) {
    listContainer.innerHTML = "<div class='empty-msg'>Henüz favori eklenmedi.</div>";
    return;
  }
  bookmarks.forEach(function(item) {
    var li = document.createElement("li");
    li.innerHTML = '<a href="' + item.url + '">' + item.title + '</a><span class="remove-item" onclick="removeDirectly(\'' + item.url + '\')"><i class="fas fa-trash"></i></span>';
    listContainer.appendChild(li);
  });
}
function removeDirectly(url) {
  var bookmarks = JSON.parse(localStorage.getItem("bloggerBookmarks")) || [];
  var updatedBookmarks = bookmarks.filter(item => item.url !== url);
  localStorage.setItem("bloggerBookmarks", JSON.stringify(updatedBookmarks));
  renderList();
  updateButtons();
}
//]]>
</script>

<button class='bookmark-btn'
onclick='toggleBookmark(this)'
expr:data-title='data:post.title'
expr:data-url='data:post.url'>
<i class="far fa-bookmark"></i> Kaydet
</button>

<ul id="bookmark-list">Yükleniyor...</ul>

Bunu kullandığım demon önizleme sayfasında tasarımında değişiklik yaptım. Öyle yapmak istiyorsanız bana iletişim sayfasından ulaşabilirsiniz. ♡♥︎

4 Yorum