Вызов изображений в текстовых сообщениях с использованием Tumblr API - PullRequest
1 голос
/ 02 апреля 2011

Я использую плагин Featured Posts, созданный Bandit Design (http://blog.bandit.co.nz/post/87511743/tumblr-featured-posts-javascript-plugin)), и я хотел бы включить изображения из текстовых сообщений в список избранных сообщений (который на самом деле будет просто одним сообщением,изображение с заголовком поста под ним, если вам интересно). Проблема в том, что Tumblr API не включает параметр для фотографий в текстовых сообщениях (вы можете вызвать весь текст сообщения, но здесь это не идеально)Глубина моих знаний Javascript может быть описана как «достаточно, чтобы как-то заставить вещи работать, но, скорее, просто сломать вещи», так что решение, вероятно, здесь довольно очевидно, и я просто упускаю его.

Код у меня сейчас:

/*
TUMBLR FEATURED POSTS SCRIPT
Automatically gets all posts tagged with "featured" and lists them
REQUIRES JQUERY!
--------------------------------------
Created by james <at> bandit.co.nz
http://blog.bandit.co.nz

Some code borrowed from Jacob DeHart's AJAX Search:
http://blog.bandit.co.nz/post/80415548/tumblr-ajax-inline-search
    */
    Featured = {
'apiNum' : 50, // how many posts to read
'listId' : '_featured', // the id of the ul to write to
'tagName' : '_featured', // the name of the tag we're searching for
'linkAppend' : '', // html to append to the end of each linked post

'postDB' : [],
'listPos' : 0,
'doList' : function (where) {
    var li; var ul = $('#'+where);
    var titles = {"link":"link-text", "photo":"photo-caption", "quote":"quote-text", "regular":"regular-title", "video":"video-caption"}

    // cycle through post database
    pcount = Featured.postDB.length;
    for(i=Featured.listPos;i<pcount;i++) {
        p = Featured.postDB[i];
        if(p[titles[p.type]] != '') titlestr = p[titles[p.type]].replace(/<\/?[^>]+>/gi, '');
        else titlestr = p['url'];

        li = document.createElement('li');
        $(li).html('<a class="'+p.type+'" href="'+p["url-with-slug"]+'">'+p["regular-body"]+titlestr+Featured.linkAppend+'</a>');
        ul.append(li);

        Featured.listPos = pcount;
    }
},

'getData' : function() {
    $.get('/api/read/json?num='+Featured.apiNum+'&tagged='+Featured.tagName,
        function(data) {
            eval(data);
            for(i=0;i<tumblr_api_read.posts.length;i++) {
                Featured.postDB.push(tumblr_api_read.posts[i]);
                Featured.doList(Featured.listId);
            }
        }
    );
}
    };

    $(document).ready(function(){
Featured.getData();
    });

Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 02 апреля 2011

Вы можете изменить строку, где вы создаете li на

$(li).append($(p['regular-body']).find('img')[0])
     .append('<a class="'+p.type+'" href="'+p["url-with-slug"]+'">'+titlestr+Featured.linkAppend+'</a>');

Это найдет первое изображение тела сообщения и добавит его прямо перед заголовком в списке.

...