getvarparams( "CatalogItemName" ); if ( $item_id && ( $top_tpl->isvar( "CatalogItemName" ) || $top_tpl->isvar( "CatalogItemNotes" ) ) && !( $params['notshowifItemName'] && $good_id ) ) { $Rs = qexec( $Conn, "select item_name, parent_item_id, item_notes, meta, title, keywords, meta_def, meta_dop from ssp_GoodsTree where item_id= {$item_id}" ); $row = @qfetchrow( @$Rs ); @qfree( @$Rs ); if ( $row ) { $top_tpl->setvar( "CatalogItemName", $params['outbefore'] ); if ( $row['meta_dop'] ) { ( $row ); } $top_tpl->concatvar( "CatalogItemName", $row['item_name'], $row['meta_def'] ); $Rs_p = qexec( $Conn, "select item_name from ssp_GoodsTree where item_id= {$row['parent_item_id']}" ); if ( $row_p = @qfetchrow( @$Rs_p ) ) { $parent_item_name = $row_p['item_name']; } @qfree( @$Rs_p ); if ( $row['meta_def'] ) { $gPageMeta .= $parent_item_name." "; $gPageMeta .= $row['item_name']; } $top_tpl->concatvar( "CatalogItemName", $params['outafter'] ); $params = $top_tpl->getvarparams( "CatalogItemNotes" ); $top_tpl->setvar( "CatalogItemNotes", $params['outbefore'] ); $top_tpl->concatvar( "CatalogItemNotes", $row['item_notes'], $row['meta_def'] ); $top_tpl->concatvar( "CatalogItemNotes", $params['outafter'] ); } } $params = $top_tpl->getvarparams( "ItemName" ); if ( $good_id && $top_tpl->isvar( "ItemName" ) ) { $Rs = qexec( $Conn, "select G.g_name, T.meta_def from ssp_Goods G left join ssp_GoodsTree T on G.item_id=T.item_id where G.good_id= {$good_id}" ); $row = @qfetchrow( @$Rs ); @qfree( @$Rs ); if ( $row ) { $top_tpl->setvar( "ItemName", $params['outbefore'] ); $top_tpl->concatvar( "ItemName", $row['g_name'], $row['meta_def'] ); $top_tpl->concatvar( "ItemName", $params['outafter'] ); } } switch ( $act ) { case 1 : $PageContent = $this->showgoodslist( ); break; case 2 : $PageContent = $this->showgood( ); break; case 3 : $PageContent = $this->order( ); break; case 103 : $PageContent = $this->getorderxml( ); break; case 4 : $PageContent = $this->checkoutform( ); break; case 5 : $PageContent = $this->search( ); break; case 6 : $PageContent = $this->printgoodslist( ); break; case 7 : $PageContent = $this->mailgoodslist( ); break; case 8 : $PageContent = $this->checkoutformanygoods( ); break; case 9 : $PageContent = $this->showscart( ); break; case 10 : $PageContent = $this->getpropertyvalue( ); break; case 11 : $PageContent = $this->zakazlistview( ); break; case 12 : $PageContent = $this->zakazview( ); break; default : $PageContent = $this->showcatalog( ); } $engine =& $engine; if ( $engine->isvar( bask ) ) { $engine->setvar( bask, $GLOBALS[Bask] ); } $engine->setvar( PageContent, $PageContent ); } function showgoodvars( $row, $e, $method = "full" ) { global $Conn; $id = $row['good_id']; $testAuth = 0; if ( $debmode ) { echo "goods testing start"; $time_start = getmicrotime( ); } if ( ( "Auth" ) ) { $userInfo = ( ); if ( $userInfo['guest_id'] == 0 ) { $testAuth = 1; } } if ( $e->isvar( "Registration" ) && 0 < $row[g_registr] && $testAuth == 1 ) { return ""; } $row[meta_def] = 0 + $row[meta_def]; $set = ( ); $usedSpr = $set['spr_usedSpr']; if ( 0 < sizeof( $usedSpr ) ) { reset( $usedSpr ); foreach ( $usedSpr as $spr_id ) { $aSpr = ( $spr_id, $row["sprv_{$spr_id}"] ); foreach ( $aSpr as $Spr ) { $Name = "Spr".$Spr[spr_id]."Name"; if ( $e->isvar( $Name ) ) { $e->setvar( $Name, $Spr[data_name] ); } $Name = "Spr".$Spr[spr_id]."Description"; if ( $e->isvar( $Name ) ) { $e->setvar( $Name, $Spr[data_description] ); } $Name = "Spr".$Spr[spr_id]."PageURL"; if ( $e->isvar( $Name ) ) { $e->setvar( $Name, "Page{$Spr['data_pgid']}.html" ); } } } } if ( $goods_cache[effects] ) { $effects = $goods_cache[effects]; } else { $modProp = new moduleproperties( $Conn, "Goods" ); $effects = $modProp->geteffects( ); $goods_cache[effects] = $effects; } $goodsImages = new dbimage( ); if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
p1: {$time} sec
"; } if ( $method == "full" && $e->isvar( "RelatedGoodsList" ) ) { $options = $e->getvarparams( "RelatedGoodsList" ); if ( !$options['template_file'] ) { $options['template_file'] = "relatedGoodsList.htm"; } $options['parent_good_id'] = $row['good_id']; $parent_good_id = $row['good_id']; $Rs = qexec( $Conn, $sql = "select good_id from ssp_Goods where parent_good_id = {$parent_good_id} and g_public > 0 limit 1" ); if ( $r = @qfetchrow( @$Rs ) ) { $options['showAll'] = 1; $e->setvar( "RelatedGoodsList", $this->showgoodslist( $options ) ); } } if ( $e->isvar( fullview_Link ) ) { if ( $set['new_win'] == 2 ) { $e->setvar( fullview_Link, "javascript:openwin = window.open('View_nw_Good{$row[good_id]}.html','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=400,width=400');location.host;openwin.focus();" ); } else { $e->setvar( fullview_Link, "ViewGood{$row[good_id]}.html" ); } } if ( $e->isvar( fullview_Link_win ) ) { $e->setvar( fullview_Link_win, "javascript:openwin = window.open('View_nw_Good{$row['good_id']}.html','','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=400,width=400');location.host;openwin.focus();" ); } $e->setvar( Number, $row[Number] ); if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
p2: {$time} sec
";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ( $e->isvar( Image ) )
{
$Images = new dbimage( );
$border = "";
if ( $set['border'] )
{
$border .= "this.style.border = '".$set['border']." solid ".$set['border_color']."';";
}
$maxwidth = $e->getvarparameter( Image, maxwidth );
$maxheight = $e->getvarparameter( Image, maxheight );
if ( !$maxwidth )
{
$maxwidth = $set["img_size_{$method}_w"];
}
if ( !$maxheight )
{
$maxheight = $set["img_size_{$method}_h"];
}
$img_tagData = $e->getvarcondition( Image );
$a_img_tags = $Images->getimagetagswh( $Conn, Goods, $row[good_id], $img_tagData, $maxwidth, $maxheight, 1 );
$showFull = $e->cutvarparameter( Image, "showfull" );
if ( 0 < sizeof( $a_img_tags ) )
{
$imgtag = $a_img_tags[0];
eregi( "src=['\"]*([^'\"]+)['\"]*", $imgtag, $regs );
$openjs = $regs[1];
$openjs = eregi_replace( "[\\?\\&]+width=[0-9]+", "", $openjs );
$openjs = eregi_replace( "[\\?\\&]+height=[0-9]+", "", $openjs );
$title = $row[g_name];
$title = str_replace( "<", " <", $title );
$title = urlencode( strip_tags( $title ) );
$img_title = str_replace( "'", "", str_replace( "\"", "", $title ) );
$maxwidthf = $set['img_size_full_w'];
$maxheightf = $set['img_size_full_h'];
$x = $imgtag[img_x];
$y = $imgtag[img_y];
$nx = $x;
$ny = $y;
if ( $maxwidthf && $maxwidthf < $x )
{
$nx = $maxwidthf;
$ny = $nx * $y / $x;
$x = $nx;
$y = $ny;
}
if ( $maxheightf && $maxheightf < $y )
{
$ny = $maxheightf;
$nx = $ny * $x / $y;
$x = $nx;
$y = $ny;
}
$xi0 = ( integer );
$yi0 = ( integer );
$x_full = $imgtag[img_x];
$y_full = $imgtag[img_y];
$imgtag = $imgtag[img_tag];
$Listener = "";
if ( $e->isvar( ImageListener ) )
{
$Listener = "Book";
}
$imageMethod = "{$method}";
$imageMode = $e->getvarparameter( "Image", "mode" );
if ( strtolower( $imageMode ) == "image" )
{
$imageMethod = "full";
}
else if ( strtolower( $imageMode ) == "nwgood" )
{
$set['new_win'] = 2;
$set['open_mode'] = 0;
}
else if ( strtolower( $imageMode ) == "good" )
{
$set['new_win'] = 0;
$set['open_mode'] = 0;
}
switch ( $imageMethod )
{
case "full" :
$imgtag = str_replace( "setvar( Image, $imgtag );
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$e->setvar( Name, $row[g_name], $row[meta_def] );
if ( $debmode )
{
$time_end = getmicrotime( );
$time = $time_end - $time_start;
echo "
p3: {$time} sec
";
}
if ( $e->isvar( "ImageList" ) )
{
$Images = new dbimage( );
$img_params = $e->getvarparams( "ImageList" );
if ( !$img_params[template_file] )
{
$img_params[template_file] = "goodsImageList.htm";
}
$e_images = new swengine_class( $img_params );
$maxwidth = $e->getvarparameter( Image, maxwidth );
$maxheight = $e->getvarparameter( Image, maxheight );
if ( !$maxwidth )
{
$maxwidth = $set["img_size_{$method}_w"];
}
if ( !$maxheight )
{
$maxheight = $set["img_size_{$method}_h"];
}
$img_tagData = $e_images->getvarcondition( Image );
$border = "";
if ( $set['border'] )
{
$border .= "this.style.border = '".$set['border']." solid ".$set['border_color']."';";
}
$a_img_tags = $Images->getimagetagswh( $Conn, Goods, $row[good_id], $img_tagData, $maxwidth, $maxheight );
$showFull = $e_images->cutvarparameter( "Image", "showfull" );
if ( 0 < sizeof( $a_img_tags ) )
{
$title = $row[g_name];
$title = str_replace( "<", " <", $title );
$title = urlencode( strip_tags( $title ) );
if ( $set['open_mode'] == 2 || $method == "full" )
{
$a_img_i = $Images->getimagesinfo( $Conn, "Goods", $row[good_id] );
$xi = array( );
$yi = array( );
$i = 0;
$maxwidthf = $set['img_size_full_w'];
$maxheightf = $set['img_size_full_h'];
if ( @sizeof( @$a_img_i ) )
{
foreach ( $a_img_i as $img )
{
$x = $img[width];
$y = $img[height];
$nx = $x;
$ny = $y;
if ( $maxwidthf && $maxwidthf < $x )
{
$nx = $maxwidthf;
$ny = $nx * $y / $x;
$x = $nx;
$y = $ny;
}
if ( $maxheightf && $maxheightf < $y )
{
$ny = $maxheightf;
$nx = $ny * $x / $y;
$x = $nx;
$y = $ny;
}
$xi[$i] = ( integer );
$yi[$i] = ( integer );
$xx = $xi[$i];
$yy = $yi[$i];
$a_img_tags[$i][img_tag] = str_replace( "setvar( "Image", $a_img_tags[$i][img_tag] );
$e->concatvar( "ImageList", $e_i->getcontent( ) );
++$i;
}
}
}
else
{
foreach ( $a_img_tags as $img_tags )
{
if ( $set['new_win'] == 2 )
{
$img_tags[img_tag] = str_replace( "
setvar( "Image", $img_tags['img_tag'] );
$e->concatvar( "ImageList", $e_i->getcontent( ) );
}
}
}
}
if ( $debmode )
{
$time_end = getmicrotime( );
$time = $time_end - $time_start;
echo "
p4: {$time} sec
"; } if ( $e->isvar( ImageListener ) ) { $ImageListener = ""; $maxwidth = $e->getvarparameter( Image, maxwidth ); $maxheight = $e->getvarparameter( Image, maxheight ); if ( !$maxwidth ) { $maxwidth = $set["img_size_{$method}_w"]; } if ( !$maxheight ) { $maxheight = $set["img_size_{$method}_h"]; } $a_img_i = $Images->getimagetagswh( $Conn, Goods, $row[good_id], "", $maxwidth, $maxheight ); $xi = array( ); $yi = array( ); $i = 0; if ( @sizeof( @$a_img_i ) ) { foreach ( $a_img_i as $img ) { $x = $img[img_x]; $y = $img[img_y]; $nx = $x; $ny = $y; if ( $maxwidth && $maxwidth < $x ) { $nx = $maxwidth; $ny = $nx * $y / $x; $x = $nx; $y = $ny; } if ( $maxheight && $maxheight < $y ) { $ny = $maxheight; $nx = $ny * $x / $y; $x = $nx; $y = $ny; } $xi[$i] = ( integer ); $yi[$i] = ( integer ); ++$i; } } if ( @sizeof( @$a_img_i ) ) { $showMode = $e->cutvarparameter( "ImageListener", "mode" ); $cols = 0 + $e->cutvarparameter( "ImageListener", "cols" ); if ( !$cols ) { $cols = 3; } $maxwidth = $e->cutvarparameter( "ImageListener", "maxwidth" ); if ( !$maxwidth ) { $maxwidth = 100; } $maxheight = $e->cutvarparameter( "ImageListener", "maxheight" ); if ( !$maxheight ) { $maxheight = 100; } $paddingtop = $e->cutvarparameter( "ImageListener", "paddingtop" ); if ( !$paddingtop ) { $paddingtop = 3; } $paddingleft = $e->cutvarparameter( "ImageListener", "paddingleft" ); if ( !$paddingleft ) { $paddingleft = 3; } if ( $showMode == "smallimages" ) { $ImageListener .= "
p5: {$time} sec
"; } if ( $e->isvar( "Price" ) && 0 < $row['g_cost'] ) { $params = $e->explodeparams( $e->getvarcondition( "Price" ) ); $price_format = $params[format] ? $params['format'] : "%0.2f"; $e->setvar( "Price", sprintf( $price_format, $row['g_cost'] ) ); } $discount_pc = 0; if ( $userInfo ) { $discount_pc = 0 + $userInfo['PersonalDiscount']; } if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
p6: {$time} sec
"; } if ( 0 == $discount_pc ) { $discount_pc = @getdiscountvalue( @$row['g_cost'] * @$row['v_val'] / @$set['valute_val'], "Goods", @$set ); } if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
p7: {$time} sec
"; } $discount_sum = 0 + $row['g_cost'] * $discount_pc * 0.01; if ( $e->isvar( "Discount_from_price" ) ) { $params = $e->explodeparams( $e->getvarcondition( "Discount_from_price" ) ); $price_format = $params[format] ? $params['format'] : "%0.2f"; $e->setvar( "Discount_from_price", sprintf( $price_format, $discount_sum ) ); } if ( $e->isvar( "Discount_from_price_JS" ) ) { $params = $e->explodeparams( $e->getvarcondition( "Discount_from_price_JS" ) ); $price_format = $params[format] ? $params['format'] : "%0.2f"; $e->setvar( "Discount_from_price_JS", sprintf( $price_format, $discount_sum ) ); } if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
p8: {$time} sec
"; } if ( $e->isvar( "jsQuantityPrices" ) && 0 < $set[discount_quantity] ) { $Rs = qexec( $Conn, "select g_quantity, g_cost from ssp_GoodsPrices where good_id = {$row['good_id']} order by g_quantity" ); $Str = "var QuantityPrices{$row['good_id']} = new Array();\r"; $Str .= " QuantityPrices{$row[good_id]}[0] = new Array(1, ".$row['g_cost'].");\r"; $i = 1; for ( ; $r = @qfetchrow( @$Rs ); ++$i ) { $Str .= " QuantityPrices{$row[good_id]}[{$i}] = new Array({$r['g_quantity']}, {$r['g_cost']});\r"; } $e->setvar( "jsQuantityPrices", $Str ); } $prices_rows = 0; if ( $e->isvar( "QuantityPrices" ) && 0 < $set[discount_quantity] ) { $Rs = qexec( $Conn, "select g_quantity, g_cost, v_nick from ssp_GoodsPrices P left join ssp_Valute V on P.p_valute_id = V.valute_id where good_id = {$row['good_id']} order by g_quantity" ); $prices_rows = @qnum_rows( @$Rs ); } if ( $e->isvar( "QuantityPrices" ) && 0 < $set[discount_quantity] && $prices_rows ) { $params = $e->getvarparams( "QuantityPrices" ); if ( !$params[template_file] ) { $params[template_file] = "goodsQuantityPrices.htm"; } $qpe_base = new swengine_class( $params ); $params = $qpe_base->getvarparams( "List" ); if ( !$params[template_file] ) { $params[template_file] = "goodsQuantityPricesItem.htm"; } $qpe_list = new swengine_class( $params ); $Content = ""; $Number = 1; $qpe = $qpe_list; $qpe->setvar( "Number", $Number ); $p = $qpe->explodeparams( $qpe->getvarcondition( "Quantity" ) ); $format = $p['format'] ? $p['format'] : "%d"; $qpe->setvar( "Quantity", 1 ); $p = $qpe->explodeparams( $qpe->getvarcondition( "Price" ) ); $format = $p['format'] ? $p['format'] : "%0.2f"; $qpe->setvar( "Price", sprintf( $format, $row['g_cost'] ) ); $qpe->setvar( "Valute", $row[v_nick] ); $Content .= $qpe->getcontent( ); $i = 0; $Number = 2; for ( ; $r = @qfetchrow( @$Rs ); ++$i, ++$Number ) { $qpe = $qpe_list; $qpe->setvar( "Number", $Number ); $p = $qpe->explodeparams( $qpe->getvarcondition( "Quantity" ) ); $format = $p['format'] ? $p['format'] : "%d"; $qpe->setvar( "Quantity", $r[g_quantity] ); $p = $qpe->explodeparams( $qpe->getvarcondition( "Price" ) ); $format = $p['format'] ? $p['format'] : "%0.2f"; $qpe->setvar( "Price", sprintf( $format, $r[g_cost] ) ); $qpe->setvar( "Valute", $r[v_nick] ); $Content .= $qpe->getcontent( ); } $qpe_base->setvar( "List", $Content ); $e->setvar( "QuantityPrices", $qpe_base->getcontent( ) ); } if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
p9: {$time} sec
";
}
if ( $e->isvar( "Price_with_disc" ) && 0 < $row['g_cost'] )
{
$params = $e->explodeparams( $e->getvarcondition( "Price_with_disc" ) );
$price_format = $params[format] ? $params['format'] : "%0.2f";
$e->setvar( "Price_with_disc", sprintf( $price_format, $row['g_cost'] - $discount_sum ) );
}
if ( $e->isvar( "Cost" ) )
{
if ( 0 < $row['g_cost'] )
{
$e->setvar( "Cost", 1 );
}
else
{
$e->setvar( "Cost", 0 );
}
}
$e->setvar( "GoodPrice", sprintf( "%0.2f", $row['g_cost'] ) );
$e->setvar( "Unit", $row['g_edizm'] );
$e->setvar( "Package", sprintf( "%0.2f", $row['g_normaup'] ) );
$e->setvar( "GoodId", $row['good_id'] );
if ( $e->isvar( "ShortText" ) && $row['g_description'] )
{
if ( preg_match( "/(\\<|\\<)shorttext(\\>|\\>)(.*)(\\<|\\<)\\/shorttext(\\>|\\>)/imsU", $row['g_description'], $rgdesc ) )
{
$tmpe = new swengine_class( array( template => $rgdesc[3] ) );
$e->setvar( "ShortText", $tmpe->getcontent( ), 0 );
}
else
{
$maxlength = 0 + $e->cutvarparameter( "ShortText", "maxlength" );
if ( $maxlength )
{
$g_description = str_sethtmllength( $row['g_description'], $maxlength );
$e->setvar( "ShortText", $g_description, 0 );
}
else
{
$tmpe = new swengine_class( array( template => $row['g_description'] ) );
$e->setvar( "ShortText", $tmpe->getcontent( ), 0 );
}
}
}
if ( $e->isvar( "Description" ) && $row['g_description'] )
{
$maxlength = 0 + $e->cutvarparameter( "Description", "maxlength" );
if ( preg_match( "/(\\<|\\<)shorttext(\\>|\\>)(.*)(\\<|\\<)\\/shorttext(\\>|\\>)/imsU", $row['g_description'], $rgdesc ) )
{
$row['g_description'] = preg_replace( "/(\\<|\\<)shorttext(\\>|\\>)(.*)(\\<|\\<)\\/shorttext(\\>|\\>)/imsU", "", $row['g_description'] );
}
if ( $maxlength )
{
$g_description = str_sethtmllength( $row['g_description'], $maxlength );
$e->setvar( "Description", $g_description, 0 );
}
else
{
$tmpe = new swengine_class( array( template => $row['g_description'] ) );
$e->setvar( "Description", $tmpe->getcontent( ), 0 );
}
}
$e->setvar( "Article", $row['g_article'], 1 );
if ( $e->isvar( "isSel" ) )
{
if ( 0 < $goods_set )
{
$isDel = " checked";
}
else
{
reset( $GLOBALS['HTTP_COOKIE_VARS'] );
$value = each( $GLOBALS['HTTP_COOKIE_VARS'] )[1];
$namm = each( $GLOBALS['HTTP_COOKIE_VARS'] )[0];
while ( each( $GLOBALS['HTTP_COOKIE_VARS'] ) )
{
$$namm = $value;
}
$str = "chk".$row['good_id'];
if ( $$str )
{
$isDel = $$str;
if ( $isDel == "true" )
{
$isDel = " checked";
}
else
{
$isDel = "";
}
}
}
$e->setvar( "isSel", $isDel );
}
if ( $e->isvar( "zakaz" ) )
{
if ( $debmode )
{
echo "Registration of good: {$row['g_registr']}
";
echo "testAuth: {$testAuth}
";
}
if ( ( !$set[show_trade] || $userInfo[guest_id] ) && 0 < $row['g_cost'] && ( !$row['g_registr'] || !$testAuth ) )
{
$e->setvar( "zakaz", 1 );
}
else
{
$e->setvar( "zakaz", 0 );
}
}
if ( $e->isvar( "Valute" ) && 0 < $row['g_cost'] )
{
$e->setvar( "Valute", $row[v_nick] );
}
$e->setvar( "Sklad", $row['g_sklad'] );
$e->setvar( "HotSale", $row['g_hotsale'] );
if ( $debmode )
{
$time_end = getmicrotime( );
$time = $time_end - $time_start;
echo "
p10: {$time} sec
"; } $Rs_prop = qexec( $Conn, $sql = "select prop_id, prop_var from ssp_GoodsProperties" ); while ( $row_p = @qfetchrow( @$Rs_prop ) ) { $PropertyValue_var = "PropertyValue_".$row_p[prop_var]; if ( $e->isvar( $PropertyValue_var ) ) { $PropertyValue = ( array( property_id => $row_p[prop_id], good_id => $row[good_id] ) ); $e->setvar( $PropertyValue_var, $PropertyValue ); } } @qfree( @$Rs_prop ); if ( $debmode ) { $time_end = getmicrotime( ); $time = $time_end - $time_start; echo "
goods testing has loaded: {$time} sec
"; } return $e->getcontent( ); } function getcatalogselect( $options = array( ) ) { global $Conn; $strRet = ""; } function search( $options = array( ) ) { global $Conn; global $keyword; global $item_id; global $g_name; global $g_article; global $g_low_cost; global $g_top_cost; global $modelNumber; global $first_num; $Rs = qexec( $Conn, "select item_id from ssp_Templates where item_name= 'goodsSearchResults_scart.htm' and serv=1" ); if ( qnum_rows( $Rs ) ) { $options[template_file] = "goodsSearchResults_scart.htm"; } else { @qfree( @$Rs ); $Rs = qexec( $Conn, "select item_id from ssp_Templates where item_name= 'goodsSearchResults_zak.htm' and serv=1" ); if ( qnum_rows( $Rs ) ) { $options[template_file] = "goodsSearchResults_zak.htm"; } else { $options[template_file] = "goodsSearchResults.htm"; } } @qfree( @$Rs ); $set = ( ); $set[rows] = $set[goods_num]; $def_options = $set; $where = "where G.g_public"; $ACond = array( ); dbstr( array( keyword, g_name ) ); addwhere( &$where, "CONCAT( g_name, '#', g_description, '#', g_article) like '%!%'", nameconvertforlike( $keyword ), &$ACond, "Ключ поиска:", "'{$keyword}'" ); addwhere( &$where, "CONCAT( g_name, '#', g_description) like '%!%'", nameconvertforlike( $g_name ) ); addwhere( &$where, " g_article like '%!%'", nameconvertforlike( $g_article ) ); $g_low_cost = 0 + $g_low_cost; addwhere( &$where, "G.g_cost*V.v_val>= !", $g_low_cost ); $g_top_cost = 0 + $g_top_cost; addwhere( &$where, "G.g_cost*V.v_val<= !", $g_top_cost ); $modelNumber = 0 + $modelNumber; if ( $modelNumber && 0 < $modelNumber && $modelNumber < 5 ) { addwhere( &$where, "g_in!", $modelNumber ); } $GoodsTree_Join = ""; $item_id = 0 + $item_id; if ( $item_id ) { $Rs = qexec( $Conn, "select item_name from ssp_GoodsTree where item_id= {$item_id}" ); $r = @qfetchrow( @$Rs ); $ACond[] = array( "Позиция в каталоге:", "'{$r['item_name']}'" ); $GoodsTree_Join = "inner join ssp_GoodsTreeCache T on {$item_id} in (T.parent_item_id, T.item_id) and T.item_id= G.item_id"; } $additional_fields = $set['spr_fields']; $usedSpr = $set['spr_usedSpr']; $spr_join = ""; $sprList = "var sprList = [];\r"; if ( $usedSpr ) { reset( $usedSpr ); foreach ( $usedSpr as $spr_id ) { $aSpr = ( $spr_id, 0 + $"sprv_{$spr_id}" ); $Sprlist = ""; $doJoin = 0; $i = 0; $i9 = sizeof( $aSpr ); for ( ; $i < $i9; ++$i ) { if ( $Sprlist ) { $Sprlist .= ", "; } $Sprlist .= "\"spr".$aSpr[$i][spr_id]."\""; if ( $pspr_id = ${ "sprv_".$aSpr[$i][spr_id] } ) { $doJoin = 1; } } $join = ""; if ( $doJoin ) { $i = sizeof( $aSpr ) - 1; $pspr_id = $aSpr[$i]['spr_id']; $vspr_id = 0 + ${ "sprv_".$pspr_id }; if ( $vspr_id ) { addwhere( &$where, "G.sprv_{$pspr_id} = !", $vspr_id ); } else { $join .= "inner join ssp_SprData D{$pspr_id} on D{$pspr_id}.spr_id = {$pspr_id} and D{$pspr_id}.data_id = G.sprv_{$pspr_id}"; $ppspr_id = 0 + $pspr_id; } --$i; for ( ; $join != "" && 0 <= $i; --$i ) { $pspr_id = $aSpr[$i]['spr_id']; $vspr_id = 0 + ${ "sprv_".$pspr_id }; if ( $vspr_id ) { $join .= "inner join ssp_SprData D{$pspr_id} on D{$pspr_id}.spr_id = {$pspr_id} and D{$pspr_id}.data_id = D{$ppspr_id}.parent_data_id and D{$pspr_id}.data_id = {$vspr_id}"; break; } else { $join .= "inner join ssp_SprData D{$pspr_id} on D{$pspr_id}.spr_id = {$pspr_id} and D{$pspr_id}.data_id = D{$ppspr_id}.parent_data_id"; $ppspr_id = 0 + $pspr_id; } } } $sprList .= "sprList[{$iList}] = [{$Sprlist}];\r"; ++$iList; $spr_join .= $join; } } $sort = ""; if ( $set[goods_sort] == 1 ) { $sort = "desc"; } if ( $set[goods_sort] == 2 ) { $sort = "asc"; } $sp_sort = ""; if ( $item_id && $set["order_id{$item_id}"] ) { $sp_sort = " G.".$set["order_id{$item_id}"]." ".$set["asc{$item_id}"].", "; } $Rs = qexec( $Conn, "select DISTINCT G.good_id, G.g_name, G.g_article, G.g_description, G.g_cost, G.g_registr, G.g_sklad, G.g_hotcost, G.g_hotnewgoods, G.g_hotsale, G.g_edizm, G.g_normaup, GT.meta_def, V.v_val as v_val, V.valute_id, V.v_nick {$additional_fields} from ssp_Goods G {$GoodsTree_Join} {$spr_join} left join ssp_GoodsTree GT on G.item_id=GT.item_id and GT.item_show > 0 left join ssp_Valute V on G.valute_id=V.valute_id {$where} order by {$sp_sort}G.good_order, G.good_id ".$sort ); $HTDbGet = 2; $set = ( ); $set[rows] = $set[goods_num]; $rows = 0 + $HTTP_COOKIE_VARS['goods_rows']; if ( 0 < $rows && $rows < 1000 ) { $set['rows'] = $rows; } $def_options = $set; $top_tpl = new swengine_class( $options ); $params = $top_tpl->getvarparams( "List" ); $Images = new dbimage( ); $Content = ""; $i9 = 10000; $ListParams = ( $top_tpl ); $cols = $ListParams[cols]; if ( $top_tpl->isvar( ListManager ) ) { $i9 = $ListParams[rows]; ( $Rs, $top_tpl ); } $e = new swengine_class( $params ); $paramsP = $e->explodeparams( $e->getvarcondition( Price ) ); $price_format = $paramsP[format]; $Number = 1 + $first_num; $i = 0; for ( ; $i < $i9 && ( $row = @qfetchrow( @$Rs ) ); ++$i, ++$Number ) { if ( !$i || !( $i % $cols ) ) { $Content .= "
sql completed: {$time} sec
"; } $HTDbGet = 2; $cols = $options[cols]; if ( !$cols ) { $cols = $set[cols]; } $rows = $options[rows]; if ( !$rows ) { $rows = $set[rows]; } $i9 = $rows * $cols; $i9 = 0 < $i9 ? $i9 : 5; $Content = ""; $sec = explode( " ", microtime( ) )[1]; $usec = explode( " ", microtime( ) )[0]; $tm = ( double ) + ( double ) * 100000; srand( $tm ); $max_i = @qnum_rows( @$Rs ) - $i9; if ( $max_i < 0 ) { $max_i = 0; } $i = rand( 0, $max_i ); $i9 += $i; $i_cols = 0; for ( ; $i < $i9 && ( $row = @qfetchrow( @$Rs, @$i ) ); ++$i, ++$i_cols ) { if ( !$i_cols ) { $Content .= "