Changeset 798223
- Timestamp:
- 11/03/2013 08:48:06 PM (11 years ago)
- Location:
- portgorod-ocstore-opencart-product-widget/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
portgorod-ocstore-opencart-product-widget/trunk/portgorod_opencart.php
r795304 r798223 5 5 Description: Shows products from your ocstore on your wp 6 6 Author: Dmitrii Smirnov 7 Version: 1. 07 Version: 1.1 8 8 Author URI: [email protected] 9 9 */ … … 129 129 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 130 130 131 $por_seo_is_seo = get_option('por_openopt_is_seo'); //включено ли seo132 $por_seo_is_html = get_option('por_openopt_is_html'); //seo окончание, если оно есть133 $por_seo_is_subcat = get_option('por_openopt_is_subcat'); //если включено seo - отображать ли товар через категории в адресе134 $por_seo_main_dom = get_option('por_openopt_main_dom'); //корневая папка магазина. Если на другом домене - надо писать домен. 'http://shop.com/' или вместе с подпапкой 'http://site.com/shop/' если она есть. Если нет - просто папку /shop/ или /135 //$por_seo_dom = get_option('por_openopt_dom'); //вписываем ТОЛЬКО если магазин на другом адресе. БЕЗ СЛЭША НА КОНЦЕ (нафиг)136 $por_img_def = plugins_url( 'no_image.jpg', __FILE__ ); //пусть к картинке по-умолчанию, если у товара нет картинки. Местоположение этой картинки - папка /image/ в папке магазина131 $por_seo_is_seo = get_option('por_openopt_is_seo'); 132 $por_seo_is_html = get_option('por_openopt_is_html'); 133 $por_seo_is_subcat = get_option('por_openopt_is_subcat'); 134 $por_seo_main_dom = get_option('por_openopt_main_dom'); 135 //$por_seo_dom = get_option('por_openopt_dom'); 136 $por_img_def = plugins_url( 'no_image.jpg', __FILE__ ); 137 137 $por_img_cha_folder = 'portgorod_ocstore_pipka'; 138 $por_img_qua = get_option('por_openopt_img_qua'); //качество превьюшек138 $por_img_qua = get_option('por_openopt_img_qua'); 139 139 $por_buttext = get_option('por_openopt_buttext'); 140 140 $por_showbutt = get_option('por_openopt_showbutt'); … … 149 149 $por_dbprefix = get_option('por_openopt_db_prefix'); 150 150 151 $por_prtag = $instance[ 'por_prtag' ]; //тэг товара152 $por_num = $instance[ 'por_num' ]; //количество товаров153 $por_template = $instance[ 'por_template' ]; //шаблон, через который выводить товар154 $por_cat_to_look = $instance[ 'por_cat_to_look' ]; //id категории, из которой добирать товары до оставшегося количества, если не хватит товаров с нужным тэгом, если добирать из всех категорий - оставить пустым155 156 $por_img_size_w = $instance[ 'por_img_size_w' ]; //размер превьюшки товара: ширина157 $por_img_size_h = $instance[ 'por_img_size_h' ]; //размер превьюшки товара: высота158 $por_img_rtype = get_option('por_openopt_img_rtype'); // тип изготовления превьюшки159 $por_img_bg = get_option('por_openopt_img_bg'); //фон для картинки, если будут оставаться поля151 $por_prtag = $instance[ 'por_prtag' ]; 152 $por_num = $instance[ 'por_num' ]; 153 $por_template = $instance[ 'por_template' ]; 154 $por_cat_to_look = $instance[ 'por_cat_to_look' ]; 155 156 $por_img_size_w = $instance[ 'por_img_size_w' ]; 157 $por_img_size_h = $instance[ 'por_img_size_h' ]; 158 $por_img_rtype = get_option('por_openopt_img_rtype'); 159 $por_img_bg = get_option('por_openopt_img_bg'); 160 160 $por_language = '1'; 161 161 … … 180 180 if(($por_is_seo=='yes')and($por_is_subcat=='yes')) 181 181 { 182 //у нас ситуация, когда включен сео-юрл и отображение товара через категории183 //забираем родительскую категорию для товара184 182 $por_seocatq=mysql_query("SELECT category_id FROM `" . TABLE_PREFIX . "product_to_category` WHERE main_category='1' AND product_id='$por_product_id'"); 185 183 $por_seocata=mysql_fetch_array($por_seocatq); 186 184 $por_pre_url_c=''; 187 185 $por_cn_s='0'; 188 //загоняем в массив все родительские категории с соблюдением иерархии189 186 while($por_seocata[$por_cn_s] !== '0') 190 187 { … … 193 190 $por_cn_s++; 194 191 $por_seocata[$por_cn_s] = $por_seocatarra['0']; 195 //массив категорий нафиг не нужен, будем вытаскивать сео192 196 193 $por_get_cat_seo_pr = 'category_id='.$por_seocata[$por_cn_s-1]; 197 194 $por_get_cat_seo_q = mysql_query("SELECT keyword FROM `" . TABLE_PREFIX . "url_alias` WHERE query='$por_get_cat_seo_pr'"); 198 195 $por_get_cat_seo_a = mysql_fetch_array($por_get_cat_seo_q); 199 //засаживаем в переменную адрес вида cat/podcat/podcat/ 196 200 197 $por_pre_url_c = $por_get_cat_seo_a['0'].'/'.$por_pre_url_c; 201 //забираем сео самого товара 198 202 199 $por_qseo='product_id='.$por_product_id; 203 200 $por_seoq=mysql_query("SELECT keyword FROM `" . TABLE_PREFIX . "url_alias` WHERE query='$por_qseo'"); 204 201 $por_seoa=mysql_fetch_array($por_seoq); 205 //склеиваем с категориями 202 206 203 $por_pre_url=$por_pre_url_c.$por_seoa['0']; 207 204 … … 210 207 elseif(($por_is_seo == 'yes')and($por_is_subcat == 'no')) 211 208 { 212 //теперь сео включено, но товар все время находится в корне, без родительских категорий 209 213 210 $por_qseo='product_id='.$por_product_id; 214 211 $por_seoq=mysql_query("SELECT keyword FROM `" . TABLE_PREFIX . "url_alias` WHERE query = '$por_qseo'"); … … 218 215 elseif($por_is_seo=='no') 219 216 { 220 //seo вообще выключено 217 221 218 $por_pre_url = 'index.php?route=product/product&product_id='.$por_product_id; 222 219 } 223 220 if($por_is_html !== '0') 224 221 { 225 //если есть seo окончание, например, .html, приклеиваем 222 226 223 $por_pre_url=$por_pre_url.$por_is_html; 227 224 } … … 231 228 } 232 229 233 //функция для изображений 230 234 231 function portgorod_img_crop($por_img, $por_img_destination, $por_img_need_w, $por_img_need_h, $por_img_bg, $por_img_qua, $por_img_folder, $por_img_rtype) 235 232 { … … 242 239 } 243 240 244 if (file_exists($por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.' -'.$por_img_rtype.'.jpg'))245 { 246 $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.' -'.$por_img_rtype.'.jpg';241 if (file_exists($por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg')) 242 { 243 $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg'; 247 244 return $por_img_final; 248 245 } … … 258 255 259 256 if ($por_img_rtype == '1') 260 { //оставить исходные пропорции сторон и уменьшить бОльшую сторону до нужной величины. Тут все стороны будем приравнивать к требуемой ширине.257 { 261 258 262 259 263 260 if($por_img_get_size['0'] > $por_img_get_size['1']) 264 { //Ширина картинки больше высоты, будем работать с ней261 { 265 262 266 263 if($por_img_get_size['0'] <= $por_img_need_w) 267 { //Ширина картинки меньше нужной или равна ей, просто копируем картинку и отдаем264 { 268 265 269 266 $por_img_calc_cut_w = $por_img_get_size['0']; … … 277 274 } 278 275 else 279 { //Ширина картинки больше нужной, пропорционально уменьшаем до нужной ширины276 { 280 277 281 278 $por_img_calc_cut_w = $por_img_get_size['0']; … … 290 287 } 291 288 elseif($por_img_get_size['0'] < $por_img_get_size['1']) 292 { //высота картинки больше ширины, будем работать с ней289 { 293 290 294 291 if($por_img_get_size['1'] <= $por_img_need_w) 295 { //высота картинки меньше или равна нужной, просто копируем и отдаем картинку292 { 296 293 297 294 $por_img_calc_cut_w = $por_img_get_size['0']; … … 305 302 } 306 303 else 307 { //высота картинки больше нужной, будем пропорцинально уменьшать высоту до нужной304 { 308 305 309 306 $por_img_calc_cut_w = $por_img_get_size['0']; … … 320 317 { 321 318 if($por_img_get_size['1'] <= $por_img_need_w) 322 { //просто копируем319 { 323 320 324 321 $por_img_calc_cut_w = $por_img_get_size['0']; … … 332 329 } 333 330 else 334 { //пропорционально уменьшаем ширину и высоту картики до нужного размера331 { 335 332 336 333 $por_img_calc_cut_w = $por_img_get_size['0']; … … 349 346 } 350 347 elseif ($por_img_rtype == '2') 351 { //сделать квадратную или какую-нибудь еще, сохранив всю исходную картинку целиком. Просто ужав, если надо и поместив в нужные размеры.348 { 352 349 353 350 if(($por_img_need_w <= $por_img_get_size['0']) or ($por_img_need_h <= $por_img_get_size['1'])) 354 { //Или ширина или высота больше или равны нужным351 { 355 352 356 353 if($por_img_get_size['0'] > $por_img_get_size['1']) 357 { //ширина больше высоты, ужимаем354 { 358 355 359 356 $por_img_calc_cut_w = $por_img_get_size['0']; … … 367 364 } 368 365 elseif($por_img_get_size['0'] < $por_img_get_size['1']) 369 { //выста больше шири, жмем366 { 370 367 371 368 $por_img_calc_cut_w = $por_img_get_size['0']; … … 378 375 $por_img_calc_put_h = $por_img_need_h; 379 376 } 380 elseif(($por_img_get_size['0'] / $por_img_need_w) == ($por_img_get_size['1'] / $por_img_need_h)) 381 {//стороны равны 382 383 $por_img_calc_cut_w = $por_img_get_size['0']; 384 $por_img_calc_cut_h = $por_img_get_size['1']; 385 $por_img_calc_cut_t = '0'; 386 $por_img_calc_cut_l = '0'; 387 $por_img_calc_put_t = floor(( $por_img_need_h - (( $por_img_need_w / $por_img_get_size['0'] ) * $por_img_get_size['1'])) / 2); 388 $por_img_calc_put_l = floor(( $por_img_need_w - (( $por_img_need_h / $por_img_get_size['1'] ) * $por_img_get_size['0'])) / 2); 389 $por_img_calc_put_w = $por_img_need_w; 390 $por_img_calc_put_h = $por_img_need_w; 377 elseif($por_img_get_size['0'] == $por_img_get_size['1']) 378 { 379 380 if($por_img_need_w > $por_img_need_h) 381 { 382 $por_img_calc_cut_w = $por_img_get_size['0']; 383 $por_img_calc_cut_h = $por_img_get_size['1']; 384 $por_img_calc_cut_t = '0'; 385 $por_img_calc_cut_l = '0'; 386 $por_img_calc_put_t = '0'; 387 $por_img_calc_put_l = floor(($por_img_need_w - $por_img_need_h)/2); 388 $por_img_calc_put_w = $por_img_need_h; 389 $por_img_calc_put_h = $por_img_need_h; 390 } 391 elseif($por_img_need_w < $por_img_need_h) 392 { 393 $por_img_calc_cut_w = $por_img_get_size['0']; 394 $por_img_calc_cut_h = $por_img_get_size['1']; 395 $por_img_calc_cut_t = '0'; 396 $por_img_calc_cut_l = '0'; 397 $por_img_calc_put_t = floor(($por_img_need_h - $por_img_need_w)/2); 398 $por_img_calc_put_l = '0'; 399 $por_img_calc_put_w = $por_img_need_w; 400 $por_img_calc_put_h = $por_img_need_w; 401 } 402 elseif($por_img_need_w == $por_img_need_h) 403 { 404 $por_img_calc_cut_w = $por_img_get_size['0']; 405 $por_img_calc_cut_h = $por_img_get_size['1']; 406 $por_img_calc_cut_t = '0'; 407 $por_img_calc_cut_l = '0'; 408 $por_img_calc_put_t = '0'; 409 $por_img_calc_put_l = '0'; 410 $por_img_calc_put_w = $por_img_need_w; 411 $por_img_calc_put_h = $por_img_need_h; 412 } 391 413 } 392 414 } … … 406 428 } 407 429 elseif ($por_img_rtype == '3') 408 { //сделать квадратную или какую-нибудь еще, ничего не приклеивая. Фон приклеится только в том случае, если ТРЕБУЕМЫЙ размер больше размера исходной картинки.430 { 409 431 410 432 if(($por_img_need_w < $por_img_get_size['0']) & ($por_img_need_h < $por_img_get_size['1'])) … … 412 434 if(($por_img_get_size['0'] / $por_img_need_w) > ($por_img_get_size['1'] / $por_img_need_h)) 413 435 { 414 $por_img_calc_cut_w = floor(($por_img_ get_size['1'] / $por_img_need_h) * $por_img_need_w);436 $por_img_calc_cut_w = floor(($por_img_need_w * $por_img_get_size['1']) / $por_img_need_h); 415 437 $por_img_calc_cut_h = $por_img_get_size['1']; 416 438 $por_img_calc_cut_t = '0'; … … 424 446 { 425 447 $por_img_calc_cut_w = $por_img_get_size['0']; 426 $por_img_calc_cut_h = floor(($por_img_ get_size['0'] / $por_img_need_w) * $por_img_need_h);448 $por_img_calc_cut_h = floor(($por_img_need_h * $por_img_get_size['0']) / $por_img_need_w); 427 449 $por_img_calc_cut_t = floor(($por_img_get_size['1'] - $por_img_calc_cut_h) / 2); 428 450 $por_img_calc_cut_l = '0'; … … 430 452 $por_img_calc_put_l = '0'; 431 453 $por_img_calc_put_w = $por_img_need_w; 432 $por_img_calc_put_h = $por_img_need_ w;454 $por_img_calc_put_h = $por_img_need_h; 433 455 } 434 456 elseif(($por_img_get_size['0'] / $por_img_need_w) == ($por_img_get_size['1'] / $por_img_need_h)) … … 441 463 $por_img_calc_put_l = '0'; 442 464 $por_img_calc_put_w = $por_img_need_w; 443 $por_img_calc_put_h = $por_img_need_ w;465 $por_img_calc_put_h = $por_img_need_h; 444 466 } 445 467 } … … 510 532 imagecopyresampled($por_img_dest, $por_img_c, $por_img_calc_put_l, $por_img_calc_put_t, $por_img_calc_cut_l, $por_img_calc_cut_t, $por_img_calc_put_w, $por_img_calc_put_h, $por_img_calc_cut_w, $por_img_calc_cut_h); 511 533 512 $por_img_final_d = $por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.' -'.$por_img_rtype.'.jpg';534 $por_img_final_d = $por_img_chache_dir.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg'; 513 535 imagejpeg($por_img_dest, $por_img_final_d, $por_img_qua); 514 536 … … 516 538 imagedestroy($por_img_dest); 517 539 518 $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.' -'.$por_img_rtype.'.jpg';540 $por_img_final = $por_img_folder.'/'.$por_img_destination.'-'.$por_img_need_w.'x'.$por_img_need_h.'-'.$por_img_rtype.'.jpg'; 519 541 520 542 return $por_img_final; … … 524 546 $por_query = mysql_query("SELECT COUNT(*) FROM `" . TABLE_PREFIX . "product_description` WHERE tag LIKE '$por_prtag'"); 525 547 $por_row = mysql_fetch_row($por_query); 526 $por_total = $por_row[0]; // всего записей548 $por_total = $por_row[0]; 527 549 528 550 if(($por_total < $por_num) and ($por_total !== '0')) 529 551 { 530 //просто выдаем все товары с тэгом, потому что их меньше, чем надо 552 531 553 $por_r = mysql_query("SELECT product_id FROM `" . TABLE_PREFIX . "product_description` WHERE tag LIKE '$por_prtag' AND language_id='$por_language'"); 532 554 $por_uids = array(); … … 580 602 $por_restnum = $por_num-$por_total; 581 603 582 //добираем до нужного количества еще любых случайных товаров, кроме тех, что уже есть583 604 if ($por_cat_to_look !== '%%') 584 605 { … … 625 646 $por_imga=mysql_fetch_array($por_imgq); 626 647 627 ///выводим 648 628 649 $por_url=portgorod_get_product_url($por_row['product_id'], $por_seo_is_html, $por_seo_is_subcat, $por_seo_is_seo, $por_seo_main_dom); 629 650 … … 648 669 elseif (($por_total > $por_num) or ($por_total == $por_num) ) 649 670 { 650 //просто выдаем $por_num случайных товаров с тэгом. Их хватает.651 671 $por_r = mysql_query("SELECT product_id FROM `" . TABLE_PREFIX . "product_description` WHERE tag LIKE '$por_prtag' AND language_id='$por_language'"); 652 672 $por_uids = array(); … … 678 698 $por_imga=mysql_fetch_array($por_imgq); 679 699 680 ///выводим681 700 $por_url=portgorod_get_product_url($por_row['product_id'], $por_seo_is_html, $por_seo_is_subcat, $por_seo_is_seo, $por_seo_main_dom); 682 701 … … 701 720 elseif ($por_total == '0') 702 721 { 703 //просто выдаем $por_num случайных товаров. Товаров с нужным тэгом нет.704 722 if ($por_cat_to_look !== '%%') 705 723 { … … 746 764 $por_imga=mysql_fetch_array($por_imgq); 747 765 748 ///выводим749 766 $por_url=portgorod_get_product_url($por_row['product_id'], $por_seo_is_html, $por_seo_is_subcat, $por_seo_is_seo, $por_seo_main_dom); 750 767 -
portgorod-ocstore-opencart-product-widget/trunk/readme.txt
r795304 r798223 4 4 Requires at least: 3.0.1 5 5 Tested up to: 3.6.1 6 Stable tag: 1. 06 Stable tag: 1.1 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 74 74 75 75 added "display widgets" support 76 = 1.1 = 77 Fixed bugs with thumb create 76 78 77 79 == Upgrade Notice ==
Note: See TracChangeset
for help on using the changeset viewer.