slideshare instant

13
Creating SlideShare Instant Demo: http://home.iitb.ac.in/~saket.kumar/slideshare Source: https://github.com/saketkc/SlideShare-Instant t Saket Choudhary http://home.iitb.ac.in/~saket.kumar IIT Bombay

Upload: saket-choudhary

Post on 13-May-2015

1.631 views

Category:

Technology


0 download

DESCRIPTION

A short tutorial on developing "SlideShare Instant" using SlideShare APi and jquery libraries besides the obvious PHP and AJAX calls

TRANSCRIPT

Page 1: SlideShare Instant

Creating SlideShare Instant Demo:

http://home.iitb.ac.in/~saket.kumar/slideshareSource:https://github.com/saketkc/SlideShare-Instantt

Saket Choudharyhttp://home.iitb.ac.in/~saket.kumar

IIT Bombay

Page 2: SlideShare Instant

What is “Instant”?

1.Get spontaneous results “on the go” while you type.

2.Saves time

3.First results are generally preffered reults hence search the “browsing

Example:1. Google Search Instant(Results appear as you type)

2. YouTube Instant : The thing that actually landd up its creator with a job offer !

Page 3: SlideShare Instant

SlideShare Instant ! Get instant results for your Slide/Document Search !

Not Satisfied with the first result?? Go Click the “Next” button !

Not So Fast Yet ! Well the source code is all open Go edit it !

Just Respect the Open Source Terms:

https://github.com/saketkc/SlideShare-Instant

Demo available at: http://home.iitb.ac.in/~saket.kumar/slideshare

Page 4: SlideShare Instant

Requirements

1.AJAX calls (Hail Google !)

2.PHP ( My favourite on Web So far ! I am falling in love with RoR

though)

3. Javascript(jquery)

4. CSS (Brains with Beauty is the way everyonr likes it ! )

Page 5: SlideShare Instant

Code Snippets<input type="text" class='search_input' /><br/>

Define an “onkeyup” event sen an ajax GET request to 'ajax.php' containing the parameters: the 'ajaxeeequest' and

'query'

$(".search_input").keyup(function() {

var search_input = $(this).val();var keyword= encodeURIComponent(search_input);

$.ajax({ type: "GET",

url: "ajax.php", data:{'op':'ajaxrequest','query':keyword},

success: function(msg){ $('.inner').html(msg); //fetch the Slide and echo it on

the page } });});

Page 6: SlideShare Instant

Contact Me

I am a Sophomore at IIT Bombay as of

2011 .I can be contacted at [email protected]

Page 7: SlideShare Instant

Ajax.php<?phpsession_start();$var=array();global $vaar;//$var=[];if ($_GET['op']=="ajaxrequest"){$var=$_GET['query'];

$api_key="8GD14Jk1";$secret="mnFaUN4s";

$proxy="proxy";$pass="user:pwd";$timeout=0;$ts=time();$hash=sha1($secret.$ts);# use CURL library to fetch remote file$apiurl="http://www.slideshare.net/api/2/search_slideshows?q=$var";$ch = curl_init();curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);

Page 8: SlideShare Instant

curl_setopt($ch, CURLOPT_PROXY, $proxy);curl_setopt($ch, CURLOPT_PROXYPORT,80);curl_setopt($ch, CURLOPT_PROXYUSERPWD,$pass);$url = $apiurl."&api_key=$api_key&ts=$ts&hash=$hash&items_per_page=1";curl_setopt ($ch, CURLOPT_URL, $url);

$file_contents = curl_exec($ch);$xml = simplexml_load_string($file_contents);

$number=1;foreach ( $xml->Slideshow as $files){ $_SESSION[$var][$number]=$files->Embed; //echo $_SESSION['sad']['2']; $vaar[$number]=$_SESSION[$var][$number]; echo ($vaar[$number]); $number=$number+1;}}

Page 9: SlideShare Instant

if ($_GET['op']=="numberrequest"){// session_start();$num=$_GET['number'];$query=$_GET['query'];

$api_key="8GD14Jk1";$secret="mnFaUN4s";

$proxy=”proxy”$pass="user:pwd”;$timeout=0;$ts=time();$hash=sha1($secret.$ts);# use CURL library to fetch remote file$apiurl="http://www.slideshare.net/api/2/search_slideshows?q=$query";

Page 10: SlideShare Instant

$ch = curl_init();curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt($ch, CURLOPT_PROXY, $proxy);curl_setopt($ch, CURLOPT_PROXYPORT,80);curl_setopt($ch, CURLOPT_PROXYUSERPWD,$pass);$url = $apiurl."&api_key=$api_key&ts=$ts&hash=$hash&items_per_page=$num";curl_setopt ($ch, CURLOPT_URL, $url);$file_contents = curl_exec($ch);//$res = simplexml_load_file($file_contents);$xml = simplexml_load_string($file_contents);$number=1;foreach ( $xml->Slideshow as $files){ $_SESSION[$var][$number]=$files->Embed;

$vaar[$number]=$_SESSION[$var][$number]; if ($number==$num) { echo $files->Embed; } $number=$number+1;}} ?>

Page 11: SlideShare Instant

Index.php<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <LINK href="style.css" rel="stylesheet" type="text/css"><title>SlideShare Instant</title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><script src="http://chrisslidesharehacks.googlecode.com/files/previewer2.js"></script><script type="text/javascript">$(document).ready(function(){var number=01;$(".search_input").focus();$(".search_input").keyup(function() {var search_input = $(this).val();var keyword= encodeURIComponent(search_input);$.ajax({ type: "GET", url: "ajax.php", data:{'op':'ajaxrequest','query':keyword}, success: function(msg){ $('.inner').html(msg); } });});

Page 12: SlideShare Instant

$('#next').click(function() { number=number+1; var keyword = $(".search_input").val(); $.ajax({ type: "GET", url: "ajax.php", data:{'op':'numberrequest','query':keyword,'number':number}, success: function(msg){ $('.inner').html(msg);//=msg; } });});$('#prev').click(function() { number=number-1; var keyword = $(".search_input").val();

Page 13: SlideShare Instant

$.ajax({ type: "GET", url: "ajax.php", data:{'op':'numberrequest','query':keyword,'number':number}, success: function(msg){ $('.inner').html(msg);//=msg; } });});});</script><body><center>SlideShare Instant Query<input type="text" class='search_input' /><br/><div class="container"><div class="inner"></div><button id="next"> Next--</div><button id="prev">--Prev</div></div></center></body>