[ Index ] |
|
Code source de e107 0.7.8 |
1 <?php 2 // ================================================ 3 // tinymce PHP WYSIWYG editor control 4 // ================================================ 5 // Image library dialog 6 // ================================================ 7 // Developed: j-cons.com, mail@j-cons.com 8 // Copyright: j-cons (c)2004 All rights reserved. 9 // ------------------------------------------------ 10 // www.j-cons.com 11 // ================================================ 12 // $Revision: 1.8 $Date: 2004/10/04 13 // ================================================ 14 // 15 // $Source: /cvsroot/e107/e107_0.7/e107_handlers/tiny_mce/plugins/ibrowser/ibrowser.php,v $ 16 // $Revision: 1.8 $ 17 // $Date: 2006/10/24 13:39:45 $ 18 // $Author: mrpete $ 19 // +----------------------------------------------------------------------------+ 20 // Major Re-work by CaMer0n 21 22 23 // unset $tinyMCE_imglib_include 24 require_once ("../../../../class2.php"); 25 if (!defined('e107_INIT')) { exit; } 26 unset($tinyMCE_imglib_include); 27 28 // include image library config settings 29 include 'config.php'; 30 31 $request_uri = urldecode(empty($_POST['request_uri'])?(empty($_GET['request_uri'])?'':$_GET['request_uri']):$_POST['request_uri']); 32 33 // if set include file specified in $tinyMCE_imglib_include 34 if (!empty($tinyMCE_imglib_include)) 35 { 36 include $tinyMCE_imglib_include; 37 } 38 39 40 $imglib = isset($_POST['lib'])?$_POST['lib']:''; 41 if (empty($imglib) && isset($_GET['lib'])) $imglib = $_GET['lib']; 42 43 $value_found = false; 44 // callback function for preventing listing of non-library directory 45 function is_array_value($value, $key, $_imglib) 46 { 47 global $value_found; 48 if (is_array($value)) array_walk($value, 'is_array_value',$_imglib); 49 if ($value == $_imglib){ 50 $value_found=true; 51 } 52 } 53 array_walk($tinyMCE_imglibs, 'is_array_value',$imglib); 54 55 if (!$value_found || empty($imglib)) 56 { 57 $imglib = $tinyMCE_imglibs[0]['value']; 58 } 59 $lib_options = liboptions($tinyMCE_imglibs,'',$imglib); 60 61 62 $img = isset($_POST['imglist'])? $_POST['imglist']:''; 63 64 $preview = e_IMAGE."generic/blank.gif"; 65 66 $errors = array(); 67 68 ?> 69 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 70 <html> 71 <head> 72 <title>{$lang_ibrowser_title}</title> 73 <script type="text/javaScript" src="../../tiny_mce_popup.js"></script> 74 <meta http-equiv="Pragma" content="no-cache"> 75 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET ?>" /> 76 <script type="text/javascript"> 77 // click ok - select picture or save changes 78 function selectClick() { 79 80 // if (validateParams()) { 81 if (document.forms[0].src.value !='') { 82 83 var src = document.forms[0].src.value; 84 var alt = document.forms[0].alt.value; 85 var border = document.forms[0].border.value; 86 var width = document.forms[0].width.value; 87 var height = document.forms[0].height.value; 88 89 var margleft = document.forms[0].margin_left.value; 90 var margright = document.forms[0].margin_right.value; 91 var margtop = document.forms[0].margin_top.value; 92 var margbottom = document.forms[0].margin_bottom.value; 93 94 var cssfloat = document.forms[0].align.options[document.forms[0].align.selectedIndex].value; 95 var css_style = ""; 96 97 css_style = 'width:' + width + 'px; height:' + height + 'px; border:' + border + 'px solid black; '; 98 css_style = (cssfloat) ? css_style + 'float: ' + cssfloat + '; ' : css_style; 99 css_style = (margleft != 0) ? css_style + 'margin-left:' + margleft + 'px; ' : css_style; 100 css_style = (margright != 0) ? css_style + 'margin-right:' + margright + 'px; ' : css_style; 101 css_style = (margtop != 0) ? css_style + 'margin-top:' + margtop + 'px; ' : css_style; 102 css_style = (margbottom != 0) ? css_style + 'margin-bottom:' + margbottom + 'px; ' : css_style; 103 104 var html = '<img src=\''+ src +'\' alt=\''+ alt +'\' style=\'' + css_style + '\' />'; 105 106 // alert(html); 107 tinyMCE.execCommand('mceInsertContent',false,html); 108 tinyMCEPopup.close(); 109 110 } else { 111 alert(tinyMCE.getLang('lang_ibrowser_error')+ ' : '+ tinyMCE.getLang('lang_ibrowser_errornoimg'));} 112 } 113 // } 114 115 // validate input values 116 function validateParams() { 117 // check numeric values for attributes 118 if (isNaN(parseInt(document.getElementById("width").value)) && document.getElementById("width").value != '') { 119 alert(tinyMCE.getLang('lang_ibrowser_error')+ ' : '+ tinyMCE.getLang('lang_ibrowser_error_width_nan')); 120 document.getElementById("width").focus(); 121 return false;} 122 123 if (isNaN(parseInt(document.getElementById("height").value)) && document.getElementById("height").value != '') { 124 alert(tinyMCE.getLang('lang_ibrowser_error')+ ' : '+ tinyMCE.getLang('lang_ibrowser_error_height_nan')); 125 document.getElementById("height").focus(); 126 return false;} 127 128 if (isNaN(parseInt(document.getElementById("border").value)) && document.getElementById("border").value != '') { 129 alert(tinyMCE.getLang('lang_ibrowser_error')+ ' : '+ tinyMCE.getLang('lang_ibrowser_error_border_nan')); 130 document.getElementById("border").focus(); 131 return false;} 132 133 if (isNaN(parseInt(document.getElementById("hspace").value)) && document.getElementById("hspace").value != '') { 134 alert(tinyMCE.getLang('lang_ibrowser_error')+ ' : '+ tinyMCE.getLang('lang_ibrowser_error_hspace_nan')); 135 document.getElementById("hspace").focus(); 136 return false;} 137 138 if (isNaN(parseInt(document.getElementById("vspace").value)) && document.getElementById("vspace").value != '') { 139 alert(tinyMCE.getLang('lang_ibrowser_error')+ ' : '+ tinyMCE.getLang('lang_ibrowser_error_vspace_nan')); 140 document.getElementById("vspace").focus(); 141 return false;} 142 143 return true; 144 145 } 146 147 // delete image 148 function deleteClick() 149 { 150 if (document.libbrowser.imglist.selectedIndex>=0) 151 { 152 if (confirm(tinyMCE.getLang('lang_ibrowser_confirmdelete'))) 153 { 154 document.libbrowser.lib_action.value = 'delete'; 155 document.libbrowser.submit(); 156 } 157 } 158 } 159 160 // set picture attributes on change 161 function selectChange(obj) 162 { 163 var formObj = document.forms[0]; 164 // formObj.src.value = '<?php echo $tinyMCE_base_url.$imglib?>'+obj.options[obj.selectedIndex].value; 165 // formObj.width.value = obj.options[obj.selectedIndex].img_width; 166 // formObj.height.value = obj.options[obj.selectedIndex].img_height; 167 // formObj.size.value = obj.options[obj.selectedIndex].f_size; 168 // formObj.alt.value = obj.options[obj.selectedIndex].value; 169 var splitvar = obj.options[obj.selectedIndex].value.split("|"); 170 formObj.src.value = '<?php echo $tinyMCE_base_url.$imglib?>'+splitvar[3]; 171 formObj.width.value = splitvar[0]; 172 formObj.height.value = splitvar[1]; 173 formObj.size.value = splitvar[2]; 174 formObj.alt.value = splitvar[3]; 175 176 owidth = eval(formObj.width.value); 177 oheight = eval(formObj.height.value); 178 updateStyle() 179 } 180 181 // init functions 182 function init() 183 { 184 // if existing image (image properties) 185 if (tinyMCE.getWindowArg('src') != '') { 186 187 var formObj = document.forms[0]; 188 for (var i=0; i<document.forms[0].align.options.length; i++) { 189 if (document.forms[0].align.options[i].value == tinyMCE.imgElement.style.cssFloat) 190 document.forms[0].align.options.selectedIndex = i; 191 } 192 193 formObj.src.value = tinyMCE.getWindowArg('src'); 194 formObj.alt.value = tinyMCE.imgElement.alt; 195 formObj.border.value = tinyMCE.imgElement.style.borderLeftWidth.replace('px',''); 196 formObj.width.value = tinyMCE.imgElement.style.width.replace('px',''); 197 formObj.height.value = tinyMCE.imgElement.style.height.replace('px',''); 198 formObj.margin_left.value = tinyMCE.imgElement.style.marginLeft.replace('px',''); 199 formObj.margin_right.value = tinyMCE.imgElement.style.marginRight.replace('px',''); 200 formObj.margin_top.value = tinyMCE.imgElement.style.marginTop.replace('px',''); 201 formObj.margin_bottom.value = tinyMCE.imgElement.style.marginBottom.replace('px',''); 202 203 formObj.size.value = 'n/a'; 204 owidth = eval(formObj.width.value); 205 oheight = eval(formObj.height.value); 206 207 frameID = "imgpreview"; 208 //document.all(frameID).src = tinyMCE.getWindowArg('src'); 209 document.getElementById("imgpreview").src = tinyMCE.getWindowArg('src'); 210 updateStyle(); 211 } 212 213 window.focus(); 214 } 215 216 // updates style settings 217 function updateStyle() { 218 // if (validateParams()) { 219 // alert('val=' + document.getElementById('wrap').style.marginLeft); 220 221 222 document.getElementById('wrap').style.marginLeft = document.libbrowser.margin_left.value; 223 document.getElementById('wrap').style.marginRight = document.libbrowser.margin_right.value; 224 document.getElementById('wrap').style.marginTop = document.libbrowser.margin_top.value; 225 document.getElementById('wrap').style.marginBottom = document.libbrowser.margin_bottom.value; 226 document.getElementById('wrap').style.cssFloat = document.libbrowser.align.value; 227 document.getElementById('wrap').style.borderWidth = document.libbrowser.border.value; 228 document.getElementById('wrap').alt = document.libbrowser.alt.value; 229 // } 230 } 231 232 // change picture dimensions 233 var oheight; // original width 234 var owidth; // original height 235 236 function changeDim(sel) { 237 var formObj = document.forms[0]; 238 if (formObj.src.value!=''){ 239 f=oheight/owidth; 240 if (sel==0){ 241 formObj.width.value = Math.round(formObj.height.value/f); 242 } else { 243 formObj.height.value= Math.round(formObj.width.value*f);} 244 } 245 } 246 247 function resetDim() { 248 var formObj = document.forms[0]; 249 formObj.width.value = owidth; 250 formObj.height.value = oheight; 251 } 252 function show_image(obj) { 253 var formObj = document.forms[0]; 254 var splitvar = obj.options[obj.selectedIndex].value.split("|"); 255 formObj.src.value = splitvar[3]; 256 // alert('<?php echo $tinyMCE_base_url.$imglib?>' + formObj.src.value); 257 if (splitvar[3]) imgpreview.location.href = '<?php echo $tinyMCE_base_url.$imglib?>' + formObj.src.value; 258 } 259 </script> 260 </head> 261 <body onLoad="init();"> 262 <script type="text/javascript"> 263 window.name = 'imglibrary'; 264 </script> 265 <form name="libbrowser" method="post" action="ibrowser.php?request_uri=<?php echo $_GET['request_uri']?>" enctype="multipart/form-data" target="imglibrary"> 266 <input type="hidden" name="request_uri" value="<?php echo urlencode($request_uri)?>" /> 267 <input type="hidden" name="lib_action" value="" /> 268 <fieldset style= "padding: 5 5 5 5; margin-top: -5px;"> 269 <legend>{$lang_ibrowser_img_sel}</legend> 270 <table width="440" border="0" cellspacing="0" cellpadding="0"> 271 <tr> 272 <td><table width="100%" border="0" cellpadding="2" cellspacing="0"> 273 <tr> 274 <td width="210"><strong>{$lang_ibrowser_library}:</strong></td> 275 <td width="5"> </td> 276 <td width="210"><strong>{$lang_ibrowser_preview}:</strong></td> 277 </tr> 278 <tr> 279 <td><select name="lib" size="1" style="width: 100%;" onChange="libbrowser.submit();"> 280 <?php echo $lib_options?> 281 </select></td> 282 <td> </td> 283 <td width="210" rowspan="3" align="left" valign="top"><iframe name="imgpreview" id="imgpreview" class="previewWindow" src="<?php echo $preview?>" style="width: 100%; height: 100%;" scrolling="Auto" marginheight="0" marginwidth="0" frameborder="0"></iframe> 284 </td> 285 </tr> 286 <tr> 287 <td><strong>{$lang_ibrowser_images}:</strong></td> 288 <td> </td> 289 </tr> 290 <tr> 291 <td><?php 292 if (!preg_match('#/$#', $_SERVER['DOCUMENT_ROOT'])){ 293 // $_root = $_SERVER['DOCUMENT_ROOT'].'/'; 294 $_root = e_BASE; 295 } else { 296 // $_root = $_SERVER['DOCUMENT_ROOT']; 297 $_root = e_BASE; 298 } 299 // $d = @dir($_root.$imglib); 300 // echo "<Br >dir=".$_root.$imglib; 301 $d = @dir(e_BASE.$imglib); 302 303 ?> 304 <select name="imglist" size="15" style="width: 100%;" 305 onChange="show_image(this);selectChange(this);" ondblclick="selectClick();"> 306 <?php 307 if ($d) 308 { 309 $i = 0; 310 while (false !== ($entry = $d->read())) { 311 $ext = strtolower(substr(strrchr($entry,'.'), 1)); 312 if (is_file($_root.$imglib.$entry) && in_array($ext,$tinyMCE_valid_imgs)) 313 { 314 $arr_tinyMCE_image_files[$i][file_name] = $entry; 315 $i++; 316 } 317 } 318 $d->close(); 319 // sort the list of image filenames alphabetically. 320 sort($arr_tinyMCE_image_files); 321 for($k=0; $k<count($arr_tinyMCE_image_files); $k++){ 322 $entry = $arr_tinyMCE_image_files[$k][file_name]; 323 $size = getimagesize($tinyMCE_base_url.$imglib.$entry); 324 $fsize = filesize($_root.$imglib.$entry); 325 ?> 326 <option value="<?php echo $size[0]; ?>|<?php echo $size[1]; ?>|<?php echo filesize_h($fsize,2); ?>|<?php echo $entry?>" <?php echo ($entry == $img)?'selected':''?>><?php echo $entry?></option> 327 <?php 328 } 329 } 330 else 331 { 332 $errors[] = '{$lang_ibrowser_errornodir}'; 333 } 334 ?> 335 </select></td> 336 <td> </td> 337 </tr> 338 <tr> 339 <td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0"> 340 <tr> 341 <td width="40%"><?php if ($tinyMCE_img_delete_allowed) { ?> 342 <input type="button" value="{$lang_ibrowser_delete}" class="bt" onClick="deleteClick();" /> 343 <?php } ?></td> 344 <td align="right"><input type="button" name="selectbt" value="{$lang_ibrowser_select}" class="bt" onClick="selectClick();" /> 345 <input type="button" value="{$lang_ibrowser_cancel}" class="bt" onClick="window.close();" /></td> 346 </tr> 347 </table></td> 348 </tr> 349 </table></td> 350 </tr> 351 </table> 352 </fieldset> 353 <fieldset style= "padding: 5 5 5 5; margin-top: 10px;"> 354 <legend>{$lang_ibrowser_img_info}</legend> 355 <table style='width:440px;border:0px' cellspacing="0" cellpadding="0"> 356 <tr> 357 <td><table style='width:440px;border:0px' cellpadding="2" cellspacing="0"> 358 <tr> 359 <td style='width:80px'>{$lang_ibrowser_src}:</td> 360 <td colspan="5"><input name="src" type="text" id="src" value="" style="width: 100%;" /></td> 361 </tr> 362 <tr> 363 <td>{$lang_ibrowser_alt}:</td> 364 <td colspan="5"><input name="alt" type="text" id="alt" value="" style="width: 100%;" onChange="updateStyle()" /></td> 365 </tr> 366 <tr> 367 <td>{$lang_ibrowser_align}:</td> 368 <td colspan="3"><select name="align" style="width: 100%;" onChange="updateStyle()"> 369 <option value="">{$lang_insert_image_align_default}</option> 370 <option value="left">{$lang_insert_image_align_left}</option> 371 <option value="right">{$lang_insert_image_align_right}</option> 372 </select></td> 373 <td width="5"> </td> 374 <td rowspan="8" align="left" valign="top" style='width:210px;overflow:hidden'> 375 <div id="stylepreview" style="padding:10px; width: 200px; height:100%; overflow:hidden; background-color:#ffffff; font-size:8px" class="previewWindow"> 376 <p><img id="wrap" src="images/textflow.gif" width="45" height="45" alt="" style="border:0px; float:right; margin-left:0px; margin-right:0px; margin-top:0px; margin-bottom:0px" />Lorem 377 ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum 378 edipiscing elit, sed diam nonummy nibh euismod tincidunt ut 379 laoreet dolore magna aliquam erat volutpat.Loreum ipsum edipiscing 380 elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore 381 magna aliquam erat volutpat. Ut wisi enim ad minim veniam, 382 quis nostrud exercitation ullamcorper suscipit. Lorem ipsum, 383 Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing 384 elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore 385 magna aliquam erat volutpat.</p> 386 </div> 387 </td> 388 </tr> 389 <tr> 390 <td>{$lang_ibrowser_size}:</td> 391 <td colspan="3"><input name="size" type="text" id="size" value="" readonly="true" style="width: 100%;" /></td> 392 <td> </td> 393 </tr> 394 <tr> 395 <td>{$lang_ibrowser_height}:</td> 396 <td width="40"><input name="height" type="text" id="height" value="" size="5" maxlength="4" style="text-align: right;" onChange="changeDim(0)" /></td> 397 <td width="25" rowspan="2" align="left" valign="middle"><a href="#" onClick="resetDim();" ><img src="images/constrain.gif" alt="{$lang_ibrowser_reset}" width="22" height="29" border="0"></a></td> 398 <td rowspan="2"> </td> 399 <td> </td> 400 </tr> 401 <tr> 402 <td>{$lang_ibrowser_width}:</td> 403 <td><input name="width" type="text" id="width" value="" size="5" maxlength="4" style="text-align: right;" onChange="changeDim(1)" /></td> 404 <td> </td> 405 </tr> 406 <tr> 407 <td>{$lang_ibrowser_border}:</td> 408 <td colspan="3"> 409 <input name="border" type="text" id="border" value="0" size="5" maxlength="4" style="text-align: right;" onchange="updateStyle()" />px 410 </td> 411 <td> </td> 412 </tr> 413 <tr> 414 <td>Margin-left:</td> 415 <td colspan="3"><input name="margin_left" type="text" id="margin_left" value="0" size="5" maxlength="4" style="text-align: right;" onchange="updateStyle()" />px 416 </td> 417 <td> </td> 418 </tr> 419 <tr> 420 <td>Margin-Right:</td> 421 <td colspan="3"><input name="margin_right" type="text" id="margin_right" value="0" size="5" maxlength="4" style="text-align: right;" onchange="updateStyle()" />px 422 </td> 423 <td> </td> 424 </tr> 425 426 <tr> 427 <td>Margin-Top:</td> 428 <td colspan="3"><input name="margin_top" type="text" id="margin_top" value="0" size="5" maxlength="4" style="text-align: right;" onchange="updateStyle()" />px 429 </td> 430 <td> </td> 431 </tr> 432 <tr> 433 <td>Margin-Bottom:</td> 434 <td colspan="3"><input name="margin_bottom" type="text" id="margin_bottom" value="0" size="5" maxlength="4" style="text-align: right;" onchange="updateStyle()" />px 435 </td> 436 <td> </td> 437 </tr> 438 439 </table></td> 440 </tr> 441 </table> 442 </fieldset> 443 444 </form> 445 </body> 446 </html> 447 <?php 448 function liboptions($arr, $prefix = '', $sel = '') 449 { 450 $buf = ''; 451 foreach($arr as $lib) { 452 $buf .= '<option value="'.$lib['value'].'"'.(($lib['value'] == $sel)?' selected':'').'>'.$prefix.$lib['text'].'</option>'."\n"; 453 } 454 return $buf; 455 } 456 457 458 // Return the human readable size of a file 459 // @param int $size a file size 460 // @param int $dec a number of decimal places 461 462 function filesize_h($size, $dec = 1) 463 { 464 $sizes = array('byte(s)', 'kb', 'mb', 'gb'); 465 $count = count($sizes); 466 $i = 0; 467 468 while ($size >= 1024 && ($i < $count - 1)) { 469 $size /= 1024; 470 $i++; 471 } 472 473 return round($size, $dec) . ' ' . $sizes[$i]; 474 } 475 476 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Apr 1 01:23:32 2007 | par Balluche grâce à PHPXref 0.7 |