PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 23
zarapyan Отправлено: 06 Мая, 2010 - 08:43:58 • Тема: Подскажите как лучше реализовать • Форум: Программирование на PHP

Ответов: 4
Просмотров: 273
при просмотре журнала, который нужно сделать намного ужаснулся в нем 11 таблиц и 175 идентификаторов. Завис над вопросом, как сделать его без масштабной нагрузки на базу?
zarapyan Отправлено: 04 Мая, 2010 - 13:35:51 • Тема: Подскажите как лучше реализовать • Форум: Программирование на PHP

Ответов: 4
Просмотров: 273
Доброго времени суток, решил сделать на сайте журнал: ввод данных планируется через html - форму, можно ли сделать отображение данных после отправки в отдельном окне, и так же запись данных в MySQL и импорт их оттуда для отображения?
zarapyan Отправлено: 04 Мая, 2010 - 07:06:56 • Тема: Добавление поиска в PHPFM 0.2.3 • Форум: Программирование на PHP

Ответов: 5
Просмотров: 404
JustUserR пишет:
Пожалуйста! Как я понял вы остановились на решении web-индексации от google - или все-таки локальной от yandex-server?

Хотя так было бы проще, но нет. Т.К. сайт распологается только лишь в локальной сети, помог скрипт ft2 он и проиндексировал папку и поиск в нем довольно таки быстрый.
zarapyan Отправлено: 29 Апреля, 2010 - 09:14:08 • Тема: Помогите разобраться с кодом • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1514
Благодарю, нашел другое решение тему можно закрыть!
zarapyan Отправлено: 28 Апреля, 2010 - 12:27:23 • Тема: Помогите разобраться с кодом • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1514
JustUserR пишет:
Приведенный вами код достаточно большой однако я заметил один странный момент - сначала вы устанавливаете обработчики событий в теге body on_event* а потом с помощью JS-кода в document.onevent вы их снимаете путем установки в null

