<?php /*********************************************************************** ** Title.........: Image Manager for HTMLArea 3.0 Alpha, PHP Version ** Version.......: 1.01 ** Author........: Xiang Wei ZHUO <wei@zhuo.org> ** Filename......: insert_image.php ** Last changed..: 8 Mar 2003 ** Notes.........: Configuration in config.inc.php - FIXME Only compatible with IE 5.5+ ***********************************************************************/ /* $id */ include 'ImageManager/config.inc.php'; $no_dir = false; if(!is_dir($BASE_DIR)) { $no_dir = true; } // _debug_array($_GET); // die(); function dirs($dir,$abs_path) { $d = dir($dir); $dirs = array(); while (false !== ($entry = $d->read())) { if(is_dir($dir.'/'.$entry) && substr($entry,0,1) != '.') { $path['path'] = $dir.'/'.$entry; $path['name'] = $entry; $dirs[$entry] = $path; } } $d->close(); ksort($dirs); for($i=0; $i<count($dirs); $i++) { $name = key($dirs); $current_dir = $abs_path.'/'.$dirs[$name]['name']; echo "<option value=\"$current_dir\">$current_dir</option>\n"; dirs($dirs[$name]['path'],$current_dir); next($dirs); } } ?> <html style="width: 580; height: 440;"> <head> <title>Insert Image</title> <script type="text/javascript" src="popup.js"></script> <script type="text/javascript" src="../../../dialog.js"></script> <script type="text/javascript"> var preview_window = null; function Init() { __dlg_init(); var doc = MM_findObj("f_url"); if(doc != null) { doc.focus(); } }; function onOK() { var required = { "f_url": "You must enter the URL", "f_alt": "Please enter the alternate text" }; for (var i in required) { var el = MM_findObj(i); if (!el.value) { alert(required[i]); el.focus(); return false; } } // pass data back to the calling window var fields = ["f_url", "f_alt", "f_align", "f_border", "f_horiz", "f_vert", "f_width", "f_height"]; var param = new Object(); for (var i in fields) { var id = fields[i]; var el = MM_findObj(id); if(id == "f_url") // param[id] = "<? echo 'http://'.$_SERVER['SERVER_NAME']; ?>" + el.value; param[id] = "" + el.value; else param[id] = el.value; } if (preview_window) { preview_window.close(); } //alert(param); __dlg_close(param); return false; }; function onCancel() { if (preview_window) { preview_window.close(); } __dlg_close(null); return false; }; </script> <style type="text/css"> html, body { background: ButtonFace; color: ButtonText; font: 11px Tahoma,Verdana,sans-serif; margin: 0px; padding: 0px; } body { padding: 5px; } table { font: 11px Tahoma,Verdana,sans-serif; } form p { margin-top: 5px; margin-bottom: 5px; } .fl { width: 9em; float: left; padding: 2px 5px; text-align: right; } .fr { width: 6em; float: left; padding: 2px 5px; text-align: right; } fieldset { padding: 0px 10px 5px 5px; } select, input, button { font: 11px Tahoma,Verdana,sans-serif; } button { width: 70px; } .space { padding: 2px; } .title { background: #ddf; color: #000; font-weight: bold; font-size: 120%; padding: 3px 10px; margin-bottom: 10px; border-bottom: 1px solid black; letter-spacing: 2px; } form { padding: 0px; margin: 0px; } </style> <style type="text/css"> <!-- .buttonHover { border: 1px solid; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; cursor: hand; } .buttonOut { border: 1px solid ButtonFace; } .separator { position: relative; margin: 3px; border-left: 1px solid ButtonShadow; border-right: 1px solid ButtonHighlight; width: 0px; height: 16px; padding: 0px; } .manager { } .statusLayer { background:#FFFFFF; border: 1px solid #CCCCCC; } .statusText { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 15px; font-weight: bold; color: #6699CC; text-decoration: none; } --> </style> <script language="JavaScript" type="text/JavaScript"> <!-- function pviiClassNew(obj, new_style) { //v2.6 by PVII obj.className=new_style; } function goUpDir() { var selection = document.forms[0].dirPath; var dir = selection.options[selection.selectedIndex].value; if(dir != '/') { imgManager.goUp(); changeLoadingStatus('load'); } } function updateDir(selection) { var newDir = selection.options[selection.selectedIndex].value; imgManager.changeDir(newDir); changeLoadingStatus('load'); } function newFolder() { var selection = document.forms[0].dirPath; var dir = selection.options[selection.selectedIndex].value; Dialog("ImageManager/newFolder.html", function(param) { if (!param) { // user must have pressed Cancel return false; } else { var folder = param['f_foldername']; if (folder && folder != '') { imgManager.newFolder(dir,folder); } } }, null); } function toggleConstrains(constrains) { if(constrains.checked) { document.locked_img.src = "ImageManager/locked.gif"; checkConstrains('width') } else { document.locked_img.src = "ImageManager/unlocked.gif"; } } function checkConstrains(changed) { //alert(document.form1.constrain_prop); var constrained = document.form1.constrain_prop.checked; if(constrained) { var orginal_width = parseInt(document.form1.orginal_width.value); var orginal_height = parseInt(document.form1.orginal_height.value); var width = parseInt(document.form1.f_width.value); var height = parseInt(document.form1.f_height.value); if(orginal_width > 0 && orginal_height > 0) { if(changed == 'width' && width > 0) { document.form1.f_height.value = parseInt((width/orginal_width)*orginal_height); } if(changed == 'height' && height > 0) { document.form1.f_width.value = parseInt((height/orginal_height)*orginal_width); } } } } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function P7_Snap() { //v2.62 by PVII var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=P7_Snap.arguments;a=parseInt(a); for (k=0; k<(args.length-3); k+=4) if ((g=MM_findObj(args[k]))!=null) { el=eval(MM_findObj(args[k+1])); a=parseInt(args[k+2]);b=parseInt(args[k+3]); x=0;y=0;ox=0;oy=0;p="";tx=1;da="document.all['"+args[k]+"']"; if(document.getElementById) { d="document.getElementsByName('"+args[k]+"')[0]"; if(!eval(d)) {d="document.getElementById('"+args[k]+"')";if(!eval(d)) {d=da;}} }else if(document.all) {d=da;} if (document.all || document.getElementById) { while (tx==1) {p+=".offsetParent"; if(eval(d+p)) {x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop")); }else{tx=0;}} ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);var tw=x+ox+y+oy; if(tw==0 || (navigator.appVersion.indexOf("MSIE 4")>-1 && navigator.appVersion.indexOf("Mac")>-1)) { ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top); }else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10; a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b; x=document.body.scrollLeft + event.clientX + bx; y=document.body.scrollTop + event.clientY;}} }else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd=""; for(var s=0;s<q0.length;s++) {dd='document.'+q0[s].name; if(eval(dd+'.document.'+args[k])) {x+=eval(dd+'.left');y+=eval(dd+'.top');break;}}} if(el) {e=(document.layers)?el:el.style; var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b); if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)>4){xx+="px";yy+="px";} if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){ xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin); xx+="px";yy+="px";}e.left=xx;e.top=yy;}} } function MM_showHideLayers() { //v6.0 var i,p,v,obj,args=MM_showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2]; if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; } obj.visibility=v; } } function changeLoadingStatus(state) { var statusText = null; if(state == 'load') { statusText = 'Loading Images'; } else if(state == 'upload') { statusText = 'Uploading Files'; } if(statusText != null) { var obj = MM_findObj('loadingStatus'); if (obj != null && obj.innerHTML != null) obj.innerHTML = statusText; MM_showHideLayers('loading','','show') } } function refresh() { var selection = document.forms[0].dirPath; updateDir(selection); } //--> </script> </head> <body onload="Init(); P7_Snap('dirPath','loading',120,70);"> <div class="title">Insert Image</div> <form action="ImageManager/images.php" name="form1" method="post" target="imgManager" enctype="multipart/form-data"> <div id="loading" style="position:absolute; left:200px; top:130px; width:184px; height:48px; z-index:1" class="statusLayer"> <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td><div align="center"><span id="loadingStatus" class="statusText">Loading Images</span><img src="ImageManager/dots.gif" width="22" height="12"></div></td> </tr> </table> </div> <table width="100%" border="0" align="center" cellspacing="2" cellpadding="2"> <tr> <td align="center"> <fieldset> <legend>Image Manager</legend> <table width="99%" align="center" border="0" cellspacing="2" cellpadding="2"> <tr> <td><table border="0" cellspacing="1" cellpadding="3"> <tr> <td>Directory</td> <td> <select name="dirPath" id="dirPath" style="width:30em" onChange="updateDir(this)"> <option value="/">/</option> <?php if($no_dir == false) { dirs($BASE_DIR,''); } ?> </select> </td> <td class="buttonOut" onMouseOver="pviiClassNew(this,'buttonHover')" onMouseOut="pviiClassNew(this,'buttonOut')"> <a href="#" onClick="javascript:goUpDir();"><img src="ImageManager/btnFolderUp.gif" width="15" height="15" border="0" alt="Up"></a></td> <? if ($SAFE_MODE == false) { ?> <td><div class="separator"></div></td> <td class="buttonOut" onMouseOver="pviiClassNew(this,'buttonHover')" onMouseOut="pviiClassNew(this,'buttonOut')"> <a href="#" onClick="javascript:newFolder();"><img src="ImageManager/btnFolderNew.gif" width="15" height="15" border="0" alt="New Folder"></a></td> <? } ?> </tr> </table></td> </tr> <tr> <td align="center" bgcolor="white"><div name="manager" class="manager"> <iframe src="ImageManager/images.php" name="imgManager" id="imgManager" width="520" height="150" marginwidth="0" marginheight="0" align="top" scrolling="auto" frameborder="0" hspace="0" vspace="0" background="white"></iframe> </div> </td> </tr> </table> </fieldset></td> </tr> <tr> <td><table border="0" align="center" cellpadding="2" cellspacing="2"> <tr> <td nowrap><div align="right">Image File </div></td> <td><input name="url" id="f_url" type="text" style="width:20em" size="30"></td> <td rowspan="3"> </td> <td><div align="right">Width </div></td> <td><input name="width" id="f_width" type="text" size="5" style="width:4em" onChange="javascript:checkConstrains('width');"></td> <td rowspan="2"><img src="ImageManager/locked.gif" name="locked_img" width="25" height="32" id="locked_img" alt="Locked"></td> <td rowspan="3"> </td> <td><div align="right">V Space</div></td> <td><input name="vert" id="f_vert" type="text" size="5" style="width:4em"></td> </tr> <tr> <td nowrap><div align="right">Alt </div></td> <td><input type="text" style="width:20em" name="alt" id="f_alt"></td> <td><div align="right">Height </div></td> <td><input name="height" id="f_height" type="text" size="5" style="width:4em" onChange="javascript:checkConstrains('height');"></td> <td><div align="right">H Space</div></td> <td><input name="horiz" id="f_horiz" type="text" size="5" style="width:4em"></td> </tr> <tr> <td><div align="right">Upload </div></td> <td><input type="file" name="upload" id="upload"> <input type="submit" style="width:5em" value="Upload" onClick="javascript:changeLoadingStatus('upload');" /> </td> <td><div align="right">Align</div></td> <td colspan="2"><select name="align" ID="f_align" style="width:7em"> <OPTION id="optNotSet" value=""> Not set </OPTION> <OPTION id="optLeft" value="left"> Left </OPTION> <OPTION id="optRight" value="right"> Right </OPTION> <OPTION id="optTexttop" value="textTop"> Texttop </OPTION> <OPTION id="optAbsMiddle" value="absMiddle"> Absmiddle </OPTION> <OPTION id="optBaseline" value="baseline" SELECTED> Baseline </OPTION> <OPTION id="optAbsBottom" value="absBottom"> Absbottom </OPTION> <OPTION id="optBottom" value="bottom"> Bottom </OPTION> <OPTION id="optMiddle" value="middle"> Middle </OPTION> <OPTION id="optTop" value="top"> Top </OPTION> </select></td> <td><div align="right">Border</div></td> <td><input name="border" id="f_border" type="text" size="5" style="width:4em"></td> </tr> <tr> <td colspan="3"> </td> <td><div align="right"> <input type="hidden" name="orginal_width" id="orginal_width"> <input type="hidden" name="orginal_height" id="orginal_height"> <input type="checkbox" name="constrain_prop" id="constrain_prop" checked onClick="javascript:toggleConstrains(this);"> </div></td> <td colspan="5">Constrain Proportions</td> </tr> </table> </td> </tr> <tr> <td><div style="text-align: right;"> <hr /> <button type="button" name="ok" onclick="return refresh();">Refresh</button> <button type="button" name="ok" onclick="return onOK();">OK</button> <button type="button" name="cancel" onclick="return onCancel();">Cancel</button> </div></td> </tr> </table> </form> </body> </html>