<?PHP //this plugin only use the relativ webpath to the picturefolder //default ~ /Xinha/plugins/InsertPicture/demo_pictures/ strstr( PHP_OS, "WIN") ? $strPathSeparator = "\\" : $strPathSeparator = "/"; if (isset($_REQUEST['picturepath'])) { $PicturePath = $_REQUEST['picturepath']; $AInsertPicturePath = explode ('/', dirname($_SERVER['PHP_SELF'])); $ALocalInsertPicturePath = explode($strPathSeparator, dirname(__FILE__)); $AtheRootPath = array_values (array_diff ($ALocalInsertPicturePath, $AInsertPicturePath)); $RootPath = implode($strPathSeparator, $AtheRootPath); $LocalPicturePath = str_replace('http://'.$_SERVER['HTTP_HOST'], "", $PicturePath); $LocalPicturePath = str_replace('/', $strPathSeparator, $LocalPicturePath); $LocalPicturePath = $RootPath.$LocalPicturePath; $LocalPicturePath = dirname(__FILE__).$strPathSeparator.'demo_pictures'.$strPathSeparator; //$LocalPicturePath = realpath('../../../../images/content/').$strPathSeparator; } $limitedext = array(".gif",".jpg",".png",".jpeg"); //Extensions you want files uploaded limited to. $limitedsize = "1000000"; //size limit in bytes $message = ""; function formatSize($size) { if($size < 1024) return $size.' bytes'; else if($size >= 1024 && $size < 1024*1024) return sprintf('%01.2f',$size/1024.0).' Kb'; else return sprintf('%01.2f',$size/(1024.0*1024)).' Mb'; } $DestFileName = ""; if (isset($_FILES['file'])) { $file = $_FILES['file']; $ext = strrchr($file['name'],'.'); if (!in_array($ext,$limitedext)) $message = "The file you are uploading doesn't have the correct extension."; else if (file_exists($LocalPicturePath.$file['name'])) $message = "The file you are uploading already exists."; else if ($file['size'] > $limitedsize) $message = "The file you are uploading is to big. The max Filesize is</span><span> ".formatSize($limitedsize)."."; else copy($file['tmp_name'], $LocalPicturePath.$file['name']); $DestFileName = $file['name']; } ?> <html> <head> <title>Insert Image</title> <link rel="stylesheet" type="text/css" href="../../popups/popup.css" /> <script type="text/javascript" src="../../popups/popup.js"></script> <script type="text/javascript"> window.resizeTo(500, 490); var Xinha = window.opener.Xinha; function i18n(str) { return (Xinha._lc(str, 'Xinha')); } function Init() { __dlg_translate("InsertPicture"); __dlg_init(); // Make sure the translated string appears in the drop down. (for gecko) document.getElementById("f_align").selectedIndex = 0; document.getElementById("f_align").selectedIndex = document.getElementById("f_align").selectedIndex; var param = window.dialogArguments; if (param) { document.getElementById("f_url").value = param["f_url"]; document.getElementById("f_alt").value = param["f_alt"]; document.getElementById("f_border").value = param["f_border"]; document.getElementById("f_align").value = param["f_align"]; document.getElementById("f_vert").value = (param["f_vert"]!="-1") ? param["f_vert"] : ""; document.getElementById("f_horiz").value = (param["f_horiz"]!="-1") ? param["f_horiz"] : ""; document.getElementById("f_height").value = param["f_height"]; document.getElementById("f_width").value = param["f_width"]; window.ipreview.location.replace(param.f_url); } document.getElementById("f_url").focus(); document.getElementById("filelist").selectedIndex = document.getElementById("filelist").selectedIndex; <?php If ($DestFileName<>"") echo "CopyToURL(\"".$PicturePath.$DestFileName."\");" ?> } function onOK() { var required = { "f_url": i18n("You must enter the URL") }; for (var i in required) { var el = document.getElementById(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 = document.getElementById(id); param[id] = el.value; } __dlg_close(param); return false; } function onUpload() { var required = { "file": i18n("Please select a file to upload.") }; for (var i in required) { var el = document.getElementById(i); if (!el.value) { alert(required[i]); el.focus(); return false; } } return true; } function onCancel() { __dlg_close(null); return false; } function onPreview() { var f_url = document.getElementById("f_url"); var url = f_url.value; if (!url) { alert(i18n("You must enter the URL")); f_url.focus(); return false; } if (document.all) { window.ipreview.location.replace('viewpicture.html?'+url); } else { window.ipreview.location.replace(url); } return false; } var img = new Image(); function imgWait() { waiting = window.setInterval("imgIsLoaded()", 1000) } function imgIsLoaded() { if(img.width > 0) { window.clearInterval(waiting) document.getElementById("f_width").value = img.width; document.getElementById("f_height").value = img.height; } } function CopyToURL(imgName) { document.getElementById("f_url").value = imgName; onPreview(); img.src = imgName; img.onLoad = imgWait() } function openFile() { window.open(document.getElementById("f_url").value,'',''); } </script> </head> <body class="dialog" onload="Init()"> <div class="title">Insert Image</div> <table border="0" width="100%" style="padding: 0px; margin: 0px"> <tbody> <tr> <td>Images on the Server:<?php /*echo $LocalPicturePath*/ ?><br> <select id="filelist" name="filelist" style="width:200" size="10" onClick="CopyToURL(this[this.selectedIndex].value);"> <?php $d = @dir($LocalPicturePath); while (false !== ($entry = $d->read())) { if(substr($entry,0,1) != '.') { //not a dot file or directory if ($entry == $DestFileName) echo '<OPTION value="' . $PicturePath.$entry. '" selected="selected">' . $entry . '(' . formatSize(filesize($LocalPicturePath.'\\'.$entry)) .')</OPTION>'; else echo '<OPTION value="' . $PicturePath.$entry. '">' . $entry . '(' . formatSize(filesize($LocalPicturePath.'\\'.$entry)) .')</OPTION>'; } } $d->close(); ?> </select> <form method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="localpicturepath" value="<?php echo $LocalPicturePath ?>"> <input type="hidden" name="picturepath" value="<?php echo $PicturePath ?>"> <input type="file" name="file" id="file" size="30"><br> <button type="submit" name="ok" onclick="onUpload();">Upload file</button><br> <span><?php echo $message ?></span> </form> </td> <td style="vertical-align: middle;" width="200" height="230"> <span>Image Preview:</span> <a href="#" onClick="javascript:openFile();"title=" Open file in new window"><img src="img/btn_open.gif" width="18" height="18" border="0" title="Open file in new window" /></a><br /> <iframe name="ipreview" id="ipreview" frameborder="0" style="border : 1px solid gray;" height="200" width="200" src=""></iframe> </td> </tr> </tbody> </table> <form action="" method="get"> <input type="hidden" name="localpicturepath" value="<?php echo $LocalPicturePath ?>"> <input type="hidden" name="picturepath" value="<?php echo $PicturePath ?>"> <table border="0" width="100%" style="padding: 0px; margin: 0px"> <tbody> <tr> <td style="width: 7em; text-align: right">Image URL:</td> <td><input type="text" name="url" id="f_url" style="width:75%" title="Enter the image URL here" value="<?php echo $PicturePath.$DestFileName ?>"/> <button name="preview" onclick="return onPreview();" title="Preview the image in a new window">Preview</button> </td> </tr> <tr> <td style="width: 7em; text-align: right">Alternate text:</td> <td><input type="text" name="alt" id="f_alt" style="width:100%" title="For browsers that don't support images" /></td> </tr> </tbody> </table> <p /> <fieldset style="float: left; margin-left: 5px;"> <legend>Layout</legend> <div class="space"></div> <div class="fl" style="width: 6em;">Alignment:</div> <select size="1" name="align" id="f_align" title="Positioning of this image"> <option value="" >Not set</option> <option value="left" >Left</option> <option value="right" >Right</option> <option value="texttop" >Texttop</option> <option value="absmiddle" >Absmiddle</option> <option value="baseline" >Baseline</option> <option value="absbottom" >Absbottom</option> <option value="bottom" >Bottom</option> <option value="middle" >Middle</option> <option value="top" >Top</option> </select> <p /> <div class="fl" style="width: 6em;">Border thickness:</div> <input type="text" name="border" id="f_border" size="5" title="Leave empty for no border" /> <div class="space"></div> </fieldset> <fieldset style="float: left; margin-left: 5px;"> <legend>Size</legend> <div class="space"></div> <div class="fl" style="width: 5em;">Width:</div> <input type="text" name="width" id="f_width" size="5" title="Leave empty for not defined" /> <p /> <div class="fl" style="width: 5em;">Height:</div> <input type="text" name="height" id="f_height" size="5" title="Leave empty for not defined" /> <div class="space"></div> </fieldset> <fieldset style="float:right; margin-right: 5px;"> <legend>Spacing</legend> <div class="space"></div> <div class="fr" style="width: 5em;">Horizontal:</div> <input type="text" name="horiz" id="f_horiz" size="5" title="Horizontal padding" /> <p /> <div class="fr" style="width: 5em;">Vertical:</div> <input type="text" name="vert" id="f_vert" size="5" title="Vertical padding" /> <div class="space"></div> </fieldset> <br clear="all" /> <div id="buttons"> <button type="submit" name="ok" onclick="return onOK();">OK</button> <button type="button" name="cancel" onclick="return onCancel();">Cancel</button> </div> </form> </body> </html>