[ Index ]
 

Code source de e107 0.7.8

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/e107_handlers/tiny_mce/plugins/ibrowser/ -> ibrowser.php (source)

   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">&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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">&nbsp;</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>&nbsp;</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">&nbsp;</td>
 399              <td>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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  ?>


Généré le : Sun Apr 1 01:23:32 2007 par Balluche grâce à PHPXref 0.7