ImageManager
[ class tree: ImageManager ] [ index: ImageManager ] [ all elements ]

Source for file editorFrame.php

Documentation is available at editorFrame.php

  1. <?php
  2.     /**
  3.      * The frame that contains the image to be edited.
  4.      * @author $Author: Wei Zhuo $
  5.      * @author $Author: Paul Moers <mail@saulmade.nl> $ - watermarking and replace code + several small enhancements <http://fckplugins.saulmade.nl>
  6.      * @version $Id: editorFrame.php 26 2004-03-31 02:35:21Z Wei Zhuo $
  7.      * @package ImageManager
  8.      */
  9.  
  10.     require_once('config.inc.php');
  11.     require_once('Classes/ImageManager.php');
  12.     require_once('Classes/ImageEditor.php');
  13.  
  14.     //default path is /
  15.     $relative '/';
  16.  
  17.     $manager new ImageManager($IMConfig);
  18.     $editor new ImageEditor($manager);
  19.  
  20.     // process any uploaded files
  21.     $imageRelative $manager->processUploads();
  22.  
  23.     // get image info and process any action
  24.     $imageInfo $editor->processImage($imageRelative);
  25.  
  26. ?>
  27. <!--[if IE]>
  28. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  29. <![endif]-->
  30. <html>
  31. <head>
  32. <title></title>
  33. <link href="assets/editorFrame.css" rel="stylesheet" type="text/css" />
  34. <script type="text/javascript" src="assets/wz_jsgraphics.js"></script>
  35. <script type="text/javascript" src="assets/wz_dragdrop.js"></script>
  36. <script type="text/javascript" src="assets/EditorContent.js"></script>
  37. <script type="text/javascript" src="assets/editorFrame.js"></script>
  38.  
  39. <style>
  40.  
  41.     /* for centering the image vertically in IE */
  42.     html, body
  43.     {
  44.         height: 100%;
  45.     }
  46.  
  47. </style>
  48.  
  49. <script type="text/javascript">
  50. // <![CDATA[
  51.  
  52.     var processedAction = "<?php echo $_GET['action']?>";
  53.  
  54.     if (processedAction == 'replace' && parent.old)
  55.     {
  56.         // reallow the user to close the editor window now uploading is done
  57.         parent.onbeforeunload = function () {parent.old();};
  58.     }
  59.  
  60.     // set function for the wz_dragdrop script to use when dragging
  61.     function my_DragFunc()
  62.     {
  63.         verifyBounds();
  64.     }
  65.  
  66.     // keep the watermark within the background
  67.     function verifyBounds()
  68.     {
  69.         var
  70.             orig = dd.elements.background,
  71.             floater = dd.elements.floater,
  72.             newX = floater.x,
  73.             newY = floater.y
  74.             ;
  75.  
  76.         if (floater.x < orig.x)
  77.         {
  78.             newX = orig.x;
  79.         }
  80.         else if (floater.x + floater.w > orig.x + orig.w)
  81.         {
  82.             newX = orig.x + (orig.w - floater.w);
  83.         }
  84.         if (floater.y < orig.y)
  85.         {
  86.             newY = orig.y;
  87.         }
  88.         else if (floater.y + floater.h > orig.y + orig.h)
  89.         {
  90.             newY = orig.y + (orig.h - floater.h);
  91.         }
  92.         if (newX != floater.x || newY != floater.y)
  93.         {
  94.             floater.moveTo(newX, newY);
  95.         }
  96.     }
  97.  
  98. // ]]>
  99. </script>
  100.  
  101.  
  102. <script type="text/javascript">
  103.  
  104.     var mode = "<?php echo $editor->getAction()?>" //crop, scale, measure
  105.     var currentImageFile = "<?php if(count($imageInfo)>0echo rawurlencode($imageInfo['file'])?>";
  106.  
  107.     if(window.top)
  108.     {
  109.         I18N = window.top.I18N;
  110.     }
  111.  
  112.     function i18n(str)
  113.     {
  114.         if(I18N)
  115.             return (I18N[str] || str);
  116.         else
  117.             return str;
  118.     };
  119.     
  120. </script>
  121.  
  122. <script type="text/javascript">
  123. <?php
  124.     if ($editor->isFileSaved(== 1)
  125.     {
  126. ?>
  127.     // Reload the images in the imageframe of the Manager :
  128.     // Is there a "imgManager" frame. 
  129.     if ((popupWindow = parent.opener.parent) && (imgManager = parent.opener.parent.document.getElementById("imgManager")))
  130.     {
  131.         // refresh it - so it shows the edited image.
  132.         imgManager.src = imgManager.src;
  133.     }
  134.     else
  135.     {
  136.         popupWindow = parent;
  137.     }
  138.     // Reload the images in the editor :
  139.     // base system is the FCKeditor?
  140.     if (popupWindow.opener.FCK)
  141.     {
  142.         editorFrame = popupWindow.opener.parent.document.getElementById(popupWindow.opener.FCK.Name + '___Frame');
  143.         // get document
  144.         if (editorDocument = popupWindow.opener.FCK.EditorDocument.body)
  145.         {
  146.             editorImages = editorDocument.getElementsByTagName("img");
  147.             for (i = 0; i < editorImages.length; i++)
  148.             {
  149.                 // reapply images their src to reload'm
  150.                 editorImages[i].src = editorImages[i].src;
  151.             }
  152.         }
  153.     }
  154.     // not found?
  155.     if (!editorImages)
  156.     {
  157.         alert(i18n("Error: Couldn't update editor window.\nAny image that was edited and saved will still be visible as the old version!\nPlease save and reload the editor content."));
  158.     }
  159.  
  160.     // save message
  161.     var message = i18n('File saved.');
  162. <?php
  163.     if ($editor->forcedNewName != false)
  164.     {
  165. ?>
  166.     message += '\n' + i18n('File name was changed into ') +  '<?php echo $editor->forcedNewName?>';
  167. <?php
  168.     }
  169. ?>
  170.     alert(message);
  171. <?php
  172.     }
  173.     else if ($editor->isFileSaved(== -1)
  174.     {
  175. ?>
  176.     alert(i18n('File was not saved.'));
  177. <?php
  178.     }
  179. ?>
  180.  
  181.     // show action buttons and current action's controls - were hidden during processing
  182.     if (processedAction != '')
  183.     {
  184.         var tools = parent.document.getElementById('tools_' + processedAction);
  185.         tools.style.display = 'block';
  186.         var buttons = parent.document.getElementById('buttons');
  187.         buttons.style.display = 'block';
  188.     }
  189.  
  190.  
  191.     // populating watermarks select box (excluding watermarks that are to big or became to big for the editted image)
  192.     watermarkBox = parent.document.getElementById("watermark_file");
  193.     imagesArray = new Array();
  194.     // first clear all its options
  195.     watermarkBox.options.length = 0;
  196. <?php
  197.     foreach($IMConfig['watermarks'as $watermark)
  198.     {
  199.         $watermarkInfo @getImageSize($IMConfig['base_dir'$watermark);
  200.         // populate
  201.         if ($watermarkInfo[0$imageInfo[width&& $watermarkInfo[1$imageInfo[height])
  202.         {
  203.             $pos strrpos(basename($watermark)".");
  204.             $filename substr(basename($watermark)0$pos);
  205.  
  206.             echo "watermarkBox.options[watermarkBox.options.length] = new Option('" basename($watermark"', '$filename');";
  207.             echo "watermarkBox.options[watermarkBox.options.length - 1].setAttribute('fullPath', '" $IMConfig['base_dir'$watermark "');";
  208.             echo "watermarkBox.options[watermarkBox.options.length - 1].setAttribute('x', $watermarkInfo[0]);";
  209.             echo "watermarkBox.options[watermarkBox.options.length - 1].setAttribute('y', $watermarkInfo[1]);";
  210.  
  211.             echo $filename "Preload = new Image(10, 10);";
  212.             echo $filename "Preload.src = '" $IMConfig['base_url'$watermark "';";
  213.         }
  214.         // first item unavailable?
  215.         else if ($watermark == $IMConfig['watermarks'][0])
  216.         {
  217.             echo "var firstWatermarkItemUnavailable = true;";
  218.         }
  219.  
  220.     }
  221. ?>
  222.     // no watermarks found? Show message instead of watermarking controls.
  223.     if (!watermarkBox.options[0])
  224.     {
  225.         parent.document.getElementById("watermarkControls").style.display = "none";
  226.         parent.document.getElementById("watermarkMessage").style.display = "block";
  227.  
  228.         var watermarkingEnabled = false;
  229.     }
  230.     // else just show the controls
  231.     else
  232.     {
  233.         parent.document.getElementById("watermarkControls").style.display = "block";
  234.         parent.document.getElementById("watermarkMessage").style.display = "none";
  235.  
  236.         var watermarkingEnabled = true;
  237.     }
  238.  
  239. </script>
  240.  
  241. </head>
  242.  
  243. <body>
  244. <div id="status"></div>
  245. <div id="ant" class="selection" style="visibility:hidden"><img src="img/spacer.gif" width="0" height="0" border="0" alt="" id="cropContent"></div>
  246. <?php if ($editor->isGDEditable(== -1?>
  247.     <div style="text-align:center; padding:10px;"><span class="error">GIF format is not supported, image editing not supported.</span></div>
  248. <?php ?>
  249. <table height="100%" width="100%">
  250.     <tr>
  251.         <td>
  252. <?php if(count($imageInfo&& is_file($imageInfo['fullpath'])) ?>
  253.  
  254.         <div id="background" name="background" style="margin: auto; width: <?php echo $imageInfo['width']?>px; height: <?php echo $imageInfo['height']?>px; background-image: url(<?php echo $imageInfo['src']?>);">
  255.             <img name="floater" id="floater" style="width: 150px; height: 150px; behavior: url('assets/pngbehavior.htc'); position: absolute" src="<?php echo  $IMConfig['base_url'$IMConfig['watermarks'][0]?>" />
  256.         </div>
  257.  
  258.         <span id="imgCanvas" name="imgCanvas" class="crop" style="display: none;"><img src="<?php echo $imageInfo['src']?><?php echo $imageInfo['dimensions']?> alt="" id="theImage" name="theImage" /></span>
  259.  
  260. <?php else ?>
  261.                 <span class="error">No Image Available</span>
  262. <?php ?>
  263.         </td>
  264.     </tr>
  265. </table>
  266.  
  267. <script type="text/javascript">
  268. // <![CDATA[
  269.  
  270.     if (watermarkingEnabled == true)
  271.     {
  272.         SET_DHTML("background"+NO_DRAG, "floater"+CURSOR_MOVE);
  273.         if (window.firstWatermarkItemUnavailable == true)
  274.         {
  275.             dd.elements.floater.swapImage(eval("window." + watermarkBox.options[0].value + "Preload.src"));
  276.         }
  277.         dd.elements.floater.resizeTo(watermarkBox.options[0].getAttribute("x"), watermarkBox.options[0].getAttribute("y"));
  278.         dd.elements.floater.hide();
  279.         verifyBounds();
  280.         dd.elements.floater.nimg.style.behavior = "url('assets/pngbehavior.htc')";
  281.  
  282. <?php
  283.     if (isset($_GET['action']))
  284.     {
  285.         if ($_GET['action'== "watermark")
  286.         {?>
  287.                 dd.elements.floater.show();
  288.         <?php }
  289.     }
  290. ?>
  291.     }
  292.     else
  293.     {
  294.         if (document.getElementById("floater"))
  295.         {
  296.             document.getElementById("floater").style.display = "none";
  297.         }
  298.     }
  299.  
  300.     // hiding parent processing message
  301.     parent.window.hideMessage();
  302.  
  303.     // make sure the slider of the watermark's opacity if at max
  304.     parent.window.updateSlider(100, 'watermark');
  305.  
  306. // ]]>
  307. </script>
  308. </body>
  309. </html>

Documentation generated on Thu, 12 Jun 2008 13:22:20 -0500 by phpDocumentor 1.4.1