Кнопка, похожая на Tumblr
Я удалил всю постцентрированную разметку из своей темы Tumblr и вместо этого использую ajax для получения данных. Все идет нормально. Теперь я хочу добавить кнопку "Мне нравится" к каждому сообщению, но я не могу найти никаких документов о том, как это сделать (не прибегая к их API, который нуждается в oauth для работы).
Нет ли способа включить кнопки "Мне нравится", когда вы используете ajax для извлечения сообщений и предпочитаете не использовать полный интерфейс API с oauth?
1 ответ
Новая реализация Tumblr кнопки "Мне нравится" для отдельных сообщений использует <iframe>
элемент для функционирования. URL для этого iframe доступен только через ваш код Темы.
Например:
{Block:Posts}
<div class="like-button">{LikeButton}{/div>
{/Block:Posts}
Что делается для {LikeButton}
будет выглядеть примерно так:
<iframe id="like_iframe_84714330251" src="http://assets.tumblr.com/assets/html/like_iframe.html?_v=fa292ab73ee80893ffdf1edfabaa185a#name=blog-name-&post_id=84814329251&rk=reKNyFfj" scrolling="no" width="20" height="20" frameborder="0" class="like_toggle" allowtransparency="true"></iframe>
Кажется, нет никакого способа получить это, не включая {LikeButton}
внутри {Block:Posts}
Для использования ajax вы можете включить на страницу скрытый элемент, который загружает эту информацию, и анализировать ее при загрузке каждой страницы сообщений с использованием ajax.
Так что, если в вашей теме вы включили что-то вроде:
<div id="posts-info" style="display: none;">
{Block:Posts}
<div class="post-info" data-postid="{PostID}">{LikeButton}</div>
{/Block:Posts}
</div>
Когда вы загружаете свои посты с помощью AJAX, вам также придется загружать правильную страницу вашего Tumblr (с этим кодом в теме).
Затем вы можете проанализировать эту информацию, сопоставив идентификаторы постов с сообщениями, которые вы получили с помощью AJAX, и вставьте <ifame>
код.
Это действительно круглое решение, но оно должно работать.