Кнопка, похожая на 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-&amp;post_id=84814329251&amp;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> код.

Это действительно круглое решение, но оно должно работать.

Другие вопросы по тегам