Revision: 34334
Updated Code
at November 16, 2010 07:47 by mloberg
Updated Code
<?php $tumblog = 'username'; // change to your username // if your Tumblog is self hosted, you need to change the base url to the location of your tumblog $baseurl = 'http://' . $tumblog . '.tumblr.com'; $request = $baseurl . '/api/read/json'; $ci = curl_init($request); curl_setopt($ci,CURLOPT_RETURNTRANSFER, TRUE); $input = curl_exec($ci); curl_close($ci); // Tumblr JSON doesn't come in standard form, some str replace needed $input = str_replace('var tumblr_api_read = ','',$input); $input = str_replace(';','',$input); // parameter 'true' is necessary for output as PHP array $value = json_decode($input,true); $content = $value['posts']; $blogInfo = $value['tumblelog']; // the number of items you want to display $item = 10; // Echo the blog info echo "<h3><a href=\"" . $baseurl . "\">" . $blogInfo['title'] . "</a></h3>\n"; echo "<h4>" . $blogInfo['description'] . "</h4>\n<hr />\n"; // then loop the blog contents for($i=0;$i<$item;$i++){ // we need to find out what the post type is, so we can format it appropriately // first check to see if it is a regular post if($content[$i]['type'] == "regular"){ // echo title if($content[$i]['regular-title'] !== ""){ echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . $content[$i]['regular-title'] . "</a></p>\n"; }else{ // otherwise use the slug echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . ucwords(str_replace("-"," ",$content[$i]['slug'])) . "</a></p>\n"; } // then echo the body // grab the string length of the post $postlength = strlen($content[$i]['regular-body']); if($postlength > 120){ // if it's greater then 120, echo the first 120 characters and then add a read more link echo "<p>" . substr($content[$i]['regular-body'],3,123) . "... "; echo "<a href=\"" . $content[$i]['url-with-slug'] . "\">Read more</a></p>\n"; }else{ // echo the whole body if it's under 120 characters echo $content[$i]['regular-body']; } echo "<hr />\n"; // then check if it's a link }else if($content[$i]['type'] == "link"){ // if it has a title, use that as the title if($content[$i]['link-text'] !== ""){ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-text'] . "</a></p>"; // otherwise, just use the link as the title }else{ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-url'] . "</a></p>"; } // then echo the description if it has one if($content[$i]['url-description'] !== ""){ echo $content[$i]['link-description'] . "\n"; } echo "<hr />\n"; // then check to see if it's a quote }else if($content[$i]['type'] == "quote"){ // echo the quote echo "<p>" . $content[$i]['quote-text'] . "</p>\n"; // then the source if it has one if($content[$i]['quote-source'] !== ""){ echo "<p>-" . $content[$i]['quote-source'] . "</p>\n"; } echo "<hr />\n"; // then check to see if it's a photo }else if($content[$i]['type'] == "photo"){ // I know it's not valid to not to specify the width and height, but I was having issues without making them the original size echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\"><img src=\"" . $content[$i]['photo-url-250'] . "\" alt=\"" . $content[$i]['slug'] . "\" /></a></p>\n"; echo $content[$i]['photo-caption']; echo "<hr />\n"; // then check for audio }else if($content[$i]['type'] == "audio"){ $audioPlayer = trim($content[$i]['audio-player'],"></embed>"); echo "<embed " . $audioPlayer . " />"; echo $content[$i]['audio-caption']; echo "<hr />\n"; // then check if it's a video }else if($content[$i]['type'] == "video"){ // Tumblr uses JS to render video hosted by them echo "<script src=\"http://assets.tumblr.com/javascript/tumblelog.js\"></script>"; echo $content[$i]['video-player']; if($content[$i]['video-caption'] !== ""){ echo $content[$i]['video-caption']; } echo "<hr />"; } } // end for ?> <p><a href="<?php echo $baseurl;?>">Read more posts.</a></p>
Revision: 34333
Updated Code
at November 4, 2010 07:23 by mloberg
Updated Code
<?php // make sure you replace 'yourtumblr' with your Tumblr blog. $request = 'http://yourtumblr.tumblr.com/api/read/json'; $ci = curl_init($request); curl_setopt($ci,CURLOPT_RETURNTRANSFER, TRUE); $input = curl_exec($ci); curl_close($ci); // Tumblr JSON doesn't come in standard form, some str replace needed $input = str_replace('var tumblr_api_read = ','',$input); $input = str_replace(';','',$input); // parameter 'true' is necessary for output as PHP array $value = json_decode($input,true); $content = $value['posts']; $blogInfo = $value['tumblelog']; // the number of items you want to display $item = 10; // Echo the blog info echo "<h3><a href=\"http://yourusername.tumblr.com\">" . $blogInfo['title'] . "</a></h3>\n"; echo "<h4>" . $blogInfo['description'] . "</h4>\n<hr />\n"; // then loop the blog contents for($i=0;$i<$item;$i++){ // we need to find out what the post type is, so we can format it appropriately // first check to see if it is a regular post if($content[$i]['type'] == "regular"){ // echo title if($content[$i]['regular-title'] !== ""){ echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . $content[$i]['regular-title'] . "</a></p>\n"; }else{ // otherwise use the slug echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . ucwords(str_replace("-"," ",$content[$i]['slug'])) . "</a></p>\n"; } // then echo the body // grab the string length of the post $postlength = strlen($content[$i]['regular-body']); if($postlength > 120){ // if it's greater then 120, echo the first 120 characters and then add a read more link echo "<p>" . substr($content[$i]['regular-body'],3,123) . "... "; echo "<a href=\"" . $content[$i]['url-with-slug'] . "\">Read more</a></p>\n"; }else{ // echo the whole body if it's under 120 characters echo $content[$i]['regular-body']; } echo "<hr />\n"; // then check if it's a link }else if($content[$i]['type'] == "link"){ // if it has a title, use that as the title if($content[$i]['link-text'] !== ""){ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-text'] . "</a></p>"; // otherwise, just use the link as the title }else{ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-url'] . "</a></p>"; } // then echo the description if it has one if($content[$i]['url-description'] !== ""){ echo $content[$i]['link-description'] . "\n"; } echo "<hr />\n"; // then check to see if it's a quote }else if($content[$i]['type'] == "quote"){ // echo the quote echo "<p>" . $content[$i]['quote-text'] . "</p>\n"; // then the source if it has one if($content[$i]['quote-source'] !== ""){ echo "<p>-" . $content[$i]['quote-source'] . "</p>\n"; } echo "<hr />\n"; // then check to see if it's a photo }else if($content[$i]['type'] == "photo"){ // I know it's not valid to not to specify the width and height, but I was having issues without making them the original size echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\"><img src=\"" . $content[$i]['photo-url-250'] . "\" alt=\"" . $content[$i]['slug'] . "\" /></a></p>\n"; echo $content[$i]['photo-caption']; echo "<hr />\n"; // then check for audio }else if($content[$i]['type'] == "audio"){ $audioPlayer = trim($content[$i]['audio-player'],"></embed>"); echo "<embed " . $audioPlayer . " />"; echo $content[$i]['audio-caption']; echo "<hr />\n"; // support for video not yet implemented } } // end for ?> <p><a href="http://yourtumblr.tumblr.com">Read more posts.</a></p>
Revision: 34332
Updated Code
at October 23, 2010 06:51 by mloberg
Updated Code
<?php // make sure you replace 'yourtumblr' with your Tumblr blog. $request = 'http://yourtumblr.tumblr.com/api/read/json'; $ci = curl_init($request); curl_setopt($ci,CURLOPT_RETURNTRANSFER, TRUE); $input = curl_exec($ci); curl_close($ci); // Tumblr JSON doesn't come in standard form, some str replace needed $input = str_replace('var tumblr_api_read = ','',$input); $input = str_replace(';','',$input); // parameter 'true' is necessary for output as PHP array $value = json_decode($input,true); $content = $value['posts']; $blogInfo = $value['tumblelog']; // the number of items you want to display $item = 10; // Echo the blog info echo "<h3><a href=\"http://" . $text . ".tumblr.com\">" . $blogInfo['title'] . "</a></h3>\n"; echo "<h4>" . $blogInfo['description'] . "</h4>\n<hr />\n"; // then loop the blog contents for($i=0;$i<=$item;$i++){ // we need to find out what the post type is, so we can format it appropriately // first check to see if it is a regular post if($content[$i]['type'] == "regular"){ // echo title if($content[$i]['regular-title'] !== ""){ echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . $content[$i]['regular-title'] . "</a></p>\n"; }else{ // otherwise use the slug echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . ucwords(str_replace("-"," ",$content[$i]['slug'])) . "</a></p>\n"; } // then echo the body // grab the string length of the post $postlength = strlen($content[$i]['regular-body']); if($postlength > 120){ // if it's greater then 120, echo the first 120 characters and then add a read more link echo "<p>" . substr($content[$i]['regular-body'],3,123) . "... "; echo "<a href=\"" . $content[$i]['url-with-slug'] . "\">Read more</a></p>\n"; }else{ // echo the whole body if it's under 120 characters echo $content[$i]['regular-body']; } echo "<hr />\n"; // then check if it's a link }else if($content[$i]['type'] == "link"){ // if it has a title, use that as the title if($content[$i]['link-text'] !== ""){ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-text'] . "</a></p>"; // otherwise, just use the link as the title }else{ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-url'] . "</a></p>"; } // then echo the description if it has one if($content[$i]['url-description'] !== ""){ echo $content[$i]['link-description'] . "\n"; } echo "<hr />\n"; // then check to see if it's a quote }else if($content[$i]['type'] == "quote"){ // echo the quote echo "<p>" . $content[$i]['quote-text'] . "</p>\n"; // then the source if it has one if($content[$i]['quote-source'] !== ""){ echo "<p>-" . $content[$i]['quote-source'] . "</p>\n"; } echo "<hr />\n"; // then check to see if it's a photo }else if($content[$i]['type'] == "photo"){ // I know it's not valid to not to specify the width and height, but I was having issues without making them the original size echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\"><img src=\"" . $content[$i]['photo-url-250'] . "\" alt=\"" . $content[$i]['slug'] . "\" /></a></p>\n"; echo $content[$i]['photo-caption']; echo "<hr />\n"; // then check for audio }else if($content[$i]['type'] == "audio"){ $audioPlayer = trim($content[$i]['audio-player'],"></embed>"); echo "<embed " . $audioPlayer . " />"; echo $content[$i]['audio-caption']; echo "<hr />\n"; // support for video not yet implemented } } // end for ?> <p><a href="http://yourtumblr.tumblr.com">Read more posts.</a></p>
Revision: 34331
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at October 21, 2010 06:01 by mloberg
Initial Code
<?php // make sure you replace 'yourtumblr' with your Tumblr blog. $request = 'http://yourtumblr.tumblr.com/api/read/json'; $ci = curl_init($request); curl_setopt($ci,CURLOPT_RETURNTRANSFER, TRUE); $input = curl_exec($ci); // Tumblr JSON doesn't come in standard form, some str replace needed $input = str_replace('var tumblr_api_read = ','',$input); $input = str_replace(';','',$input); // parameter 'true' is necessary for output as PHP array $value = json_decode($input,true); $content = $value['posts']; $blogInfo = $value['tumblelog']; // the number of items you want to display $item = 10; // Echo the blog info echo "<h3><a href=\"http://" . $text . ".tumblr.com\">" . $blogInfo['title'] . "</a></h3>\n"; echo "<h4>" . $blogInfo['description'] . "</h4>\n<hr />\n"; // then loop the blog contents for($i=0;$i<=$item;$i++){ // we need to find out what the post type is, so we can format it appropriately // first check to see if it is a regular post if($content[$i]['type'] == "regular"){ // echo title if($content[$i]['regular-title'] !== ""){ echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . $content[$i]['regular-title'] . "</a></p>\n"; }else{ // otherwise use the slug echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\">" . ucwords(str_replace("-"," ",$content[$i]['slug'])) . "</a></p>\n"; } // then echo the body // grab the string length of the post $postlength = strlen($content[$i]['regular-body']); if($postlength > 120){ // if it's greater then 120, echo the first 120 characters and then add a read more link echo "<p>" . substr($content[$i]['regular-body'],3,123) . "... "; echo "<a href=\"" . $content[$i]['url-with-slug'] . "\">Read more</a></p>\n"; }else{ // echo the whole body if it's under 120 characters echo $content[$i]['regular-body']; } echo "<hr />\n"; // then check if it's a link }else if($content[$i]['type'] == "link"){ // if it has a title, use that as the title if($content[$i]['link-text'] !== ""){ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-text'] . "</a></p>"; // otherwise, just use the link as the title }else{ echo "<p><a href=\"" . $content[$i]['link-url'] . "\">" . $content[$i]['link-url'] . "</a></p>"; } // then echo the description if it has one if($content[$i]['url-description'] !== ""){ echo $content[$i]['link-description'] . "\n"; } echo "<hr />\n"; // then check to see if it's a quote }else if($content[$i]['type'] == "quote"){ // echo the quote echo "<p>" . $content[$i]['quote-text'] . "</p>\n"; // then the source if it has one if($content[$i]['quote-source'] !== ""){ echo "<p>-" . $content[$i]['quote-source'] . "</p>\n"; } echo "<hr />\n"; // then check to see if it's a photo }else if($content[$i]['type'] == "photo"){ // I know it's not valid to not to specify the width and height, but I was having issues without making them the original size echo "<p><a href=\"" . $content[$i]['url-with-slug'] . "\"><img src=\"" . $content[$i]['photo-url-250'] . "\" alt=\"" . $content[$i]['slug'] . "\" /></a></p>\n"; echo $content[$i]['photo-caption']; echo "<hr />\n"; // then check for audio }else if($content[$i]['type'] == "audio"){ $audioPlayer = trim($content[$i]['audio-player'],"></embed>"); echo "<embed " . $audioPlayer . " />"; echo $content[$i]['audio-caption']; echo "<hr />\n"; // support for video not yet implemented } } // end for ?> <p><a href="http://yourtumblr.tumblr.com">Read more posts.</a></p>
Initial URL
Initial Description
Initial Title
Tumblr JSON API Implementation
Initial Tags
php, json, api
Initial Language
PHP