Подскажите как его улучшить? или может быть что то в него добавить?
zarapyan Отправлено: 28 Апреля, 2010 - 08:23:02 • Тема: Помогите разобраться с кодом • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1514
никак не могу выяснить цикл кода, чтоб вставить туда прогресс-бар(при нажатии кнопки поиск и до момента вывода результатов), Подскажите пожалуйста
PHP:
скопировать код в буфер обмена
  1. function bodymousedown() {
  2. //if(event.button==2)  boton derecho
  3. return true; }
  4.  
  5. function bodyclick() {
  6. if(document.activeElement.id!="f2") { document.body.focus();
  7. if(!selclick) unselectall(); selclick=0; }
  8. return true; }
  9.  
  10. function initial(c) { var i,r=false,n=activo;
  11. for(i=0;i<vfiles.length;i++) { n=(activo+i+1)%vfiles.length;
  12. if(vfiles[n].toUpperCase().charCodeAt(0)==c) { r=n; break; } }
  13. return(r); }
  14.  
  15. function bodykey(argk,argc,args) { if(!rnoinput) return true;
  16. var aa=activo; var s=0,sp,a,l,i;
  17. var shift=event.shiftKey; var ctrl=event.ctrlKey; var alt=event.altKey;
  18. var k=event.keyCode;
  19. if(arguments.length) { shift=args; ctrl=argc; k=argk; }
  20. if(((k>=65 && k<=90) || (k>=48 && k<=57)) && rnoinput && !ctrl && !alt) { i=initial(k); if(i) { s=1; act(true,i); } }
  21. else {
  22. switch(k) {
  23. case 33: s=1; act(true,activo-10); break;
  24. case 34: s=1; act(true,activo+10); break;
  25. case 35: s=1; act(true,vfiles.length-1); break;
  26. case 36: s=1; act(true,0); break;
  27. case 37: break;
  28. case 38: s=1; act(true,activo-1); break;       
  29. case 39: break;
  30. case 40: s=1; act(true,activo+1); break;       
  31. case 13: if(rnoinput && vsel==1) document.all["a"+lastsel].ondblclick(); break;
  32. case 65:case 69: if(ctrl) { selectall(); s=1; } break;
  33. case 78: if(ctrl) { unselectall(); s=1; } break;
  34. case 82: if(ctrl) { invertsel(); s=1; } break;
  35. <?PHP
  36. if($allow_delete) echo("case 46: if(rnoinput) dofunc('".T("Delete")."','del',1); break;\n");
  37. if($allow_move) {
  38. echo("
  39. case 113: if(vsel==1 && vfiles[lastsel]!=\"..\") {
  40.         sp=document.all['s'+lastsel];
  41.         a=document.all['a'+lastsel]; l=a.offsetWidth;
  42.         ainputhtml=a.innerHTML; ainputpadding=a.style.padding; ainputborderwidth=a.style.borderWidth; ainputspan=sp; ainputanchor=a;
  43.         a.innerHTML=''; a.style.padding=0; a.style.borderWidth=0; rnoinput=0;
  44.         sp.innerHTML=\"<INPUT onkeypress='f2keypress();' onblur='f2blur()' class=f2 id=f2>\";
  45.         f2.value=vfiles[lastsel]; f2.style.width=l; f2.focus(); f2.select(); }
  46.         break;
  47. "); }
  48. ?>
  49. } }
  50. if(s) {
  51. if(ctrl) return false;
  52. if(shift) { lastsel=aa; select2(activo); return false; }       
  53. unselectall(); select1(activo); return false; } return true; } 
  54.  
  55. function f2blur() {
  56. ainputspan.innerHTML="";
  57. ainputanchor.style.padding=ainputpadding;
  58. ainputanchor.style.borderWidth=ainputborderwidth;
  59. ainputanchor.innerHTML=ainputhtml;
  60. rnoinput=1; }
  61.  
  62. function f2keypress() { if(event.keyCode==13) {
  63. if(f2.value=='' || f2.value.indexOf("/")>=0) { alert('<?PHP echo(T("Invalid argument"));?>'); }
  64. else {
  65. dofunc('<?PHP echo T("Move to");?>','move',1,f2.value); }
  66. } }
  67.  
  68. function bodyfocus() { act(true); return true; }
  69.  
  70. function bodyblur() { act(false); return true; }
  71.  
  72. function act(si,n) { var a,y,m,tr;
  73. try {
  74. if(arguments.length<2) n=activo; if(n<0) n=0; if(n>=vfiles.length) n=vfiles.length-1;
  75. a=document.all["a"+n]; tr=a.parentElement.parentElement;
  76. if(si) {
  77. y=tr.offsetTop+tr.offsetHeight;
  78. m=document.body.scrollTop+document.body.clientHeight;
  79. if(y>m) window.scrollBy(0,y-m);
  80. else if(tr.offsetTop<document.body.scrollTop) window.scrollBy(0,tr.offsetTop-document.body.scrollTop);
  81. act(false,activo); a.style.borderColor="#999999"; activo=n; } else a.style.borderColor=a.style.backgroundColor;  }
  82. catch(e) {}
  83. }
  84.  
  85. function sel(n) { selclick=1;
  86. act(true,n);
  87. if(event.ctrlKey) { select1(n); return; }
  88. if(event.shiftKey) { select2(n,true); return; }
  89. unselectall(); select1(n); }
  90.  
  91. function select2(n,u) { if(lastsel<0) { select1(n); return; }
  92. if(u) unselectall();
  93. var a=Math.min(lastsel,n);
  94. var b=Math.max(lastsel,n);
  95. for(i=a;i<=b;i++) { if(!vselec[i]) select1(i); } }
  96.  
  97. function select1(n) { var o;
  98. if(!vselec[n]) { vselec[n]=1; o=eval("a"+n);
  99. o.style.backgroundColor="highlight"; o.style.color="highlighttext"; o.style.borderColor="highlight"; vsel++; lastsel=n; }
  100. else { vselec[n]=0; o=eval("a"+n); o.style.backgroundColor=o.style.color=""; o.style.borderColor=""; vsel--; }
  101. parent.lspanel.set_selfiles(vsel);
  102. if(vsel==1 && n!=fp) { fp=n; showpreview(fp); }
  103. }
  104.  
  105. function invertsel() { var i;
  106. for(i=0;i<vselec.length;i++) select1(i); }
  107.  
  108. function unselectall() { var i; if(!rnoinput) return;
  109. for(i=0;i<vselec.length;i++) if(vselec[i]) select1(i); }
  110.  
  111. function selectall() { var i;
  112. for(i=0;i<vselec.length;i++) if(!vselec[i]) select1(i); }
  113.  
  114. function selectallfiles() { var i; unselectall(); if(firstfile<0) return;
  115. for(i=firstfile;i<vselec.length;i++) if(!vselec[i]) select1(i); }
  116.  
  117. function selectallfolders() { var i; unselectall();
  118. if(firstfile<0) { selectall(); return; }
  119. for(i=0;i<firstfile;i++) if(!vselec[i]) select1(i); }
  120.  
  121. function setw() { var z,i;
  122. for(i=0;i<owt.length;i++) gw[i]=0;     
  123. for(z=i=0;i<owt.length;i++) if(owt[i]) gw[i]=direc.rows[0].cells[z++].offsetWidth+2;   
  124. for(z=i=0;i<owt.length;i++) { if(owt[i]) { if(gw[i]<parent.lstop.mw[i]) { direc.rows[0].cells[z].width=gw[i]=parent.lstop.mw[i]; gw[i]+=2; } z++; } }
  125. crw=document.body.offsetWidth-document.body.clientWidth-2;
  126. if(firstfile<0) { gw[1]=0; for(i=0;i<=vfiles.length;i++) direc.rows[i].deleteCell(1); } }
  127.  
  128. function dolist() { var i,s;
  129. for(s='',i=0;i<vfiles.length;i++) { if(vselec[i]) { if(s!='') s+='/'; s+=vfiles[i]; } }
  130. return(s); }
  131.  
  132. function haydir() { var i; n=(firstfile>=0)?firstfile:vselec.length;
  133. for(i=0;i<n;i++) if(vselec[i]) return true; return false; }
  134.  
  135. function dofunc(lit,f,req,arg1) {
  136. if(!self.vfiles) return;
  137. flist.funcion.value=f;
  138. flist.lista.value=req?dolist():'';
  139. flist.lit.value=lit;
  140. flist.arg1.value=(arguments.length==4)?arg1:'';
  141. if(req) if(flist.lista.value=='') { alert('<?PHP echo(T("No items selected"));?>'); return false; }
  142. if(req) if(vselec[0] && vfiles[0]=="..") { alert('<?PHP echo(T("Cannot take parent folder"));?>'); return false; }
  143. if(req==2) if(haydir()) { alert('<?PHP echo(T("No folders allowed"));?>'); return false; }
  144. if(arguments.length==4) if(arg1=='') { alert('<?PHP echo(T("Missing argument"));?>'); return false; }
  145. larg=(arguments.length==4)?" ["+arg1+"]":"";
  146. if(!confirm('<?PHP echo(T("Confirm"));?> '+lit+larg+' ?')) return false;
  147. flist.submit();
  148. return true; }
  149.  
  150. function doedit(fm) {
  151. if(vsel!=1) { alert('<?PHP echo(T("One item must be selected"));?>'); return false; }
  152. if(haydir()) { alert('<?PHP echo(T("No folders allowed"));?>'); return false; }
  153. if(fm==4) if(document.all["a"+lastsel].openable==0) { alert('<?PHP echo(T("Not an openable file"));?>'); return false; }
  154. forcemode=fm;
  155. document.all["a"+lastsel].ondblclick(); }
  156.  
  157. function chdir(d) { parent.lsleft.clickdir(d); }
  158.  
  159. function shobj(o) { var s=''; for (i in o) s+=" "+i+"="+o[i]+"\n"; alert(s); }
  160.  
  161. function show(pat,n) {
  162. <?PHP
  163. if($allow_edit || $allow_exec || $allow_view) {
  164. echo("var seq=new Date();\n");
  165. echo("var t=parent.lscontrol.callmodeless('show.php?base='+parent.lscontrol.ue(parent.lscontrol.ue(base))+'&path='+parent.lscontrol.ue(parent.lscontrol.ue(pat))+'&rand='+seq.getTime()+'&forcemode='+forcemode,parent.lsleft);\n");
  166. echo("forcemode=-1;\n"); }
  167. ?>
  168. }
  169.  
  170. function showpreview(n) { var b=base; if(base!="/") b=b+"/"; var f=b+vfiles[n];
  171. if(n==0 && vfiles[n]=='..') f=dotdot;
  172. parent.lspanel.showpreview(f); }
  173.  
  174. <?PHP
  175. echo("var titdir='".T("Click to select").", ".T("DoubleClick to go to folder")."';\n");
  176. echo("var titfil='".T("Click to select").", ".T("DoubleClick to see contents")."';\n");
  177. ?>
  178. function dotr(ico,num,fil,pat,nom,nof,siz,dat,tim,tip,per,pef,uid,gid,ope) {
  179. var non=num%2; if(!parent.lscontrol.oconf.alternateback) non="";
  180. var tit=fil?titfil:titdir;
  181. var tin=tit; if(nom!=nof) tin=nof+'\n'+tin;
  182. var dbl=fil?" ondblclick=\"show('"+pat+"',"+num+");\" ":" ondblclick=\"chdir('"+pat+"');\" ";
  183. var sib=(siz=='')?'&nbsp;':siz+'&nbsp;';
  184. document.write("<TR class=rena"+non+">");
  185. document.write("<TD unselectable=on nowrap>");
  186. document.write("<IMG align=absmiddle src='ico/"+ico+"' height=18 width=18 border=0>");
  187. document.write("<SPAN id=s"+num+"></SPAN><A openable="+ope+" unselectable=on class=topb id=a"+num+" onclick='sel("+num+");'"+dbl+" title='"+tin+"'>&nbsp;"+nom+"</A></TD>");
  188. if(owt[1]) document.write("<TD unselectable=on style='text-align=right'>"+sib+"</TD>");
  189. if(owt[2]) document.write("<TD unselectable=on>"+dat+(parent.lscontrol.oconf.datefull?"&nbsp;"+tim:"")+"</TD>");
  190. if(owt[3]) document.write("<TD unselectable=on>"+tip+"</TD>");
  191. if(owt[4]) document.write("<TD unselectable=on>"+(parent.lscontrol.oconf.permsfull?pef:per)+"</TD>");
  192. if(owt[5]) document.write("<TD unselectable=on>"+uid+"</TD>");
  193. if(owt[6]) document.write("<TD unselectable=on>"+gid+"</TD>");
  194. document.write("</TR>"); }
  195.  
  196. <?PHP
  197. $io=array();
  198. foreach($titulos as $k=>$v) $io[$k]=($k==$orden)?"<IMG align=absmiddle src=img/no.gif height=13 width=9 border=0>":"";
  199.  
  200. echo("
  201. function doth() {
  202. document.write('<TR style=\"visibility:hidden;\" class=rena0>');
  203. document.write('<TD nowrap>{$io[nombre]}{$titulos[nombre]}</TD>');
  204. if(owt[1]) document.write('<TD>{$io[size]}{$titulos[size]}</TD>');
  205. if(owt[2]) document.write('<TD>{$io[mtime]}{$titulos[mtime]}</TD>');
  206. if(owt[3]) document.write('<TD>{$io[tipo]}{$titulos[tipo]}</TD>');
  207. if(owt[4]) document.write('<TD>{$io[perm]}{$titulos[perm]}</TD>');
  208. if(owt[5]) document.write('<TD>{$io[owner]}{$titulos[owner]}</TD>');
  209. if(owt[6]) document.write('<TD>{$io[group]}{$titulos[group]}</TD>');
  210. document.write('</TR>'); }
  211. ");
  212. ?>
  213.  
  214. function showhelp() { parent.lscontrol.callmodeless("help/help.php?mode=1",0,400,600); return false; }
  215.  
  216. </SCRIPT>
  217.  
  218. </HEAD>
  219. <BODY   onhelp='return showhelp();' onload='initbody();'
  220.         onClick='return bodyclick();' onkeydown='return bodykey();'
  221.         onfocus='return bodyfocus();' onblur='return bodyblur();'
  222.         onmousedown='return bodymousedown();' unselectable=on>
  223. <?PHP
  224. $firstfile=-1;
  225. $cfile=$cdir=$ck=0;
  226. if($handle=opendir(b1($droot.$myroot.$base))) {
  227. while ($file=readdir($handle)) { if($file=="."||($file==".."&&$base=="/")) continue;
  228.   if(substr($base,-1,1)=="/") $barra=""; else $barra="/";
  229.   $filepath=$base.$barra.$file;
  230.   if($filepath=="") $filepath="/";
  231.   $filedoc=b1($droot.$myroot.$filepath);
  232.   $t=filetype($filedoc);
  233.   if($t!="dir") { if(strrpos($file,".")!==false) { $t=strtolower(substr($file,strrpos($file,"."))); } }
  234.   $dd=($file=="..")?0:(($t=="dir")?1:2);
  235.   $dotdot[]=$dd;
  236.   $path[]=$filepath;
  237.   $nombre[]=$file;
  238.   $tipo[]=$t;
  239.   $mtime[]=filemtime($filedoc);
  240.   $size[]=($t=="dir")?"":filesize($filedoc);
  241.   if($dd==1) $cdir++; if($dd==2) { $cfile++; $ck+=ceil(filesize($filedoc)/1024); }
  242.   $ui=$gi="0";
  243.   if(function_exists("fileowner") && function_exists("filegroup")) {
  244.   $ui=fileowner($filedoc); if(function_exists("posix_getpwuid")) { $pw=posix_getpwuid($ui); $ui=$pw["name"]; }
  245.   $gi=filegroup($filedoc); if(function_exists("posix_getgrgid")) { $pw=posix_getgrgid($gi); $gi=$pw["name"]; } }
  246.   if(function_exists("fileperms")) $perm[]=sprintf("%03o",fileperms($filedoc)%01000); else $perm[]="777";
  247.   $isr="r"; $isw="w"; $isx="x";
  248.   if(function_exists("is_readable")) $isr=(is_readable($filedoc)?"r":"");
  249.   if(function_exists("is_writable")) $isw=(is_writable($filedoc)?"w":"");
  250.   if(function_exists("is_executable")) $isx=(is_executable($filedoc)?"x":"");
  251.   $myperm[]="$isr$isw$isx";
  252.   $uid[]=$ui;
  253.   $gid[]=$gi;
  254. }
  255. closedir($handle);
  256.  
  257. eval("\$orderby=\$$orden;");
  258. $sen=($sentido=="desc")?SORT_ASC:SORT_DESC;
  259. array_multisort($dotdot,SORT_ASC,$orderby,$sen,$nombre,$tipo,$mtime,$size,$path,$perm,$myperm,$uid,$gid);
  260.        
  261. echo("<TABLE id=direc cellspacing=0 cellpadding=0 border=0>\n");
  262. echo("<SCRIPT>\n");
  263. for($i=0;$i<count($nombre);$i++) {
  264.   $t=$tipo[$i]; if(!array_key_exists($t,$ass)) $t="file"; $icono=$ass[$t][ICON]; $clase=str_replace(" ","&nbsp;",$ass[$t][DESC]);
  265.   $nom=$nomfull=str_replace(" ","&nbsp;",addslashes($nombre[$i]));
  266.   if(strlen($nom)>$maxnamelength) $nom=str_replace(" ","&nbsp;",substr($nombre[$i],0,$maxnamelength-3)."...");
  267.   if(!$dotdot[$i]) { $icono=$ass["dot"][ICON]; $nom=addslashes(b1(dirname($base))); $path[$i]=addslashes(b2(dirname(b1($base)),1)); /*$nom=addslashes(str_replace(" ","&nbsp;",b2($path[$i]))); $path[$i]=b2($path[$i]); */ }
  268.   $fil=($t!="dir")?1:0;
  269.   if($firstfile<0) if($fil) $firstfile=$i;
  270.   $dat=date("d/m/Y",$mtime[$i]);
  271.   $tim=date("H:i:s",$mtime[$i]);
  272.   $pat=addslashes(addslashes($path[$i]));
  273.   $ope=$ass[$t][OPENABLE];
  274.   if(!$dotdot[$i]) echo("var dotdot='".addslashes($path[$i])."';\n");
  275.   echo("dotr('$icono',$i,$fil,'$pat','$nom','$nomfull','{$size[$i]}','$dat','$tim','$clase','{$myperm[$i]}','{$perm[$i]}','{$uid[$i]}','{$gid[$i]}','$ope');\n");
  276. }
  277. echo("doth();\n");
  278. echo("</SCRIPT>\n");
  279. echo("</TABLE>\n");
  280. echo("<FORM name=flist method=post action='lsff.php' target=lstarget>\n");
  281. echo("<INPUT type=hidden name=base value=''>\n");
  282. echo("<INPUT type=hidden name=lista value=''>\n");
  283. echo("<INPUT type=hidden name=lit value=''>\n");
  284. echo("<INPUT type=hidden name=arg1 value=''>\n");
  285. echo("<INPUT type=hidden name=funcion value=''>\n");
  286. echo("</FORM>\n");
  287. //echo("<button onclick=alert(direc.innerHTML);>DIREC</button>\n");
  288. echo("</BODY>\n");
  289. echo("</HTML>\n");
  290. echo("<SCRIPT>\n");
  291. echo("var vfiles=[");
  292. for($i=0;$i<count($nombre);$i++) { if($i>0) echo(","); echo("'".addslashes($nombre[$i])."'"); }
  293. echo("];\n");
  294. echo("var vselec=[");
  295. for($i=0;$i<count($nombre);$i++) { if($i>0) echo(","); echo("0"); }
  296. echo("];\n");
  297. echo("var firstfile=$firstfile;\n");
  298. echo("var vsel=0;\n");
  299. echo("var totsize=$ck;\n");
  300. echo("function initbody() {\n");
  301. echo("flist.base.value='".addslashes($base)."';\n");
  302. echo("setw();\n");
  303. echo("s=parent.document.getElementsByName('b')[0].cols.split(',');\n");
  304. echo("s[1]=crw+2+direc.offsetWidth;\n");
  305. echo("if(s[1]<150) s[1]=150;\n");
  306. echo("parent.document.getElementsByName('b')[0].cols=s.join(',');\n");
  307. echo("parent.lstop.setwidth(gw,crw);\n");
  308. echo("parent.lspanel.set_totfiles(vfiles.length);\n");
  309. echo("parent.lspanel.set_selfiles(vsel);\n");
  310. echo("parent.lspanel.set_totsize(totsize);\n");
  311. echo("focus(); }\n");
  312. echo("document.close();\n");
  313. echo("</SCRIPT>\n");
  314. if(!count($nombre)) {
  315. echo("<TABLE id=direc width=100%><TR class=rena0><TD style='text-align:center;'><b>(".T("Empty").")</b></TD></TR></TABLE>");
  316. echo("<SCRIPT>\n");
  317. echo("function initbody() {\n");
  318. echo("document.body.onclick=null;\n");
  319. echo("document.body.onmousedown=null;\n");
  320. echo("document.body.onfocus=null;\n");
  321. echo("document.body.onblur=null;\n");
  322. echo("document.body.onkeydown=null; }\n");
  323. echo("document.close();\n");
  324. echo("</SCRIPT>\n");
  325. echo("</BODY></HTML>\n");
  326. }
  327. } else {
  328. echo("<TABLE width=100%><TR class=dire><TD style='text-align:center;'><b>".T("Cannot open")." ".b1($droot.$myroot.$base)."</b></TD></TR></TABLE>");
  329. echo("<SCRIPT>\n");
  330. echo("function initbody() {\n");
  331. echo("if(confirm('".T("Cannot open")." $base\\n".T("Reload tree")."?')) parent.lsleft.location.reload();\n");
  332. echo("document.body.onclick=null;\n");
  333. echo("document.body.onmousedown=null;\n");
  334. echo("document.body.onfocus=null;\n");
  335. echo("document.body.onblur=null;\n");
  336. echo("document.body.onkeydown=null; }\n");
  337. echo("document.close();\n");
  338. echo("</SCRIPT>\n");
  339. echo("</BODY></HTML>\n");
  340. }
  341. ?>
zarapyan Отправлено: 28 Апреля, 2010 - 08:17:07 • Тема: Добавление поиска в PHPFM 0.2.3 • Форум: Программирование на PHP

Ответов: 5
Просмотров: 404
спасибо огромное - разобрался...
zarapyan Отправлено: 26 Апреля, 2010 - 13:30:23 • Тема: Добавление поиска в PHPFM 0.2.3 • Форум: Программирование на PHP

Ответов: 5
Просмотров: 404
Доброго времени суток! имеется файловый менеджер PHPM 0.2.3 можно ли добавить в него функцию поиска?? очень надо!!! Попробовал поставить форму Гугля но как задать ему пути для поиска не знаю
PHP:
скопировать код в буфер обмена
  1. <?PHP header('Content-type: text/html; charset=utf-8')?>
  2. <?PHP
  3.  
  4. define("VERSION", "0.2.3");
  5.  
  6. include("./conf/config.inc.php");
  7. include("./incl/functions.inc.php");
  8. include("./lang/$language.inc.php");
  9. include("./incl/header.inc.php");
  10. include("./incl/html.header.inc.php");
  11.  
  12.  
  13. /* register directory/filename */
  14.  
  15. if (isset($_GET['directory_name']))
  16. {
  17.     $directory_name = basename(stripslashes($_GET['directory_name']))."/";
  18. }
  19. if (isset($_GET['filename']))
  20. {
  21.     $filename = basename(stripslashes($_GET['filename']));
  22. }
  23. if (isset($_POST['directory_name']))
  24. {
  25.     $directory_name = basename(stripslashes($_POST['directory_name']))."/";
  26. }
  27. if (isset($_POST['filename']))
  28. {
  29.     $filename = basename(stripslashes($_POST['filename']));
  30. }
  31. if (isset($_POST['new_directory_name']))
  32. {
  33.     $new_directory_name = basename(stripslashes($_POST['new_directory_name']))."/";
  34. }
  35. if (isset($_POST['new_filename']))
  36. {
  37.     $new_filename = basename(stripslashes($_POST['new_filename']));
  38. }
  39.  
  40.  
  41. /* validate path */
  42.  
  43. if (isset($_GET['path']))
  44.     $path = validate_path($_GET['path']);
  45. else if (isset($_POST['path']))
  46.     $path = validate_path($_POST['path']);
  47.  
  48. if (!isset($path) || $path == "./" || $path == ".\\" || $path == "/" || $path == "\\")
  49.     $path = false;
  50.  
  51.  
  52. if (isset($_SESSION['session_username']) && $_SESSION['session_username'] == $username && isset($_SESSION['session_password']) && $_SESSION['session_password'] == md5($password) || !$phpfm_auth)
  53. {
  54.     if (!(@opendir($home_directory.$path)) || (substr($home_directory, -1) != "/"))
  55.     {
  56.         print "<table class='output' width=400 cellpadding=0 cellspacing=0>";
  57.         print "<tr><td align='center'>";
  58.  
  59.         if (!(@opendir($home_directory)))
  60.             print "<font color='#CC0000'>$StrInvalidHomeFolder</font>";
  61.         else if (!(@opendir($home_directory.$path)))
  62.             print "<font color='#CC0000'>$StrInvalidPath</font>";
  63.         if (substr($home_directory, -1) != "/")
  64.             print "&nbsp;<font color='#CC0000'>$StrMissingTrailingSlash</font>";
  65.  
  66.         print "</td></tr>";
  67.     print "</table><br />";
  68.     }
  69.  
  70.     if (isset($_GET['action']) && is_file("incl/".$_GET['action'].".inc.php") && is_valid_name($_GET['action']))
  71.         include("./incl/".basename($_GET['action']).".inc.php");
  72.     else if (isset($_GET['output']) && is_file("incl/".$_GET['output'].".inc.php") && is_valid_name($_GET['output']))
  73.     {
  74.         print "<table class='output' width=400 cellpadding=0 cellspacing=0>";
  75.             print "<tr><td align='center'>";
  76.                 include("./incl/".basename($_GET['output']).".inc.php");
  77.             print "</td></tr>";
  78.         print "</table><br />";
  79.  
  80.         include("./incl/filebrowser.inc.php");
  81.     }
  82.     else
  83.     {
  84.         include("./incl/filebrowser.inc.php");
  85.     }
  86. }
  87. else
  88. {
  89.     include("./incl/login.inc.php");
  90. }
  91.  
  92. include("./incl/footer.inc.php");
  93.  
  94. ?>
  95. <!-- SiteSearch Google -->
  96. <hr>
  97. <div align=center>
  98. <FORM method=GET action="C:/Webserver/public/Archive/">
  99. <input type=hidden name=ie value=UTF-8>
  100. <input type=hidden name=oe value=UTF-8>
  101. <TABLE bgcolor="#FFFFFF"><tr><td>
  102. <A HREF="http://rus001/">
  103. <IMG SRC="images/hoe-logo_small.gif"
  104. border="0" ALT="Holcim"></A>
  105. </td>
  106. <td>
  107. <INPUT TYPE=text name=q size=31 maxlength=255 value="">
  108. <INPUT type=submit name=btnG VALUE="Search">
  109. <font size=-1>
  110. <input type=hidden name=domains value="C:/WebServer/public/Archive/"><br><input type=radio name=sitesearch value=""> WWW <input type=radio name=sitesearch value="http://> Archive <br>
  111. </font>
  112. </td></tr></TABLE>
  113. </FORM>
  114. </div>
  115. <hr>
  116. <!-- SiteSearch Google -->
zarapyan Отправлено: 16 Апреля, 2010 - 13:52:05 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
JustUserR пишет:
То есть вы время от времени индексируете папки и сохраняете индексную информацию в БД - откуда впоследствии уже производится поиск и выдача пути В таком случае приведенную мной функции использовать несложно - при изменении состава папки вы выполняете переиндексацию и сверку изменений и БД - и далее уже выполняете поиск Сама сверка должна работать как можно для меньшего подкаталога (То есть для того подкаталога где произошли изменения - чтобы проверять меньше файлов) и вносить изменения в БД

Это в принципе понятно, но смущает то что размер папки для индексирования ~4Гб
.
Цитата:
А каким образом вы хотите организовать его доступ к сетевым путям - по UNC или FTP или еще как?

По UNC но как это сделать? добавить ссылку в код?
zarapyan Отправлено: 16 Апреля, 2010 - 10:14:13 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
JustUserR пишет:
Какой формат данных о существующем дереве папок и файлов использует ваш поиск?

Мой поиск работает по ключам в таблицах MySQL. К файлам и папкам он доступа не имеет...

З.ы. Вопрос и разряда фантастики - GoogleDecktopSearch можно в поиск на сайте прикрутить? Пробовал по ссылкам на него делать - получается, но только локально на моем сервере. По сети он соответственно не работает...
zarapyan Отправлено: 15 Апреля, 2010 - 13:36:26 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
Пробовал поставить скрипт riseаrch, но он виснет на индексировании папки..... и выдает fataleror Огорчение Огорчение
zarapyan Отправлено: 15 Апреля, 2010 - 09:54:30 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
проиндексировал все таки я эту папку, правда при помощи ГуглДесктоп. В папке которую проиндексировал появились различные файлы.(.dat;.xml; .cf1; .ht1 ). Вопрос такой можно ли эти файлы использовать в моем поиске? либо нужно будет создать отдельный поисковый скрипт, котрый бы смог работать с имеющимся набором файлов.
zarapyan Отправлено: 14 Апреля, 2010 - 12:29:40 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
ALEN пишет:
zarapyan
Вам представили простую функцию для рекурсивного получения всех файлов в указанной папке.
Функция знаете что это такое?

В функции создается массив пустой для записи в него всех файлов,потом открываем основной каталог и смотрим какие файлы там есть, если файл является папкой то открываем и смотри что в нем. В результате функция вернет массив со всеми файлами внутри папки.


что такое функция я понял, но все равно никак не могу понять, как мне использовать массив, который мне вернула функция в поиске файлов. поиск в основном ведется в MYSQL как примерно показано выше. Папка же которую тоже требуется добавить в поиск - лежит локально (не в базе), доступ к ней осуществляется через файл-менеджер.(прикрученый к системе)
zarapyan Отправлено: 14 Апреля, 2010 - 08:24:46 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
Цитата:

В вашем PHP-скрипте его вероятно нужно вставлять в момент изменения набора файлов и необходимости переиндексации

Все ступор окончательный Глазки в кучку Глазки в кучку честно совсем не представляю как это сделать:
zarapyan Отправлено: 13 Апреля, 2010 - 09:38:43 • Тема: Индексирование папки • Форум: Программирование на PHP

Ответов: 20
Просмотров: 1894
JustUserR пишет:
zarapyan пишет:
Рано я обрадовался, если не трудно, можно более подробно объяснить механизм действия? Буду очень признателен!
Могу вас привести примерный код который будет выполнять индексацию всех файлов в данной папке и всех ее подпапках - и помещать результат по ссылке в передаваемый массив
PHP:
скопировать код в буфер обмена
  1. $all_files=array();
  2. function list_files($folder,&$afl)
  3. {$fp=opendir($folder);
  4. while($cv_file=readdir($fp))
  5. {if(is_file($cv_file)) {$all_files[]=$folder."/".$cv_file;}
  6. elseif(($cv_file!=".")&&($cv_file!=".."))
  7. {list_files($folder."/".$cv_file,$afl);}
  8. else {}}
  9. closedir($fp);
  10. }
  11. list_files("path/to/my/folder",$all_files);


еще раз извиняюсь за неграмотность.. но что то совсем я запутался, куда вставлять предоставленый вами код и как его потом прикрутить к моему поиску.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         /*
  3.                 Результаты поиска + алгоритмы поиска
  4.         */
  5.         include("core/db_PDO.php");    
  6.         include("core/searchClass.php");
  7.         include("core/includess.php");
  8.  
  9.         (isset($_POST['str'])) ? $str=$_POST['str'] : $str="";
  10.         (isset($_POST['searchplace'])) ? $searchplace=$_POST['searchplace'] : $searchplace="";
  11.  
  12.         if ($str != "")
  13.         {
  14.                 $conn = new iPDO();                            
  15.                 $count = 0;            
  16.                
  17.                 $str_lower = strtolower_utf8($str);
  18.                 $str_lower = str_replace(array(" ", "_"), array("%", "%"), $str_lower);
  19.  
  20.                 $result = new SearchResult();          
  21.                
  22.                         switch ($searchplace)
  23.                         {
  24.                                 case "all":
  25.                                 {
  26.                                         //$sql = "SET NAMES utf8 COLLATE utf8_general_ci";
  27.                                         //$conn->exec($sql);
  28.  
  29.                                         selectName1();
  30.                                         selectName2();
  31.                                         selectName3(); - здесь  стоят имена журналов в Mysql  на сколько я понимаю
  32.                                         selectName4();
  33.                                         selectName5();
  34.                                         selectName6();                         
  35.                                        
  36.                                 };break;

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB