From 136be98daa948efb1b879843aea804d9ff09310a Mon Sep 17 00:00:00 2001 From: Chouchen Date: Mon, 20 Sep 2010 11:12:36 +0000 Subject: [PATCH] Nouvelle version de la recherche --- class/Search.php | 31 +++--- css/search.css | 164 +++++++++++++++++++++++++++++++ images/interface/arrow.png | Bin 0 -> 244 bytes images/interface/buttons.png | Bin 0 -> 2275 bytes images/interface/icons.png | Bin 0 -> 4220 bytes images/interface/more.png | Bin 0 -> 1883 bytes images/interface/zoom.png | Bin 0 -> 692 bytes js/jquery.search.js | 184 +++++++++++++++++++++++++++++++++++ 8 files changed, 364 insertions(+), 15 deletions(-) create mode 100644 css/search.css create mode 100644 images/interface/arrow.png create mode 100644 images/interface/buttons.png create mode 100644 images/interface/icons.png create mode 100644 images/interface/more.png create mode 100644 images/interface/zoom.png create mode 100644 js/jquery.search.js diff --git a/class/Search.php b/class/Search.php index 9f1bb44..5090ca5 100644 --- a/class/Search.php +++ b/class/Search.php @@ -7,21 +7,22 @@ class search extends Module { public $params = array(); public function __construct($params){ - echo '
-
- -
- - - - - - - - -
-
-
'; + echo ' + +
+
+ + + +
    +
  • Web
  • +
  • Images
  • +
  • News
  • +
  • Videos
  • +
+ +
+
'; } private function setParams($params){ diff --git a/css/search.css b/css/search.css new file mode 100644 index 0000000..d8bcbab --- /dev/null +++ b/css/search.css @@ -0,0 +1,164 @@ +#searchForm{ + /* The search form. */ + width:525px; + /*background-color:#4C5A65; + padding:50px 50px 30px;*/ + margin:0 auto; + position:relative; + + -moz-border-radius:16px; + -webkit-border-radius:16px; + border-radius:16px; +} + +fieldset{ + border:none; +} + +#s{ + /* The search text box. */ + + border:none; + color:#888888; + /*background:url("../images/interface/searchBox.png") no-repeat;*/ + background:url('../images/interface/zoom.png') 10px center no-repeat; + border:1px solid #888888; + float:left; + font-family:Arial,Helvetica,sans-serif; + font-size:15px; + height:36px; + line-height:36px; + margin-right:12px; + outline:medium none; + padding:0 0 0 35px; + text-shadow:1px 1px 0 white; + width:385px; + -moz-border-radius:10px; + -webkit-border-radius:10px; + border-radius:10px; + -moz-box-shadow: 2px 2px 3px #888; + -webkit-box-shadow: 2px 2px 3px #888; + box-shadow: 2px 2px 3px #888; + /* For IE 8 */ + -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#888888')"; + /* For IE 5.5 - 7 */ + filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#888888'); + +} +.icons{ + background:#4C5A65; + padding:3px 3px 10px 3px; + list-style:none; + margin:10px 0; + height:19px; + position:relative; + -moz-border-radius:5px; + -webkit-border-radius:5px; + border-radius:5px; +} + +.icons li{ + background:url("../images/interface/icons.png") no-repeat; + float:left; + height:19px; + text-indent:-999px; + cursor:pointer; + margin-right:5px; +} + +/* Styling each icon */ + +li.web{ width:15px;} +li.web.active, +li.web:hover{ background-position:left bottom;} + +li.images{ width:22px; background-position:-18px 0;} +li.images.active, +li.images:hover{ background-position:-18px bottom;} + +li.news{ width:14px; background-position:-44px 0;} +li.news.active, +li.news:hover{ background-position:-44px bottom;} + +li.videos{ width:17px; background-position:right 0;} +li.videos.active, +li.videos:hover{ background-position:right bottom;} + +span.arrow{ + /* The little arrow that moves below the icons */ + + width:11px; + height:6px; + margin:21px 0 0 5px; + position:absolute; + background:url('../images/interface/arrow.png') no-repeat; + left:0; +} + +/* The submit button */ + +#submitButton{ + background:url('../images/interface/buttons.png') no-repeat; + width:83px; + height:36px; + text-indent:-9999px; + overflow:hidden; + text-transform:uppercase; + border:none; + cursor:pointer; +} + +#submitButton:hover{ + background-position:left bottom; +} + +/* Web & news results */ + +.webResult{ text-shadow:1px 1px 0 #586a75;margin-bottom:50px;} +.webResult h2{ + background-color:#5D6F7B; + font-size:18px; + font-weight:normal; + padding:8px 20px; + + /* Applying CSS3 rounded corners */ + -moz-border-radius:18px; + -webkit-border-radius:18px; + border-radius:18px; +} +.webResult h2 b{ color:#fff; } +.webResult h2 a{ color:#eee;border:none;} +.webResult p{ line-height:1.5;padding:15px 20px;} +.webResult p b{ color:white;} +.webResult > a{ margin-left:20px;} + +/* Image & video search results */ + +.imageResult{ + float:left; + height:170px; + margin:0 0 20px 40px; + text-align:center; + width:150px; +} +.imageResult img{ display:block;border:none;} +.imageResult a.pic{ + border:1px solid #fff; + outline:1px solid #777; + display:block; + margin:0 auto 15px; +} + +/* The show more button */ + +#more{ + width:83px; + height:24px; + background:url('../images/interface/more.png') no-repeat; + cursor:pointer; + margin:40px auto; +} + +#more:hover{ + background-position:left bottom; +} \ No newline at end of file diff --git a/images/interface/arrow.png b/images/interface/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..9682591f1743efff2722151a67b329cf5fde3efe GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^+(696!3HEnjZ%I9DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_d9MbkW8978H@C6#dZB{nq9%@#Y&xKdA{ub98{@6iUf852Z4 zF|X9E|NoEIzW(PcU4_}atCJQuO*pd4zW(2ffB*i@cJ%jl-lt>!*hX*ib7oPizrVhA zKfJ%co=4%#tM0d21bUT4=m2EJHdVz=t2fhS3j3^P6 zY~p`Xo;`b}ndv5MX)zULkm;wx+c|Y|xchK1!KCSM88W>TyBba-MJv;F@YQ6x5SmOE zLg!4a%-2|%?nG^EE&Z0CFZ=k>qbWT-o&G8*p@M<}`#B31ETD+UNV|BK_-e}*nP~vSh7F_l($ZuPRFs!f3Acy#larIBJ~ua4%5P1YB;~7DuF&VJSNDuE z5$5jNa`){Ml4j1FN%8UV6c`vtDydAFGKFR{xuX*j$lKeSuJA=G0x`3|+*eK6MvNFi zA1_%Vq#ZtVi2C*GN4Ia^rh^9$5~jmwKYG+C8pv~Hz|Y?w3pltq`8<61aJOA!kA(Tv zt5=1HY15|BwCU3+DJhAbJb7Y2{^o=UGnSKGNEEJAoRXSKQBhIS34Jom5pn|u4kWYLOoM!UXynL|4#zA>Rb??m6<8zAjd-C zDEs*OO8M#2rw(lw7Z=m_J9kP48RyZxHq3$8xHww4XpyJ~3Pr9{K)zg&kwN3ejiZ{H zn)XoPKw4%3=NB!2=;rsrB#Er=@)P@@0D)=#2UE=S%tg`SU_F(nv)`g%JB9f>_~50mcsL z)i>?Pho?@RB7Z+W*&}~qL@&E=L5`n0dsfti5x#*3A0Rs?M+o|Q>sASE)d>JpjgCP* zl!{|W4c~6xPGb`jB}Ev4&~G)U*4>j6w<;4MS;@o{6%`3#pRQOTA&HArdF}Y|<3c(H zoS2vxsaLm0R$JaQVq`=FS*=zXwd1&BQc_Z+zQAIUcKUOkepSFTptg>}#8m(p2uG92 zBm)JAz}}D5I%LQY`+4_RnYb?m(Rc3Lk-7*b4k-ZN59LRX9?3Cu49ejijVd;TPz zb}+bHtI@d`kS#sRO?!$a(>XF7JnfnirwP@bb{8X4lj%BWPrD1DJ?$=C0MQh<4*G$b zR_1H0Om_lS!2|pE%RVtNkv>|ukO~V5C_g{ne$JAmOT}jdtKgnIn6kw6s*(L;GoIX%xow-|g5T<*CWZQoeZcB7M1ebMIFsE(TtqS+izQ zRCKi6lm#eHJN)Kw3*({{fyw|2fJo(O2Wk8E?v>SUlz-Z@M~Qu@{z1Bx6+4_&3T2|RKt7C9_$3E)lsX@F#Hz|ldwS@x0mxlmZ>VR^+`00H ze%Q53e4291_Q&B8hEesF?MGKY4jjLD{iM!n6~c_3_6_UT(<3Ggo_3H1qVRMOW%b)4 zMo)WocDCK#?au4$v79+}>{$9_*)ma2-jO3@{M7~JX^-L1y;NP@{)L!8sPqPtXI#w^ zPdh6T1R|e8(JH@ogg)zOhuL-F#EDXdSyfSl3yqA7l=2OOr@iFlNxM=N&>0`HB7yVg z&I!>-Bgl~*`Aea27A1h<7KUEO^?HW1buGT3%kB zysLv3pyJ}dz7lq2;;>Y%OKbI8ed0k8P8Xpqvz&&p+hghX>@nsvE7|$ zW$G}0eaURpG&l$4X$P4WO^0)E@U&}tjB|sJ-P6t^xtaG_n$YeMdEm$~M^8Hwx|R=E x%Bn7DPkSc-PkV*-w7U)3)9wN|c-sFJU;uV1;pTs$d@cY0002ovPDHLkV1lteO5^|l literal 0 HcmV?d00001 diff --git a/images/interface/icons.png b/images/interface/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..e885e490a907831ef2498f89386470adc9e3cb94 GIT binary patch literal 4220 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 VM(i>6iRu6V002ovPDHLkV1lKGn*IO) literal 0 HcmV?d00001 diff --git a/images/interface/zoom.png b/images/interface/zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..908612e394525fc2e52a7e9b94689c25ce167381 GIT binary patch literal 692 zcmV;l0!#ggP)m+BBgry{~j2fHLegbHP( zrgXNbr0}2;^nywdjLjZe?uxtrd3D(pZH@fFFc0{BW_~jxoO1w7-VX;6vK@ROA$$R6 zEmo;Ht-Mj|>5jUy{bQ^V5@53LRI8AgLpUm|m+15sqcz@QtVSo|oz7ArM8?pIn+>gN z0b=4_b5O|4A*;Q+vc9Vqr~%3V155*NV~@gTz}KSUiKB-uJzjMZ>5%Q#n24H!V{ zTY(LLAE*NAHZ}C#wnj%Bw5OFIkRhkkAW#kDC3j9Wm0YXRaXlyyp>#mVfYG)eC;@ab zDb=T-BCAY4LI(Z@GOTr2V_A{pRwSmz+8Be>CjAw(=gnbVWAeguvZa93JmL(EDxv1m z0OP4q=fpAK1Mq!C2`OkEn37o;m#wF#(t(8Pu#S?2f#x<~4EO{@fmm`p9veD6RZ_jp z@Au4};q&`XuKEYgIiB4((kgxOs#YdqJw0fY>9^K_agEu5+$#k;w#%I2N>n_?)YIqu z`tq&#_^p?-%K*U0^}|7+9U(&k0?s;=r=uCZ%)H9_edH8wK}gB(nUB1FFk+2Ol%BXV zHoFY`D~2x|2',{className:'arrow'}).appendTo('ul.icons'); + + $('ul.icons li').click(function(){ + var el = $(this); + + if(el.hasClass('active')){ + // The icon is already active, exit + return false; + } + + el.siblings().removeClass('active'); + el.addClass('active'); + + // Move the arrow below this icon + arrow.stop().animate({ + left : el.position().left, + marginLeft : (el.width()/2)-4 + }); + + // Set the search type + config.type = el.attr('data-searchType'); + $('#more').fadeOut(); + }); + + // Focusing the input text box: + $('#s').focus(); + + $('#searchForm').submit(function(){ + googleSearch(); + return false; + }); + + function googleSearch(settings){ + + // If no parameters are supplied to the function, + // it takes its defaults from the config object above: + + settings = $.extend({},config,settings); + settings.term = settings.term || $('#s').val(); + + // URL of Google's AJAX search API + var apiURL = 'http://ajax.googleapis.com/ajax/services/search/'+settings.type+ + '?v=1.0&callback=?'; + + $.getJSON(apiURL,{ + q : settings.term, + rsz : settings.perPage, + start : settings.page*settings.perPage + },function(r){ + + var results = r.responseData.results; + $('#more').remove(); + + if(results.length){ + + // If results were returned, add them to a pageContainer div, + // after which append them to the #resultsDiv: + + var pageContainer = $('
',{className:'pageContainer'}); + + for(var i=0;i (settings.page+1)*settings.perPage){ + $('
',{id:'more'}).appendTo(pageContainer).click(function(){ + googleSearch({append:true,page:settings.page+1}); + $(this).fadeOut(); + }); + } + + pageContainer.append('
').hide(); + + $.fancybox( + $(pageContainer).html(), + { + 'autoDimensions' : false, + 'width' : 400, + 'height' : 'auto', + 'showNavArrows' : false, + 'transitionIn' : 'elastic' + } + ); + $('#more').click(function(){ + googleSearch({append:true,page:settings.page+1}); + }); + } + else { + + var pageContainer = $('
',{className:'pageContainer'}); + // No results were found for this search. + + $('

',{ + className : 'notFound', + html : 'No Results Were Found!' + }).appendTo(pageContainer); + // .hide().appendTo(resultsDiv).fadeIn(); + $.fancybox( + $(pageContainer).html(), + { + 'autoDimensions' : false, + 'width' : 400, + 'height' : 'auto', + 'showNavArrows' : false, + 'transitionIn' : 'elastic' + } + ); + } + }); +} + + function result(r){ + + // This is class definition. Object of this class are created for + // each result. The markup is generated by the .toString() method. + + var arr = []; + + // GsearchResultClass is passed by the google API + switch(r.GsearchResultClass){ + + case 'GwebSearch': + arr = [ + '

', + '

',r.title,'

', + '

',r.content,'

', + '',r.visibleUrl,'', + '
' + ]; + break; + case 'GimageSearch': + arr = [ + '
', + '', + '','
', + '',r.visibleUrl,'', + '
' + ]; + break; + case 'GvideoSearch': + arr = [ + '
', + '', + '', + '
','',r.publisher,'', + '
' + ]; + break; + case 'GnewsSearch': + arr = [ + '
', + '

',r.title,'

', + '

',r.content,'

', + '',r.publisher,'', + '
' + ]; + break; + } + + // The toString method. + this.toString = function(){ + return arr.join(''); + } + } +});