home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / xampp-win32-1.6.7-installer.exe / phpMyAdmin / transformation_wrapper.php < prev    next >
PHP Script  |  2008-06-23  |  4KB  |  128 lines

  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4.  *
  5.  * @version $Id: transformation_wrapper.php 10240 2007-04-01 11:02:46Z cybot_tm $
  6.  */
  7.  
  8. /**
  9.  *
  10.  */
  11. define('IS_TRANSFORMATION_WRAPPER', true);
  12.  
  13. /**
  14.  * Gets a core script and starts output buffering work
  15.  */
  16. require_once './libraries/common.inc.php';
  17. require_once './libraries/relation.lib.php'; // foreign keys
  18. require_once './libraries/transformations.lib.php'; // Transformations
  19. $cfgRelation = PMA_getRelationsParam();
  20.  
  21. /**
  22.  * Ensures db and table are valid, else moves to the "parent" script
  23.  */
  24. require_once './libraries/db_table_exists.lib.php';
  25.  
  26.  
  27. /**
  28.  * Get the list of the fields of the current table
  29.  */
  30. PMA_DBI_select_db($db);
  31. $table_def = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table), null, PMA_DBI_QUERY_STORE);
  32. if (isset($primary_key)) {
  33.     $result      = PMA_DBI_query('SELECT * FROM ' . PMA_backquote($table) . ' WHERE ' . $primary_key . ';', null, PMA_DBI_QUERY_STORE);
  34.     $row         = PMA_DBI_fetch_assoc($result);
  35. } else {
  36.     $result      = PMA_DBI_query('SELECT * FROM ' . PMA_backquote($table) . ' LIMIT 1;', null, PMA_DBI_QUERY_STORE);
  37.     $row         = PMA_DBI_fetch_assoc($result);
  38. }
  39.  
  40. // No row returned
  41. if (!$row) {
  42.     exit;
  43. } // end if (no record returned)
  44.  
  45. $default_ct = 'application/octet-stream';
  46.  
  47. if ($cfgRelation['commwork'] && $cfgRelation['mimework']) {
  48.     $mime_map = PMA_getMime($db, $table);
  49.     $mime_options = PMA_transformation_getOptions((isset($mime_map[urldecode($transform_key)]['transformation_options']) ? $mime_map[urldecode($transform_key)]['transformation_options'] : ''));
  50.  
  51.     foreach ($mime_options AS $key => $option) {
  52.         if (substr($option, 0, 10) == '; charset=') {
  53.             $mime_options['charset'] = $option;
  54.         }
  55.     }
  56. }
  57.  
  58. // garvin: For re-usability, moved http-headers and stylesheets
  59. // to a seperate file. It can now be included by libraries/header.inc.php,
  60. // querywindow.php.
  61.  
  62. require_once './libraries/header_http.inc.php';
  63. // [MIME]
  64. if (isset($ct) && !empty($ct)) {
  65.     $content_type = 'Content-Type: ' . urldecode($ct);
  66. } else {
  67.     $content_type = 'Content-Type: ' . (isset($mime_map[urldecode($transform_key)]['mimetype']) ? str_replace('_', '/', $mime_map[urldecode($transform_key)]['mimetype']) : $default_ct) . (isset($mime_options['charset']) ? $mime_options['charset'] : '');
  68. }
  69. header($content_type);
  70.  
  71. if (isset($cn) && !empty($cn)) {
  72.     header('Content-Disposition: attachment; filename=' . urldecode($cn));
  73. }
  74.  
  75. if (!isset($resize)) {
  76.     echo $row[urldecode($transform_key)];
  77. } else {
  78.     // if image_*__inline.inc.php finds that we can resize,
  79.     // it sets $resize to jpeg or png
  80.  
  81.     $srcImage = imagecreatefromstring($row[urldecode($transform_key)]);
  82.     $srcWidth = ImageSX($srcImage);
  83.     $srcHeight = ImageSY($srcImage);
  84.  
  85.     // Check to see if the width > height or if width < height
  86.     // if so adjust accordingly to make sure the image
  87.     // stays smaller then the $newWidth and $newHeight
  88.  
  89.     $ratioWidth = $srcWidth/$newWidth;
  90.     $ratioHeight = $srcHeight/$newHeight;
  91.  
  92.     if ($ratioWidth < $ratioHeight){
  93.         $destWidth = $srcWidth/$ratioHeight;
  94.         $destHeight = $newHeight;
  95.     } else {
  96.         $destWidth = $newWidth;
  97.         $destHeight = $srcHeight/$ratioWidth;
  98.     }
  99.  
  100.     if ($resize) {
  101.         $destImage = ImageCreateTrueColor($destWidth, $destHeight);
  102.     }
  103.  
  104. //    ImageCopyResized($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
  105. // better quality but slower:
  106.     ImageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight);
  107.  
  108.     if ($resize == 'jpeg') {
  109.         ImageJPEG($destImage, '', 75);
  110.     }
  111.     if ($resize == 'png') {
  112.         ImagePNG($destImage);
  113.     }
  114.     ImageDestroy($srcImage);
  115.     ImageDestroy($destImage);
  116. }
  117.  
  118. /**
  119.  * Close MySql non-persistent connections
  120.  */
  121. if (isset($GLOBALS['controllink']) && $GLOBALS['controllink']) {
  122.     @PMA_DBI_close($GLOBALS['controllink']);
  123. }
  124. if (isset($GLOBALS['userlink']) && $GLOBALS['userlink']) {
  125.     @PMA_DBI_close($GLOBALS['userlink']);
  126. }
  127. ?>
  128.