// obsluga obrazkow dla osCommerce polaczonego z iWebMAG(iem)
// id produktu w bazie danych OSC
if (@!isset($_REQUEST['id'])) { kak('#'.__LINE__); }
if (!is_numeric($_REQUEST['id'])) { kak('#'.__LINE__); }
// r = opcje
// 0 = resample 80x60
// 1 = resample 640x480
if (@!isset($_REQUEST['r'])) { kak('#'.__LINE__); }
// if (!is_numeric($_REQUEST['r'])) { kak('#'.__LINE__); }
// echo $_REQUEST['id'].'
'.$_REQUEST['r'];
if (!file_exists("config.php")) { kak('#'.__LINE__); }
require_once ('config.php');
if (!file_exists("class_db_mysql.php")) { kak('#'.__LINE__); }
require_once ('class_db_mysql.php');
function kak($message = "")
{
$message=wordwrap($message , 12);
// podziel tekst na wiersze
$__tekst=explode('
',$message);
// $plik_brak_zdjecia='_img_wkrotce.png';
// $podklad=LoadPNG($plik_brak_zdjecia);
$plik_brak_zdjecia='_img_wkrotce.jpg';
$podklad=LoadJPG($plik_brak_zdjecia);
$textcolor = imagecolorallocate($podklad, 0, 0, 0);
$__y=0;
foreach ($__tekst as $wiersz)
{
imagestring($podklad, 2, 0, $__y, $wiersz, $textcolor);
$__y=$__y+6;
}
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: image/jpg");
imagejpeg ($podklad);
die();
}
function imagestringbox(&$image, $font, $left, $top, $right, $bottom, $align, $valign, $leading, $text, $color)
{
define("ALIGN_LEFT", "left");
define("ALIGN_CENTER", "center");
define("ALIGN_RIGHT", "right");
define("VALIGN_TOP", "top");
define("VALIGN_MIDDLE", "middle");
define("VALIGN_BOTTOM", "bottom");
// Get size of box
$height = $bottom - $top;
$width = $right - $left;
// Break the text into lines, and into an array
$lines = wordwrap($text, floor($width / imagefontwidth($font)), "\n", true);
$lines = explode("\n", $lines);
// Other important numbers
$line_height = imagefontheight($font) + $leading;
$line_count = floor($height / $line_height);
$line_count = ($line_count > count($lines)) ? (count($lines)) : ($line_count);
// Loop through lines
for ($i = 0; $i < $line_count; $i++)
{
// Vertical Align
switch($valign)
{
case VALIGN_TOP: // Top
$y = $top + ($i * $line_height);
break;
case VALIGN_MIDDLE: // Middle
$y = $top + (($height - ($line_count * $line_height)) / 2) + ($i * $line_height);
break;
case VALIGN_BOTTOM: // Bottom
$y = ($top + $height) - ($line_count * $line_height) + ($i * $line_height);
break;
default:
return false;
}
// Horizontal Align
$line_width = strlen($lines[$i]) * imagefontwidth($font);
switch($align)
{
case ALIGN_LEFT: // Left
$x = $left;
break;
case ALIGN_CENTER: // Center
$x = $left + (($width - $line_width) / 2);
break;
case ALIGN_RIGHT: // Right
$x = $left + ($width - $line_width);
break;
default:
return false;
}
// Draw
imagestring($image, $font, $x, $y, $lines[$i], $color);
}
return true;
}
// polacz z baza danych
$db = new db($mysqlhost , $mysqllogin , $mysqlpassword , $mysqldb , phpversion());
$db->query("SET NAMES latin2");
// jakosc JPGow
$__Quality=100;
// zgodnosc z iwebshop
function Get_ConfigKey($zmienna)
{
global $db;
$ConfigKeyINFO=NULL;
$sql=$db->query(" SELECT * FROM hurtownik_config WHERE zmienna = '".$zmienna."'");
if ($db->num_rows($sql)<>0)
{
$odp=$db->fetch_array($sql);
$ConfigKeyINFO=$odp['wartosc'];
}
return $ConfigKeyINFO;
}
// zgodnosc z OSC
function Get_OSC_ConfigKey($zmienna)
{
global $db;
$ConfigKeyINFO=NULL;
$sql=$db->query(" SELECT * FROM configuration WHERE configuration_key = '".$zmienna."'");
if ($db->num_rows($sql)<>0)
{
$odp=$db->fetch_array($sql);
$ConfigKeyINFO=$odp['configuration_value'];
}
return $ConfigKeyINFO;
}
function LoadPNG ($imgname) {
$im = @imagecreatefrompng ($imgname); /* Attempt to open */
if (!$im)
{ /* See if it failed */
$im = imagecreate (80, 60); /* Create a blank image */
$bgc = imagecolorallocate ($im, 240, 240, 240);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 80, 60, $bgc);
/* Output an errmsg */
imagestring ($im, 1, 5, 5, ".", $tc);
}
return $im;
}
function LoadJPG ($imgname) {
$im = @imagecreatefromjpeg ($imgname); /* Attempt to open */
if (!$im)
{ /* See if it failed */
$im = imagecreate (80, 60); /* Create a blank image */
$bgc = imagecolorallocate ($im, 240, 240, 240);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 80, 60, $bgc);
/* Output an errmsg */
imagestring ($im, 1, 5, 5, ".", $tc);
}
return $im;
}
function LoadBMP ($imgname) {
$im = @imagecreatefromwbmp ($imgname); /* Attempt to open */
if (!$im)
{ /* See if it failed */
$im = imagecreate (80, 60); /* Create a blank image */
$bgc = imagecolorallocate ($im, 240, 240, 240);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 80, 60, $bgc);
/* Output an errmsg */
imagestring ($im, 1, 5, 5, ".", $tc);
}
return $im;
}
function ResampleImage ($image_in , $x_prewki, $y_prewki)
{
$width=imagesx($image_in);
$height=imagesy($image_in);
if (function_exists('imagecreatetruecolor'))
{
$tmp_img = imagecreatetruecolor($x_prewki,$y_prewki);
}
else
{
$tmp_img = imagecreate($x_prewki,$y_prewki);
}
if (function_exists('imagecopyresampled'))
{
imagecopyresampled($tmp_img, $image_in, 0, 0, 0, 0, $x_prewki, $y_prewki, $width , $height );
}
else
{
imagecopyresized($tmp_img, $image_in, 0, 0, 0, 0, $x_prewki, $y_prewki, $width , $height );
}
// teraz w $tmp_img mamy obrazek podstawa 80px
return $tmp_img;
}
// wczytaj "brak zdjecja"
// $plik_brak_zdjecia='_img_wkrotce.png';
// $podklad=LoadPNG($plik_brak_zdjecia);
$plik_brak_zdjecia='_img_wkrotce.jpg';
$podklad=LoadJPG($plik_brak_zdjecia);
// szukaj zdjecia
$query ="SELECT * FROM products_description INNER JOIN products ON products_description.products_id=products.products_id";
$query.=" WHERE products_description.products_id = ".$_REQUEST['id'];
$sql_osc=$db->query($query);
if ($db->num_rows($sql_osc) != 0)
{
$sciezka_zdjecia='';
$odp_osc=$db->fetch_array($sql_osc);
// sprawdzaj co dalej ze zdjeciem
// najpierw wez oryginalne zdjecie wrzucone do OSC
// 'products_image'
$osc_adres=Get_OSC_ConfigKey('osc_adres_www');
// _r($odp_osc);
// die();
$sciezka_zdjecia=$osc_adres.'images/'.$odp_osc['products_image'];
// kak($sciezka_zdjecia.'
'.$odp_osc['products_image'].'
'.$odp_osc['products_iwebmag_nazwa'].'
'.$odp_osc['products_name']);
if ($odp_osc['products_image'] <> "")
{
if (strpos($sciezka_zdjecia , '.jpg'))
{
$podklad=LoadJPG($sciezka_zdjecia);
}
elseif (strpos($sciezka_zdjecia , '.bmp'))
{
$podklad=LoadPNG($plik_brak_zdjecia);
}
elseif (strpos($sciezka_zdjecia , '.gif'))
{
$podklad=LoadPNG($plik_brak_zdjecia);
}
}
// Jesli jest to nadpisz zdjecie z iWebMAG(a)
if ($odp_osc['products_model'] <> "")
{
// wez zdjecie z iWebMAG(a)
$query="SELECT * FROM hurtownik_zdjecia WHERE Indeks_katalogowy = '".$odp_osc['products_model']."'";
$sql_zdjec_iwebmag=$db->query($query);
if ($db->num_rows($sql_zdjec_iwebmag) != 0)
{
// jest zdjcie w bazie iWebMAG(a) - zawsze JPG innych formatow nie przyjmuje
$odp_zdjec=$db->fetch_array($sql_zdjec_iwebmag);
$img_serwer=Get_ConfigKey('osc_adres_serwera_zdjec');
$sciezka_zdjecia=$img_serwer.$odp_zdjec['nazwa_pliku'].'_hr.jpg';
$podklad=LoadJPG($sciezka_zdjecia);
}
}
}
else
{
# nie ma zdjecia produktu w OSC, ale moze wrzucone jest do iwebmaga?
# IndeksKatalogowy przekazujemy w 'r'
if ($_REQUEST['id'] == '0')
{
$IndeksKatalogowy = $_REQUEST['r'];
// wez zdjecie z iWebMAG(a)
$query="SELECT * FROM hurtownik_zdjecia WHERE Indeks_katalogowy = '".$IndeksKatalogowy."'";
$sql_zdjec_iwebmag=$db->query($query);
if ($db->num_rows($sql_zdjec_iwebmag) != 0)
{
// jest zdjcie w bazie iWebMAG(a) - zawsze JPG innych formatow nie przyjmuje
$odp_zdjec=$db->fetch_array($sql_zdjec_iwebmag);
$img_serwer=Get_ConfigKey('osc_adres_serwera_zdjec');
$sciezka_zdjecia=$img_serwer.$odp_zdjec['nazwa_pliku'].'_hr.jpg';
$podklad=LoadJPG($sciezka_zdjecia);
}
}
$alpha=imagesavealpha($podklad, TRUE);
$podklad=ResampleImage($podklad , 640 , 480);
$__Quality=100;
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: image/jpg");
imagejpeg ($podklad , NULL , $__Quality);
die();
}
// $podklad=LoadJPG('20080304212051_hr.jpg');
$alpha=imagesavealpha($podklad, TRUE);
if ($_REQUEST['r']==1)
{
// hires
$podklad=ResampleImage($podklad , 640 , 480);
$__Quality=100;
}
elseif ($_REQUEST['r']==3)
{
// prewka - info o produkcie
$podklad=ResampleImage($podklad , 255 , 190);
}
elseif ($_REQUEST['r']==4)
{
// prewka product_info.php
// wersja testowa v.1
$podklad=ResampleImage($podklad , 320 , 240);
$__Quality=40;
}
elseif ($_REQUEST['r']==2)
{
// prewka o wielkosci zadanej z OSC
// wczytaj konfiguracje OSC
/*
$prev_szerokosc=Get_OSC_ConfigKey('SMALL_IMAGE_WIDTH');
$prev_wysokosc=Get_OSC_ConfigKey('SMALL_IMAGE_HEIGHT');
if ($prev_szerokosc > 240)
{
$prev_szerokosc=240; $prev_wysokosc=184;
}
if ($prev_wysokosc > 184)
{
$prev_szerokosc=240; $prev_wysokosc=184;
}
*/
$prev_szerokosc=150;
$prev_wysokosc=112;
$podklad=ResampleImage($podklad , $prev_szerokosc , $prev_wysokosc);
}
else
{
// prewka
$podklad=ResampleImage($podklad ,80 , 60);
}
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: image/jpg");
imagejpeg ($podklad , NULL , $__Quality);
?>